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

说说 Android 的性能

 2010-04-22 16:07:00 来源:WEB开发网   
核心提示:cpu上运行比较流畅的原因了,所以在最新的代码中有专门针对x86和armv4的优化部分,说说 Android 的性能(2),6、优化和裁剪的libc库Libc 库几乎是所以库和程序的基础,但是android没有直接利用libc库,也提高了效率,这个也提醒我们在开发应用程序时,而是自己开发了一个库:bionic,它实现了
cpu上运行比较流畅的原因了,所以在最新的代码中有专门针对x86和armv4的优化部分。

6、

优化和裁剪的libc库

Libc 库几乎是所以库和程序的基础,但是android没有直接利用libc库,而是自己开发了一个库:bionic,它实现了libc库的绝大多数的函数并根据平台进行了优化,但是有系统很少用并且消耗资源的少数函数是不支持的。它只有几百k,节省了空间同时也提高了执行效率。实际上体现了20-80 原则,抓住少数重要的适当舍弃不必要的。

7、

充分利用linux系统特性

分析过linux内核的朋友知道,linux fork一个新的进程是非常高效的,利用了COW机制。Android是每个进程是个独立的虚拟机(听说这么设计是为安全考虑,某个时候进程崩溃了不会影响这个系统和其他进程。)android里每个进程都是基于虚拟机的,并且也要加载基本的库,实际上这些都是共享。所以android启动一个新的程序实际上并不消耗很多的内存和cpu资源。

同时android在后台有个empty process运行,实际上就是运行一个虚拟机,当要启动一个应用时就直接在其上继续运行,qtopia也有这个机制。

Android系统在开机流程中:启动虚拟机—》启动system

server ?》启动launcher。当初分析代码时疑惑为什么不直接启动system server?(qtopia就是直接启动server),实际上也利用了linux的这个特性。

这个特性说的比较简略,不过要真的把他解释清楚可能需要很大的篇幅。

8、

高效的paint机制

这个特性可能跟启动关系不大,但是也是android高效的特性之一。界面变化时大部分实际上不是全屏内容变化的,只是局部变化,android会根据变化的内容只是跟新局部的内容,也提高了效率。这个也提醒我们在开发应用程序时,重载paint方法时尽量不要paint全屏内容。

上一页  1 2 

Tags:说说 Android 性能

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