android系统移植学习笔记一
系统框架
application java应用程序
application farmework java应用程序框架子
librarics/android runtime c/c++本地库/android运行时环境
linux kernel Linux内核与驱动
对内核的依赖:
电源管理
文件系统
内存管理
进程管理
网络协议栈
驱动模型
本地框架;
bionic 标准系统函数库
webCore web浏览器引擎使用
surface flinger 用于2d和3d显示
opencore 基础多媒体框架,最新版使用stagefright
skia 2d图形引擎
3D libraries 3d加速
sqLite 轻型关系数据库
虚拟机
每个android应用程序都用一个自已的Dalvik虚拟机来执行
java文件经过编译器编译,通过sdk中的dx工具转化为.dex格式后交虚拟机执行
android运行库
java核心库
dalvik虚拟机
系统移植工作:
1 驱动移植:
安装交叉编译环境
编译内核
常见驱动:
输入设备
输入子系统
文件目录:D:\tools\linux-3.0.16\linux-3.0.16\drivers\input
核心代码:input.c
事件部分的实现:
各类子设备:
文件目录D:\tools\linux-3.0.16\linux-3.0.16\drivers\input
joystick 摇杆
keyboard 按键
touchscreen 触摸
mouse 鼠标
显示设备
Framebuffer显存的一个映像,可以直接进行读写操作
代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\video\nvidia
设备节点:dev/fb*
摄像头
视频采集
视频输出
直接传输视频
设备节点文件: deb/video/videox
音频
有三种硬件接口:
pcm (pulse code modulation 脉冲编码调制)
Iis (inter-IC sound )
ac97 (Aucio codec 1997)
声卡驱动中有两种音频框架
Oos(open sound system) 开发声音系统
Alsa 提供音频和midi(musical instrument digitall interface)的支持
MTD
内存技术设备(memory technology device) flash
代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\mtd
设备节点文件 dev/block/mtdblockx
MMC
MultiMedia Card
代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\mmc
设备节点:dev/block/mmcblkx
WIFI
代码路径:
有线:D:\tools\linux-3.0.16\linux-3.0.16\drivers\net
无线:D:\tools\linux-3.0.16\linux-3.0.16\drivers\net\wireless