out 目录分析
编者:厦门大学信息学院通信工程系2015级研究生 马继勇、李浩、罗文彬
out目录
程序编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。
主要目录
out目录包含两个文件:last_build.log、out-edison
out/
-- last_build.log
-- out-edison
xiaoma@xiaoma-virtual-machine:~/下载/out$ ls
两个主要目录的意义如下表所示:
目录 | 意义 |
---|---|
last_build.log | 用来记录最后一次运行时系统的状态、配置等信息 |
out-edison | 文件夹的总体结构路径 |
out-edison
进入out-edison目录,可以看到其结构路径。
out-edison/
--Android.mk
--host
--target
--build_c_time.txt
--build_c_date.txt
--dist
--build_date.txt等等
xiaoma@xiaoma-virtual-machine:~/下载/out/out-edison$ ls
其中比较重要的几个文件是Android.mk、host、target,下面分别对他们进行说明。
Android.mk
Android.mk用来向编译系统描述你的源代码。具体来说,该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。用户可以在每一个Android.mk file中定义一个或多个模块。
host host文件夹目录的结构如下所示:
out-edison/host/ --common --linux-x86 --windows-x86
xiaoma@xiaoma-virtual-machine:~/下载/out/out-edison/host$ ls
将host的子目录展开,各个子目录和文件的功能如下所示:
out-edison/host/ --common --obj(JAVA库) --linux-x86 --bin(二进制程序) --gen(自动生成的文件目录,一般并不需要去修改) --lib(共享库*.so) --lib64(同上) --obj(中间生成的目标文件) --obj32(同上) --windows-x86 --obj(中间生成的目标文件)
总的来说,host目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。
target
target目录包含common与product,其中common目录表示通用内容,produt中则是针对产品的内容。
将target目录展开,其子目录和文件的功能和意义描述如下:
out-edison/target/
--common --obj --Apps(包含了JAVA应用程序生成的目标,每个应用程序对应其中一个子目录,将结合每个应用程序的原始文件升策划国内Android应用程序的APK包) --all-event-log-tags.txt(为所有知道的事件生成一个文件) --previous-aidl-config(之前定义进程间的通信接口的配置) --product --edison --breakpad --cache --data(存放数据的文件系统) --fake_packages --gen --obj(存放所有动态库、静态库等) --root --symbols --system(存放主要的文件系统) --android-info.txt --boot.img --build_fingerprint.txt --cache.img --clean_steps.mk --gpt.bin --installed-files.txt --kernel --package-stats.txt --previous_build_config.mk --provision-device --ramdisk.img(内存盘的根文件系统映像) --system.img (文件系统的映像) --userdata.img(数据内容映像)
xiaoma@xiaoma-virtual-machine:~/下载/out/out-edison/target/common/obj$ ls
xiaoma@xiaoma-virtual-machine:~/下载/out/out-edison/target/product/edison$ ls