当前位置:操作系统 > 安卓/Android >>

Android 源码文件结构

Android 源码根文件夹结构:

以下内容遵循这个命名: 文件夹名称:释意

 

bionic:android 中所使用的是标准C库源文件,该项目将被编译成静态库文件,这些库文件仅在编译其他C程序时使用,不会被输出到最终设备中

bootable:二次引导程序源码,对应NAND Flash的二次引导分区中的内容,这部分代码不会被包含在最终的system.img或boot.img 文件中

build:编译系统中枢,该目录下的各种make脚本和shell脚本共同组成了android的编译环境

cts:兼容测试代码,基于android系统的手机如果需要google的认证,则必须经过google的兼容性测试,兼容性测试的目的是为了保证该设备具有标准的    SDK API接口

dalvik:android中的java虚拟机相关的源码,虚拟机内部设计相关的文档可以参考dalvik/docs目录下的说明文档

development:一些开发android工程所使用的相关配置或文件,如:一些.classpath文件

device:不同设备相关的编译脚本文件,一个设备一般就是指一种型号的手机,如:     Htc magic、Nexus One、Nexus S 等等

external:android系统所依赖的一些外部库文件,如:sqlite、opencore等,这些文件大部分都是c/c++代码,也有少量的java库

frameworks:Framework的内核源码,主要由java文件组成

hardware:Android定义的硬件抽象层(HAL)       相关的文件

libcore:Dalvik虚拟机所依赖的java库,如HashMap、ArrayList等,这些库和Dailvik共同组成dailvik的java运行环境

ndk:Native Development Kit ,即编译NDK所需的相关文件

packages:Android中的一些系统应用程序,比如Contacts、Phone等

prebuilt:编译所需的程序文件,主要包含不同平台的ARM编译器

sdk:编译SDK所需的相关文件

system:Android底层的Linux所需的一些系统工具程序,这些程序主要运行于adb 、logcat等

tools:一些其他辅助工具,目前只有一个名称为tradefederation的java项目

vendor:和device目录中的程序共同定义一个设备所包含的私有文件,它与device目录的区别在于,device主要定义了不同设备所需的特有文件,但却是开源的,而vendor中包含的文件一般都是目标文件,却不是开源的。

 

Android 源码\out目录结构:

out\target\product\generic\下有个system目录(如果没有generic这个目录则是在项目名目录下,如mtk的wtxxxxx),其包含内容简介如下:

       \system\app
       这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件,在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。
       \system\app\AlarmClock.apk 闹钟
       \system\app\Browser.apk 浏览器
       \system\app\Bugreport.apk Bug报告
       \system\app\Calculator.apk 计算器

       \system\bin
       这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件:

       \system\bin\am
       \system\bin\app_process 系统进程
       \system\bin\dalvikvm Dalvik虚拟机宿主
       \system\bin\dbus-daemon 系统BUS总线监控
       \system\bin\debuggerd 调试器
       \system\bin\debug_tool 调试工具
       \system\bin\dexopt DEX选项
       \system\bin\dhcpcd DHCP服务器

       \system\etc
       从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
       \system\etc\apns-conf.xml APN接入点配置文件
       \system\etc\AudioFilter.csv 音频过滤器配置文件
       \system\etc\AudioPara4.csv
       \system\etc\bookmarks.xml 书签数据库
       \system\etc\dbus.conf 总线监视配置文件

       \system\fonts
       字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小
       \system\fonts\DroidSans-Bold.ttf
       \system\fonts\DroidSans.ttf
       \system\fonts\DroidSansFallback.ttf
       \system\fonts\DroidSansMono.ttf

       \system\framework
       framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。

       \system\framework\am.jar
       \system\framework\am.odex
       \system\framework\android.awt.jar AWT库
       \system\framework\android.awt.odex

       \system\lib
       lib目录中存放的主要是系统底层库,如平台运行时库。
       \system\lib\libaes.so
       \system\lib\libagl.so
       \system\lib\libandroid_runtime.so Android运行时库
       \system\lib\libandroid_servers.so 系统服务组件
       \system\lib\libaudio.so 音频处理
       \system\lib\libaudioeq.so EQ均衡器
       \system\lib\libaudioflinger.so 音频过滤器
       \system\lib\libbluetooth.so 蓝牙组件
       \system\lib\libc.so
       \system\lib\libcamera.so 超相机组件
       \system\lib\libcameraservice.so
       \system\lib\libcorecg.so
       \system\lib\libcrypto.so 加密组件

       \system\media
       铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
       \system\media\audio
       \system\media\audio\alarms 闹铃音
       \system\media\audio\notifications 提示音
       \system\media\audio\ringtones 铃声
       \system\media\audio\ui 界面操作事件音

       \system\sounds
       默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
       \system\sounds\test.mid
       \system\usr
       用户文件夹,包含共享、键盘布局、时间区域文件等。
       \system\usr\keychars
       \system\usr\keylayout
       \system\usr\share
       \system\usr\srec

 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,