在Android编译通过能够跑模拟器之后,我们是不是需要回过头来看看源码结构呢?好吧,看看4.4.2的结构。总的来说,代码结构很清晰。
还是得加上android的图,做些对应关系;(不断完善中)
Android 4.4.2
|-- abi (ABI:applicationbinary interface,应用程序二进制接口 )
|-- bionic (bionic C库)
|-- bootable (启动引导相关代码)
|-- recovery recovery相关代码
|-- bootloader bootloader相关代码
|-- build (存放系统编译规则及generic等基础开发包配置)
|-- dalvik (dalvik JAVA虚拟机)
|-- development (应用程序开发相关)
|-- device (设备相关代码)
|-- google
|-- samsung
|-- common
|-- external (android使用的一些开源的模组)
|-- frameworks (核心框架——java及C++语言)
|-- hardware (部分厂家开源的硬解适配层HAL代码)
|-- libcore (核心库相关)
|-- ndk (ndk相关代码)
|-- out (编译完成后的代码输出与此目录)
|-- packages (核心应用程序,phone、message等)
|-- sdk (sdk及模拟器)
|-- system (如在开发中最常用的adb、logcat、fastboot等)
在frameworks目录下,集中放置了Android框架层的代码。其中大部分功能模块是通过Java语言进行编写的,而对执行效率有很高要求的模块则是通过C/C++来实现的。对于Android应用开发者而言,这可能是你最需要阅读和学习的部分。它包含了SDK中的各个功能模块以及Android中各部分核心机理的实现。
frameworks (核心框架——java及C++语言)
|-- av音频视频
|-- base
|-- cmd 部分/system/bin下的可执行文件;
|-- core
|-- data
|-- graphics
|-- keystore
|-- location
|-- media
|-- opengl
|-- packages
|-- policy
|-- services Framework提供的大部分服务,比如PackageManagerService等;
|-- telephony
|-- wifi
|-- opengl
|-- native
|-- opt
|-- rs
|-- support
|-- volly
|-- webview
|-- wilhelm