当前位置:   article > 正文

Android源代码结构_android原生代码结构

android原生代码结构

Android源代码结构:
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:
.
|-- Makefile        (全局的Makefile)
|-- bionic          (Bionic含义为仿生,这里面是一些基础的库的源代码)
|-- bootloader      (引导加载器)
|-- build           (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)
|-- dalvik          (JAVA虚拟机)
|-- development     (程序开发所需要的模板和工具)
|-- external        (目标机器使用的一些库)
|-- frameworks      (应用程序的框架层)
|-- hardware        (与硬件相关的库)
|-- kernel          (Linux2.6的源代码)
|-- packages        (Android的各种应用程序)
|-- prebuilt        (Android在各种平台下编译的预置脚本)
|-- recovery        (与目标的恢复功能相关)
`-- system          (Android的底层的一些库)
 

Android源码根目录描述
abi应用程序二进制接口
art全新的ART运行环境
bionic系统C库
bootable启动引导相关代码
build存放系统编译规则及generic等基础开发包配置
ctsAndroid兼容性测试套件标准
dalvikdalvik    虚拟机
developers开发者目录
development应用程序开发相关
device设备相关配置
docs参考文档目录
external开源模组相关文件
frameworks应用程序框架,Android系统核心部分,由Java和C++编写
hardware主要是硬件抽象层的代码
libcore核心库相关文件
libnativehelper动态库,实现JNI库的基础
ndkNDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码
out编译完成后代码输出在此目录
packages应用程序包
pdk        Plug Development Kit 的缩写,本地开发套件
platform_testing平台测试
prebuiltsx86和arm架构下预编译的一些资源
sdksdk和模拟器
system底层文件系统库、应用和组件
toolchain工具链文件
tools工具文件
Makefile全局Makefile文件,用来定义编译规则

 

上面这么多文件夹,有些是一直不需要去理会的,比如说我接触较多的就文件夹:device,build,out,packages。

device下都是一些配置文件,比如Wifi Adb端口如果需要写死,可以添加属性并设置里面的参数

build下是一些编译规则,比如可以设置某些程序是否安装。

out下是编译完成后生产的各种文件,比如各种系统的apk文件,这些都是即将安装到Android设备上面的

package下包含很多Android项目的源码,手机上所有可以点击的图标其实都是一个Android项目,比如录音,电话,系统设置,或者三方的一些程序(阅读器,应用商城)等等

Android系统源码也不是没有bug的,比如我之前的一个Android板子上的Music就有几个bug,需要进去package/apps/Music里面修改源码

把源码修改后重新编译,再把编译生成的镜像文件烧录到Android设备上就可以了。

接下来分析packages中的内容,也就是应用层部分

 

 

应用层位于整个Android系统的最上层,开发者开发的应用程序以及系统内置的应用程序都是在应用层。 
源码根目录中的packages目录对应着系统应用层。它的目录结构:

packages目录    描述
apps核心应用程序
experimental第三方应用程序
inputmethods输入法目录
providers内容提供者目录
screensavers屏幕保护
services通信服务
wallpapers墙纸

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号