Ice Cream Sandwich (Android 4.0)源码在2011年11月中正式公开,为了让国内的开发者在最短时间内完成 Android 4.0 Porting 工作,并了解 Android 2.3 与 Android 4.0 的架构差异,仕橙研策科技与MagicLEGO特别于2012.1.11共同举办了台湾第一场「Android 4.0移植与框架」讲座课程。
|
BigPic:500x358 |
本讲座从「系统工程」的角度为大家介绍 Android 4.0 Porting,内容上并不是只将 Android 源码编译后放到硬件上,能顺利开机即可,还涵盖整个系统的移植,重点包括Android 4.0编译设定细节、与Android 2.3的差异比较、多核心Multi-threa教学,以及Android绘图系统的移植要领等。
由于议程架构切合产业需求,这次的报名情况相当踊跃,原本预计名额为 50 人,活动前一周二度加开的 20 个名额,也在 3 天内抢报一空。直到活动前一刻,我们才能确认最后的参加名单:活动当天的实际到场人数达到 100 人。
如何成功移植Android 4.0
上午时段,仕橙研策技术总监Jollen Chen共剖析了三个重要议题,分别是:如何成功移植Android 4.0、Android 4.0架构与更新,以及移植实务与示范。
Jollen指出,由于 Android 4.0 移植,可以基于 Android 2.3 甚致 Android 3.0 来进行,所以并不需要「从零开始」。基于过去的 Android 移植经验,可以完成大约 80% 左右的 Android 4.0 移植工作。
从学习的角度来看,因为 2.3 与 4.0 的移植技术很许多相同的地方,例如:Product tree 的制作完全相同,因此实际了解 2.3 与 4.0 的「差异」是比较有效率的作法。
另外,同样是从学习的角度来看。如果是 Android 移植的入门新手,一开始不太需要区分版本,由 Android 2.3 移植开始,也是一个很好的入门点,这会让学习更单纯,例如:不需要考虑 InputReader 的修改;这个专门针对 Android 4.0 的移植工作,未来再补上即可。(参考数据:Ice Cream Sandwich 移植与框架 课后纪录:学习建议)
Android 4.0绘图系统
针对Android绘图系统,MagicLEGO的Walter Wu指出,在Android系统框架的链接库(Libraries)中,2D绘图靠的是SGL,3D绘图则是靠OpenGL ES。目前3D绘图的重要性已大幅提升,因此开发者必须熟悉OpenGL ES的架构、语法、接口与相关链接库。他表示目前在MagicLEGO4210开发板上,Android 3D链接库已完整建置成功。
(OpenGL ES架构图)
关于2D及3D画面的管理,则是由Surface Manager链接库来管理,其中一个重要程序为SurfaceFlinger,它是由SystemServr产生的。Walter说明了图形组合的流程以及SurfaceFlinger的rendering步骤。
Walter表示,Android 4.0(ICS)针对2D及3D绘图都做了强化的功能,例如为2D绘图提供了硬件加速功能。在使用接口(UI)上,ICS为平板及手机提供了不同的UI风格。另一个重要的功能则是HW Composer,它能强化Layer Composition的表现。在MagicLEGO4210上,可透过三星的FIMD(Fully Interactive Mobile Display interface)模块来建置HW Composer。
Andoid 4.0传感器系统
在行动装置上,建置了愈来愈多的传感器,也带来更多样的操作应用可能性。MagicLEGO的Eason Yen介绍指出,目前Android可支持的传感器类型相当多,除了大家熟知的加速度传感器、陀螺仪、光传感器外,也支持磁场、温度、压力、邻近性、相对湿度等传感器。
Android 4.0为感测系统提供了从硬件底层到应用层的完整架构,Eason除了介绍各层次的重要特性外,也说明了Android感测系统的运作流程。Eason表示,从Android 2.3到4.0,除了支持性更广外,在感测系统上的支持也更完整了。演讲最后,Eason以光及邻近性(proximity)传感器为例,说明了组件选择与移植上的重要关键。
(Android 4.0 Sensor系统架构图)
MagicLEGO开发板项目
关于MagicLEGO 开发板项目的发展,从2011年6月项目成立后,在不到4个月的时间内即让其MagicLEGO 4210达到与Galaxy S2相当的表现。如今则发表MagicLEGO 4×12项目,它支持Android 4.0及Exynos处理器,在应用上则能流畅支持10.1吋平板计算机的多点触控功能。
该团队表示,相较于4210为Android 2.3做到优化,4×12则为ICS做了优化,并提供加值软件解决方案,适用于智能手机和平板计算机的开发使用。4210及4×12都是针对ARM Cortex-A9双核心的产品开发而来,今年下半年起该团队将会投入Cortex-A15双核心产品的开发设计,其开发板暂定为MagicLEGO 5xxx。
(MagicLEGO 4×12 Block Diagram)
(本文经仕橙部落同意转载到CTimes科技网)