-
----------------
-
├── Makefile 全局的Makefile
-
├── build 系统编译规则和配置所需要的脚本和工具
-
----------------
-
├── prebuilt 各种平台预编译工具链
-
├── bionic 基础共享库C源代码,如:C函数库libc、数学库libm、标准C++函数库libstdc++、多线程库等等
-
----------------
-
├── frameworks Android应用程序的核心框架层(java及C++语言)
-
├── system 安卓linux底层文件系统、共享库、应用及组件(C语言) 如:蓝牙、wlan、linux系统核心工具盒接口等等
-
├── dalvik JAVA虚拟机的源码
-
├── external android使用的一些额外开源库,如:libvpn、xml解析、网页解析、apache-http等
-
├── libcore 与媒体播放框架代码相关
-
----------------
-
├── packages 安卓自带的各种APK应用程序
-
├── development 安卓app开发需要的一些工具如:模拟器、monkey、SDK等,和一些例程
-
----------------
-
├── ndk
-
├── sdk
-
├── cts Android CTS兼容性规范测试用例
-
----------------
-
├── vendor 厂商进行定制相关代码
-
├── device 厂商进行定制相关代码
-
├── hardware 一些与硬件相关的库,部分厂家开源的硬解适配层HAL代码
-
├── kernel Linux源代码
-
├── bootable 系统引导加载器
-
├── recovery 与目标的恢复功能相关
-
----------------
android的移植按如下流程:
(1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来。
(2)正确挂载文件系统,确保内核启动参数和 android 源代码 system/core/rootdir 目录下的 init.rc 中的文件系统挂载正确。
(3)调试控制台,让内核启动参数中的 console 参数以及 android 源代码 system/core/init/init.c 中的console_name 设置和硬件保持一致
(4)打开 android 相关的驱动(logger,binder 等),串口输入 logcat 看 logger 驱动起来,没有的话调试logger 驱动。
解决底层问题方法:解除Android系统的耦合l
1 将Dalvik于bionic以及硬件驱动剥离开
2 修改Dalvik以支持标准glibc和GNU/Linux
3 把Dalvik当作普通应用程序
4 Dalvik可被单独优化和改进
参考文章:http://blog.csdn.net/openme_openwrt/article/details/8105185