华清远见高级讲师周明
Android平台移植与底层开发
www.farsight.com.cn
www.farsight.com.cn2
版权版权
} 华清远见嵌入式培训中心版权所有;
} 未经华清远见明确许可,不能为任何目的以任何形式复制
或传播此文档的任何部分;
} 本文档包含的信息如有更改,恕不另行通知;
} 保留所有权利。
1. 介绍Android体系结构与平台支持现状
2. Android开发案例关键技术解析
I. Cortex-A8平台移植实例
II.其他平台开发实例
III.如何运行和调试
IV.Android技术内幕分析
1. 介绍Android体系结构与平台支持现状
2. Android开发案例关键技术解析
I. Cortex-A8平台移植实例
II.其他平台开发实例
III.如何运行和调试
IV.Android技术内幕分析
今天的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
www.farsight.com.cn
Android体系结构
www.farsight.com.cn
支持Android的ARM Cortex-A8/A9
硬件平台简介
l ARMv7架构SOC
l TI OMAP系列,2009年OMAP3和OMAP4关注度较高
l Freescale i.MX51系列
l Qualcomm 8650/8672
l Samsung S5PC110/S5PV210
l Marvell ARMADA系列
l 新的ARMv7共同点是提供600MHz到2GHz主频的双发射
处理器和128bit NEON SIMD,并提供双核版本
l OMAP4440
- 1+ GHz dual-core ARM Cortex-A9 MPCore + PowerVR SGX 540
GPU + C64x+ DSP + ISP (Image Signal Processor) 1080p HD
l QSD8672
- 1.5 GHz dual-core ARM Cortex-A9 MPCore + 3D + 3G (HSPA+,
CDMA200 1x) + 1080p HD
www.farsight.com.cn
ARMv7-a指令集亮点
l ARMv7-a提供单周期执行2条ARM指令的能力
l 提供NEON SIMD指令集,可以操作128bit 寄存器
l NEON指令集最高可以同时操作16个8bit数据
l GCC编译器提供 -ftree-vectorize自动生成向量指令
l C语言程序可以很容易显式使用NEON
l 需要16像素混合,直接调用内建函数
l uint8x16_t vmlaq_u8 (uint8x16_t, uint8x16_t)
l 等效向量指令: vmla.i8 q0, q0, q0
www.farsight.com.cn
ARMv7-a指令集到底有多快?
} 嵌入式处理器层出不穷,系列和种类繁多。经常
在嵌入式产业界见到的处理器,仅指令集家族就
有x86,arm,powerpc,mips,sh等。
} 每种指令集往往又有很多系列,下面还有不同版
本,甚至同一版本有不同芯片厂家实现产品。这
还不够,再加上不同的主频、总线结构、存储器
cache配置,即使在行业里打拼多年的专业人士也
难免眼花缭乱。
} 所以,经常有人会问:200Mhz的arm9比起嵌入式
工控机上的赛扬有多大的性能差距?四千多买的
500MHz的智能手机究竟比笔记本电脑慢多少?
www.farsight.com.cn
ARMv7-a架构整数性能
www.farsight.com.cn
ARMv7-a架构单精度浮点乘加性能
www.farsight.com.cn
ARMv7-a与x86浮点乘加比较
www.farsight.com.cn
如何移植Android到新的硬件平台
l 移植Android到新的硬件,需要的部件
l GCC工具链
- 需要交叉编译工具链,如arm-linux-gnueabi工具链
l Android操作系统内核
- 需要支持新硬件的android enabled内核
l Dalvik VM interpreter
- 当需要支持不同的指令集/架构时,需要相应的mterp优化代码
l 其余的根文件系统
- 确保编译和运行OK
www.farsight.com.cn
支持新硬件的android内核
l 例如以支持Cortex-A8 omap3530 i.mx515的内核为
基础,加入android特性
www.farsight.com.cn
选定支持的硬件平台
l 比如选择I.MX515
www.farsight.com.cn
添加内核新特性
l 使用更新的ubifs替代android已有的yaffs2
www.farsight.com.cn
添加优化的Dalvik interpreter代码
l zhoum@gowinserver01:/build/android/dalvik/vm/mterp$ ls -l
l total 164
l -rw-r--r-- 1 zhoum zhoum 812 2009-09-09 23:37 InterpAsm-allstubs.S
l -rw-r--r-- 1 zhoum zhoum 408310 2009-09-09 23:37 InterpAsm-armv4t.S
l -rw-r--r-- 1 zhoum zhoum 407957 2009-09-09 23:37 InterpAsm-armv5te.S
l -rw-r--r-- 1 zhoum zhoum 1215759 2009-10-05 11:26 InterpAsm-armv7a.S
l -rw-r--r-- 1 zhoum zhoum 303297 2009-09-09 23:37 InterpAsm-x86.S
l -rw-r--r-- 1 zhoum zhoum 148940 2009-09-09 23:37 InterpC-allstubs.c
l -rw-r--r-- 1 zhoum zhoum 67640 2009-09-09 23:37 InterpC-armv4t.c
l -rw-r--r-- 1 zhoum zhoum 67641 2009-09-09 23:37 InterpC-armv5te.c
l -rw-r--r-- 1 zhoum zhoum 67641 2009-10-22 09:50 InterpC-armv7a.c
l -rw-r--r-- 1 zhoum zhoum 159124 2009-09-09 23:37 InterpC-portdbg.c
l -rw-r--r-- 1 zhoum zhoum 148771 2009-09-09 23:37 InterpC-portstd.c
l -rw-r--r-- 1 zhoum zhoum 98912 2009-09-09 23:37 InterpC-x86.c
www.farsight.com.cn
在实际硬件上运行Android
l 部署android到目标平台上
l 准备好zImage镜像
l 准备好android-fs.ubi镜像
l 通过bootloader或已有的linux系统将zImage和ubi
写入到flash
l 重新启动
www.farsight.com.cn
Android调试新平台
l 调试新平台的工作
l 调试内核
l 调试Dalvik
l 调试Android应用
l 调试本地程序
www.farsight.com.cn
Android底层除了移植还有什么可作的?
l Android底层开发的推动力
l 已有的非Android软件资源对用户有强大的吸引力(想
想在新买的Nokia N900上面同时使用Nokia的Maemo应
用和Android应用,或者把上网本当作Android平台)
l Dalvik欠缺必要的高级特性,如JIT等
www.farsight.com.cn
www.farsight.com.cn
用户和开发者可以自由挑选口味
} 在同一个设备中使用Android还是其他应用,可
以像选早餐一般自由选择
Android底层开发关键技术解析
l 解决底层问题方法-解除Android系统的耦合
l 将Dalvik于bionic以及硬件驱动剥离开
l 修改Dalvik以支持MATCH_
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
_1713585047295_0glibc和GNU/Linux
l 把Dalvik当作普通应用程序
l Dalvik可被单独优化和改进
www.farsight.com.cn
华清远见Android课程
} Android系统开发培训班
} 1、Andriod开发环境搭建
} 2、Andriod移植基础
} 3、移植Andriod到pxa270平台
} 4、基于Android平台的应用程序开发
www.farsight.com.cn
www.farsight.com.cn22
Q&A
www.farsight.com.cn23
周明
zhoum@farsight.com.cn