自从2011-10-19 google公司发布了android4.0版本,下载源码后,一直没有时间看下,正好需要看下JoyStick(游戏手柄)框架代码,所以两者代码进行对比浏览看看。
Android系统差不多每半年一次的升级步伐,每代Android系统都以甜点命名,
1.5版叫做Cupcake(纸杯蛋糕)
1.6版为Donut(甜甜圈)
2.0/2.1叫Éclair(闪电泡芙,一种法式奶油夹心甜点)
2.2版为Froyo(冻酸奶)
2.3版为Gingerbread(姜饼)
3.0版叫Honeycomb(蜂窝)及
4.0版称为Ice Cream Sandwich (冰激凌三明治)。以C D E F G H字头顺序排列
1.新的UI界面更加的人性化
相信关注安卓系统的朋友都看过了早些时候网上发布的Android4 .0系统界面。这次看看发布会上的照片吧。
2.新的通知系统
Android 4.0的通知系统有了很大的改进,用户可以自己决定哪些应用可以发送通知。
Android 4.0的通知系统现在可以直接向侧面滑动删去通知条目,这样的操作也出现在应用管理列表中。
3.语音输入系统和面部识别功能
Duarte说新系统的键盘在纠错、精度方面有了很大改进。他还演示了语音输入系统,说“smiley face”直接在输入框中插入一个笑脸。
4.新的安卓浏览器
Android 4.0的浏览器现在直接支持将完整网页离线保存。比第三方应用更好的是该功能现在与默认浏览器完全集成。实现实时预览功能,单一手势关闭所有浏览器标签,快速访问台式机版网站。能够自动与Chrome浏览器实现数据同步。
5.大幅强化了GMail
Android 4.0的Gmail大幅强化,浏览邮件时左右滑动直接切换上一封/下一封邮件。同时增加了离线搜索功能,可访问过去30天内收到的邮件。新的 GMail 界面,完全集成会话模式,大幅强化了GMail。
6.数据使用管理功能
Android 4.0集成的数据追踪系统可以追踪、分析移动数据流量,设置移动数据使用上限,它集成于系统内部,功能非常齐全,第三方的数据流量管理工具前途堪忧。
每月总是怕流量超过的朋友这回不用担心了,流量管理工具还能具体查看每个应用产生的流量。
7.拍照模式的强化
Android 4.0所拍照片只需三次点击就能分享到G+、Facebook、Twitter等任意SNS服务,如果国行引入的话肯定会增加人人网,新浪微博等分享。
Android 4.0新的照片应用现在可以像Instagram一样加滤镜,并且还能加相框、进行全景拍摄。并且相机可以识别人脸,集成 Zero Shutter 技术,快门反应极快,连拍很快。
8.新加入的people应用
People应用是通讯录的进化,以联系人照片为核心,界面偏重滑动而非点击。
People应用集成了其它通信工具,比如Twitter、Linkedin、Google+,不出意外的话还会支持自己添加第三方服务。
people应用与Gmail整合,点击邮件里的头像就能弹出附有大照片的快捷联系方式,通过Gmail、信息、第三方服务快速联系对方。
9.Android Beam应用
Android Beam是基于NFC的分享方式,两部支持NFC的Android手机背靠背碰一下就能分享机上内容。该功能还会向第三方开放。
10.其他一些功能
Android 4.0可以通过长按电源键和音量键截图,不再需要其它软件。
加入新型“Roboto”字体,适用于高清显示屏,实时墙纸功能。
三个设计准则:取悦用户,简化生活,与众不同,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个文件发生变更,但主体功能上没有变动
build 这涉及到整个android系统的编译规则,差异达到82个文件,没有一个个的比较查看,后面开发编译过程中就会涉及到
frameworks 核心框架代码:这一块肯定是涉及到变化最大的点,从全新设计UI这块特性可以看出,差异文件达到3100个文件,并增加了9000个文件左右,这块变动相当大,就应该就是真正升级的核心点了。
libcore : 与媒体播放框架代码相关,后面再深入研究一下
dalvik虚拟机: 总共有671个文件发生变更,这一块的话我正在看2.3的虚拟机设计代码,后面再单独写出来
libcore : 与媒体播放框架代码相关,后面再深入研究一下
system:其中core是关于最小化可启动的环境代码,extras是针对底层调试及检查工具的代码,差异文件达到257个
prebuild: 工具链与以前的版本基本一致,不过ARM使用的arm-eabi-4.4.3进行了修改,具体点不得而知
external : 增加了一些开源库代码
对于SDK及NDK与移植无关,所以暂时没有关注它
整个代码量太大,从原来的2.3版本的1G左右到目前达到1.7G左右代码,这些增加及修改的代码够学习很久了,最好的方式还是边做边看边学吧,自然就熟悉起来了。