WEB开发网
开发学院手机开发Android 开发 说说 Android 的性能 阅读

说说 Android 的性能

 2010-04-22 16:07:00 来源:WEB开发网   
核心提示:Android系统框架和上层应用是类 java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,说说 Android 的性能,既然用java虚拟机和java开发,一般都会认为效率低下,因为android系统专门为armv5te 进行了优化,充分利用armv5te的执行流水线来提高执行的效率,

Android系统框架和上层应用是类 java(不是正统的sun java)开发的,实现了自己的java虚拟机dalvik,既然用java虚拟机和java开发,一般都会认为效率低下。其实不然,在基本主流的智能手机的软件平台上,android的执行速度是最快的。

那么android效率为什么这么的高呢?特别是一个应用程序的启动时间很短,本文主要从以下个八方面进行分析:

1、

资源文件的优化读取。

我们知道android在UI开发时有个很大的好处是xml文件来描述UI,这样有个好处是只要修改UI不用修改代码就可以修改界面的布局、显示风格和字体大小等。界面定义变得灵活方便。xml配置UI在qtopia运用也有但是这么强大并且也不广泛,因为xml文件有个不足是解析xml的效率很低。

Android是怎么做的呢?

Android在编译的时候就把xml 文件进行了优化,android应用程序在解析时变得非常的高效。我们看到apk文件解压后会有个优化过的资源文件。

2、

安装时进行优化 dex文件

Android的应用程序都打包成一个apk文件,实际上就是一个zip文件。系统第一次起来或应用程序第一次安装时,系统就把apk 文件解压了,把可执行文件dex优化成odex文件并放在/data/dalvik-cache目录下。优化后的dex文件启动速度会加快。这解释了为什么android系统第一次启动是比较慢,以后起来很快了。

可能有人会问:为什么不在编译时直接优化呢?第⑤项会回答这个问题。

3、

制作数据库

Android的图形应用是加载整个sd卡内的所有图像的,但是为什么很快呢?其实android提前把数据做成了数据库,所以不用每次扫描整个这个sd 卡,大大加快了启动速度。

4、

高效的虚拟机

Android是基于类java虚拟机dalvik,一般的 java虚拟机是基于栈的,而dalvik是基于寄存器的。实事求是说我对两者的区别了解不是很深入,不过网上有专门的相关文论进行分析。我的简单理解是栈的实现方式相对容易,相关数据是在内存中的栈里,而操作寄存器里数据的速度明显快与内存里的数据处理。

5、

充分挖掘CPU的性能

Android 刚出来的时候虽然支持arm cpu,实际上只支持armv5te的指令集的,因为android系统专门为armv5te 进行了优化,充分利用armv5te的执行流水线来提高执行的效率,这也是在500M的三星2440运行效果不是很好,而在200M的omap

1 2  下一页

Tags:说说 Android 性能

编辑录入:coldstar [复制链接] [打 印]
赞助商链接