- 浏览: 66610 次
- 性别:
- 来自: 北京
最新评论
-
Qiluoao:
天马~~~
论要不要重复造轮子 -
czd327917086:
写得非常好,对编码讲的很透彻!感谢分享!
字符识别 -
ZeroWinNing:
分析的很好,希望以后phonegap能够成为移动端软件开发的标 ...
android phonegap源码详解(三) -
异域的梅:
分析的很消耗,先学习着,不懂再问
android PhoneGap源码详解 -
hsz001:
感谢楼主的分享,帮助解决了个问题~
android phonegap源码详解(三)
文章列表
一、为什么造轮子 一来android现在的轮子比较少. 二来,写轮子可以锻炼自己,逼迫自己深入学习.造轮子的乐趣实践者会比较容易理解,不管是阅读美好的设计,还是迭代改善自己的设计,都会给程序员带来快乐.二、关于QADDroid QADDroid正如其名,目标是帮助android程序员简单粗暴地快速开发.它的组成部分如下:1.Base组件:提供了android基本组件的Base版本,包含许多便捷的方法.2.AutoInject:仿照roboguice的inject注解.但也只包含这些注解,没有与guice结合.(guice太大了 = =) 3.Loader:客户端程序80%的时候需要做联 ...
某次查看日志时,身边的同事用awk格式化,觉得十分羡慕。之前自学一点perl,想试试perl能否替代awk。结果看了perl的一行程序,发现perl真心十分强大。别说替代awk,grep,其它许多系统命令perl都能很简洁的写出来。
awk:
perl -lane 'print "@F[1..3]";' //打印第1~3字段
uniq:
perl -lne 'print unless $last eq $_;$last=$_'
uniq -c: 这个稍微麻烦些,因为eval的代码在while()中。而最终统计必须等到读完文件才行,不过用perl照样不 ...
最近装了个黑苹果。目前电脑为单硬盘三系统,分别是win7+ubuntu+mac。
mac启动引导老是boot0 error,每次只能通过u盘引导起来。觉得极不方便,便欲尝试修复。
在Mac下有个fdisk命令,可以设置MBR(主引导)。
fdisk -e /dev/rdisk0
便进入fdisk管理。通过help可以查看其详细命令。用print可打印分区状态,用flag可以标志引导目标。
笔者脑残打了一个auto命令。本以为这个命令会“自动”处理,结果却出现大错。重启以后无法引导,用u盘boot查看硬盘信息,竟然变白了。变成了一个读不出内容的白盘!
...
以前查文档挺快捷的。自从升了3.0的文档后,本地文档打开巨慢无比。本地doc的加载速度甚至比android developer官网还要慢。
趁着这几天时间空闲,试着把这个问题解决一下。
首先怀疑便是google被墙。用前端调试工具查看了一下网络请求,发现卡在google的jsapi上面了。立即修改入口的index.html,把<script src="http://www.google.com/jsapi">这行注释掉了。刷新,果然。从未有过的流畅感觉,尝试点击其它doc页面,但还是卡主了。查看网络请求,果然还是卡在了个jsapi。
下面 ...
对于字符处理有两个印象比较深刻的事儿。第一个就是在学校里面写个小应用,用Java读文件结果乱码了。第二个就是用ant做打包,结果在编译class的过程中老是报语法错误。结果原来是用记事本编辑了下,加了BOM所致。
一直 ...
平时开发的时候发现了一些小的把戏技巧。整理其中的一些向分享一下
sdk封装资源
非阻塞递归
如何获取视图大小
一、sdk封装资源
android的一大难题便是资源文件的绑定。如果我们为了模块化,想要将一个小的功能做成sdk的样式,那么该怎么做呢?
Java普遍的习惯是将功能打包成为一个jar包。其好处很多,解耦合。然而在android开发中,这样子做却有一个大问题。问题便是jar包形式难以提供资源。
Android官方推荐的做法是编写Android Libarary。Android Libarary
刚从大学的象牙塔里走出来时,我发现一个现象。身边的程序员往往都表现得比较愤世嫉俗,经常会抱怨社会中的这个问题以及那个问题。 也许你会说这是一个普遍现象。象牙塔里面都是一片和谐,象牙塔外不论哪个职业都会存在这种现象。可是,不是这样子的。程序员所表现的愤世嫉俗会多一些,我在从业一年多后终于渐渐明白原因。 首先,从信息源上,程序员能看到的比其它职业更多一些。因为程序员往往是与数据打交道的,因此他们往往能够接触到最机密的数据,知道行业中见不得光的种种潜规则。程序员对于内部问题的了解,会推广到社会问题中去。愤世嫉俗自然不可避免。 再次,从信息的广度上,程序员所能够接触的维度也会更多。21 ...
传送门:
PhoneGap源码详解一
PhoneGap源码详解二
PhoneGap源码详解三
一、 PhoneGap 的启动
近期因为赶项目和犯懒,所以一直没有更新,希望朋友们见谅。
前面介绍过 phoneGap 的模块化机制。其通过 require 和 define ,巧妙的将模块的定义和依赖关系隔离开来。
如上图所示,在定义模块机制后。后面统统都是做 define 。那么,这些被定义的模块最终何时被实例化呢?
在 cordova.js 的末尾我们找到了这一句。第一个被请求实例化的模块是 cordova(adobe 版本是 phonegap) ...
传送门:
PhoneGap源码详解一
PhoneGap源码详解二
PhoneGap源码详解三
一、 Javascript 的源码结构
提醒一下大家 ,PhoneGap 的作者已经将 PhoneGap 的源码委托给了 Apache 基金会。 PhoneGap 的开源版本称为 cordova 。
PhoneGap 之于 Cordova ,正如 OpenJDK 之于 JDK 。两者基本上是差不多的。
cordova.android.js 是一个 build 版本。本人对其做了反 build 工作 ,cordova.android.js 展开的源码目录结构便如上所示 ...
传送门:
PhoneGap源码详解一
PhoneGap源码详解二
PhoneGap源码详解三
PhoneGap 源码解析
之前有一位前辈已经写了 PhoneGap android 源码的解析。但是,前辈写得比较简单,只是把通信原理提了一提。本篇源码解析,会对 PhoneGap 做一个全面的介绍。
关于 Java/JS 互调,鄙人接触也有一段时间了。在 android sdk 文档中 , 也有用 JsInterface 和 loadUrl 做到交互的示例。但令我惊讶的是 ,PhoneGap 并没有选择用 JsInterface ,而是使用拦截 prompt 这种 hack 做法。
...
位与加密方式的速度非常快。若能保证其私有密钥的安全性,则位与加密的安全性很高,要破译几乎是不可能的。
但是位与加密的缺陷是灵活性较差,对私有密钥的管理是个头疼的问题。
在只需要简单粗暴的加密方式的环境下,这是个不错的选择。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class Encryptor {
publi ...
在程序界有一句话很流行,不要重复造轮子。然而,这句话被滥用了。已经渐渐沦为程序员懒惰的借口。甚至因此而盲目指责那些勤奋的人。 大多数情况下初学者很难分清楚自己是不是在重复造轮子。当我头一次听到这句忠告的时候,我变得异常敏感,在做什么之前都要判断一下是否在造轮子。我跟大多数普通人一样,容易受到他人只言片语的不良影响。事实上很多时候,避免造轮子并不是我的首要目标。我的目标是完成一项任务,任务完成的速度要尽量快,质量要尽量好。而不是去判断自己在不在造轮子。 使用他人的现成轮 ...
对象实例何时被创建,这个问题也许你用一句话就能回答完了。但是它的潜在陷阱却常常被人忽视,这个问题也许并不像你想的那么简单,不信请你耐心看下去。
我前几天问一个同学,是不是在调用构造函数后,对象才被实例化?他不假思索的回答说是。
请看下面代码:
Date date=new Date();
System.out.println(date.getTime());
新手在刚接触构造函数这个概念的时候。他们常常得出这样的结论:对象实例是在调用构造函数后创建的。因为调用构造函数后,调用引用(date)的实例方法便不会报NullPoint ...
关于ip定位的网站示例可以看我的链接:
http://sd6733531.iteye.com/admin/blogs/901001
之后我在http://www.ipaddressapi.com/找到了能够定位该api的方法。
要想使用ip定位只需要3步:
1.
http://www.ipaddressapi.com/ip_location_webservice_signup/
注册api的key。这个是老规矩了,googleMap,baiduMap,MapABC都这么干。我也不知道申请key有何必要。希望知情人士指点我一下。
2.
进入自己的邮箱点击确认链接,并登陆。
...
定位网站:
http://webipaddress.net
只要在它的搜索框中输入你想要查看的网址,那么你就可以看到网站托管服务器的所在地。
看到了吧?原来javaeye的服务器在上海的马桥镇和吴泾镇之间。webipaddress竟然到了经纬度定位程度,真是令人惊讶。
但要注意的是,它解析网站靠的是全球DNS服务器。所以有些地区性的域名是不容易解析的。
不过所幸网站还提供了另外一招,直接根据ip地址进行解析。
那么ip地址又从何而来呢?非常简单,打开cmd,输入nslookup,输入域名便可得到结果
这时再定位却到了北京了 ...