Google刚刚更新了其Android OS版本统计,结果显示73.8%的Android用户已经在使用2.x以上版本,其中40.4%在使用Android 2.1,2.2版用户比例达到33.4%,而之前最多人使用的1.6版仅剩下16.4%,1.5版则为9.7%。
该趋势对于Android系统的发展来说相当不错,Google Android系统一直被媒体质疑版本太多并且版本间差异过大。以下是图表:

Google刚刚更新了其Android OS版本统计,结果显示73.8%的Android用户已经在使用2.x以上版本,其中40.4%在使用Android 2.1,2.2版用户比例达到33.4%,而之前最多人使用的1.6版仅剩下16.4%,1.5版则为9.7%。
该趋势对于Android系统的发展来说相当不错,Google Android系统一直被媒体质疑版本太多并且版本间差异过大。以下是图表:

干嘛要反编译,呵呵!目的就不说了…
先说些预备知识:classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
一般使用dexdump和Dedexer可以反dex,但是用过的人都知道这样反出来的结果可读性极差。在这个时候大家一定要相信互联网的力量,所谓只要你能想到的或许就已经有人已经做到了。瞧瞧吧,我下面要介绍的就是别人已经给我们做好的几个工具。
dex2jar,这个别人写的一个把.dex files转换成Java .class的小工具,很不错。基本使用方法如下:在apk中提取classes.dex文件 -> 利用dex2jar把dex转换成java jar(classes.dex2jar.jar)。
到这里了,我们用普通的java反编译工具就可以看到代码了。我使用的是JD-GUI,这是一个有界面的java(.class) 代码浏览器,简单实用!另外还提供了一个Eclipse plugin(JD-Eclipse),可以吧JD-GUI的功能集成到Eclipse里面。
最后,在提供一个与Layout相关的工具,AXMLPrinter2.jar,该工具能吧apk中的xml文件转换成文本格式,这样就就可以直接欣赏别人程序中界面布局的实现方式啦。当然Android SDK也提供了一个类似的工具(hierarchyviewer.bat),个人感觉还不入AXMLPrinter2.jar转成xml后直接看来得痛快。
文中提到的所有工具都是开源或免费的,感谢这些无私奉献的人们,附工具的链接:
今天看到一则新闻关于微软手机葬礼:微软Windows Phone团队周五为自家的Kin、苹果的iPhone和RIM的黑莓举办了一次别开生面的葬礼,向世人宣示他们告别了自己的过去和对手的现在。
不管微软怎么做也罢,老实说在移动智能终端平台微软真的是落后了,当然之前的WindowsMobile就没有领先过。WPhone即将面世,但是我感觉WPhone真是有点落后啦,至少在时间表上已经落后了,别人已经做出来的东西已经玩了一年,甚至两年了,你现在才出来,除非在别人的基础上能有更多的创新之处,否则…
其实在我个人的理解中给手机分了几代,目前的iphone和Android在我看来应该是第三代手机。往前应该是曾经风光无限的Symbian和WindowsMobile,再往前就应该是非智能的普通手机。我这样划分的依据主要是从用户使用体验出发。在非智能手机时代,手机的主要功能还是以电话和短信为主,捎带着有一些小游戏和简单的娱乐功能(如拍个照,看个图片等),如果还要继续往前追溯到模拟移动电话时代(大哥大应该记得吧),那就纯粹的只有电话功能了。
进入智能手机时代,Symbian应该是鼻祖。这时的手机除了普通的电话应用之外有更为丰富的娱乐和办公功能。可能真正是在这个时候开始,大家才知道我们的手机也可以像PC一样拥有这么多丰富的应用。
如今可以说我们的手机已经进入了第三代。她们在用户体验上完全颠覆了以前的概念,个人觉得有如下几个特点比较鲜明:
苹果是这个时代的开拓者,他们的创新为所有的厂商带来了一条全新的道路,因为苹果的创新精神;android应该是这个时代的王者,因为Google的开放和苹果的封闭。记得有句话现在很流行:苹果总是被模仿,但从来没有被超越。正是因为苹果的个性和创新,但是苹果总是走个性路线,只能为他的粉丝们所接受;而google也是在不断创新,但他是为芸芸众生服务,大多的普通老百姓都可以享受到。
最近正在研究Android开发,为了自己使用HTC hero上网搜索方便写了这个程序—-MySearch。首先简单介绍下功能:MySearch 是一个快速搜索客户端程序,可以直接输入文本进行搜索,也可以扫描条码对扫描结果进行搜索;并且用户可以选择自己喜欢的搜索引擎。
功能列表:
下载MySearch:MySearch (304)
以下是MySearch程序截图:
移动开发的过程中,在程序中打印日志是最有效的调试手段。Android系统提供了一套很好用日志API(android.util.Log),可以在代码中添加不同级别的日志。
在开发过程中logcat可以通过adb使用也可以在设备上直接使用,先看下帮助内容:
Usage: logcat [options] [filterspecs]
options include:
-s Set default filter to silent.
Like specifying filterspec '*:s'
-f Log to file. Default to stdout
-r [] Rotate log every kbytes. (16 if unspecified). Requires -f
-n Sets max number of rotated logs to , default 4
-v
Sets the log print format, where
is one of:
brief process tag thread raw time threadtime long
-c clear (flush) the entire log and exit
-d dump the log and then exit (don't block)
-g get the size of the log's ring buffer and exit
-b request alternate ring buffer
('main' (default), 'radio', 'events')
-B output the log in binary
filterspecs are a series of
[:priority]
where is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
'*' means '*:d' and by itself means :v
If not specified on the commandline, filterspec is set from ANDROID_LOG_TAGS.
If no filterspec is found, filter defaults to '*:I'
If not specified with -v, format is set from ANDROID_PRINTF_LOG
or defaults to "brief"