Android4.0与Android2.3源代码差异

http://blog.csdn.net/andyhuabing/article/details/7095834


=======================================================================================================
其实一句话就搞定了:

谷歌新一代Android 4.0系统拥有全新设计的UI,界面简化,运行速度能力提升。系统内置全新的壁纸,在使用手机上的触摸按钮时会出现发光效果,并且增加了语音输入、人脸识别、照片编辑、流量监测、Android Beam功能。

三个设计准则:取悦用户,简化生活,与众不同,Android4.0在设计中遵循了这样的准则,因此是一个幅度很大的升级。

重点是如下几大亮点:
1 全新设计的UI,拥有一流的新UI ,并且界面简化,运行速度提升
2 运行速度大幅度提升
3 系统对硬件没有要求
4 游戏支持能力提升
=======================================================================================================

它们是怎么完成的,这些靠字面意思是搞不定的,那么就让我们一起来阅读其frameworks代码解读一下吧,大致了解一下吧。

hardware	:增加了hwcomposer.h(Hints are set by the HAL and read by SurfaceFlinger);定义增加了audio及camera这块,以前2.3是没有这块的;对gralloc分成gpu及fb单独处理的模块,更清晰了。
bionic		:标准C代码: 虽然有393个文件发生变更,但主体功能上没有变动。
prebuild	:工具链与以前的版本基本一致,不过ARM使用的arm-eabi-4.4.3进行了修改,具体点不得而知。(默认情况下,android的编译系统使用prebuild目录下提供的默认编译链,且针对不同目标平台,会提供多个版本的编译链,比如针对mips平台。)
build		:这涉及到整个android系统的编译规则,差异达到82个文件,没有一个个的比较查看,后面开发编译过程中就会涉及到
frameworks	:核心框架代码:这一块肯定是涉及到变化最大的点,从全新设计UI这块特性可以看出,差异文件达到3100个文件,并增加了9000个文件左右,这块变动相当大,就应该就是真正升级的核心点了。
dalvik虚拟机	:总共有671个文件发生变更,这一块的话我正在看2.3的虚拟机设计代码,后面再单独写出来
system		:其中core是关于最小化可启动的环境代码,extras是针对底层调试及检查工具的代码,差异文件达到257个
libcore		:与媒体播放框架代码相关,后面再深入研究一下
external	:增加了一些开源库代码
packages	:作为基于SDK的开发者一般看的都是packages/apps目录下的程序实例,其中Setting是最爱;而packages/providers是内部自带的数据库源程序。
development	:是一些开发的例子/模板
对于SDK及NDK与移植无关,所以暂时没有关注它。


----------------
├── build
----------------
├── ndk
├── sdk
├── prebuilt
├── bionic
----------------
├── frameworks *
├── system     *
├── dalvik
├── libcore
├── external
----------------
├── packages
├── development
├── cts
----------------
├── vendor    *
├── device    *
├── hardware  *
├── bootable
├── kernel    *
----------------

整个代码量太大,从原来的2.3版本的1G左右到目前达到1.7G左右代码,这些增加及修改的代码够学习很久了,最好的方式还是边做边看边学吧,自然就熟悉起来了。

是用beyond compare比较工具比较代码的,当然还有比BC3.0作为代码比较更好用的其他工具。






你可能感兴趣的:(Android4.0与Android2.3源代码差异)