android系统移植学习笔记一

系统框架

applicationjava应用程序

applicationfarmeworkjava应用程序框架子

librarics/androidruntimec/c++本地库/android运行时环境

linuxkernelLinux内核与驱动

对内核的依赖:

电源管理

文件系统

内存管理

进程管理

网络协议栈

驱动模型

本地框架;

bionic标准系统函数库

webCoreweb浏览器引擎使用

surfaceflinger用于2d和3d显示

opencore基础多媒体框架,最新版使用stagefright

skia2d图形引擎

3Dlibraries3d加速

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(pulsecodemodulation脉冲编码调制)

Iis(inter-ICsound)

ac97(Auciocodec1997)

声卡驱动中有两种音频框架

Oos(opensoundsystem)开发声音系统

Alsa提供音频和midi(musicalinstrumentdigitallinterface)的支持

MTD

内存技术设备(memorytechnologydevice)flash

代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\mtd

设备节点文件dev/block/mtdblockx

MMC

MultiMediaCard

代码路径: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

相关推荐