Android目录结构

 

 |ABI-- 应用程序二进制接口(application binary interface,ABI)

|-- Makefile

|-- bionic               (bionic C库)

|-- bootable            (启动引导相关代码)

|-- build                 (存放系统编译规则及generic等基础开发包配置)

|-- cts                    (Android兼容性测试套件标准)

|-- dalvik                (dalvik JAVA虚拟机)

|-- development      (应用程序开发相关)

|-- external             (android使用的一些开源的模组)

|-- frameworks       (核心框架——java及C++语言)

|-- hardware           (主要保护硬解适配层HAL代码)

|-- libcore           

|-- ndk           

|-- device              

|-- out                   (编译完成后的代码输出与此目录)

|-- packages           (应用程序包)

|-- prebuilt             (x86和arm架构下预编译的一些资源)

|-- sdk                   (sdk及模拟器)

|-- system              (文件系统库、应用及组件——C语言)

`-- vendor              (厂商定制代码)

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可被单独优化和改进

 

 

posted @ 2015-08-04 14:21  haoxing990  阅读(200)  评论(0编辑  收藏  举报