linux 源码目录结构,分析Android 源代码编译前后的目录结构
我們看沒有編譯前的項(xiàng)目目錄大致的情況如下 :
在樹結(jié)構(gòu)中我們可以了解的有如下一些信息分析:
1.??????? getSplashy??????????????? 項(xiàng)目名稱;
2.??????? src?????????????????????? 項(xiàng)目程式;
3.??????? com?????????????????????? 早期項(xiàng)目接口,這里我們需要刪除;
4.????????? com.haseman???????????? 早期項(xiàng)目接口,同上需要刪除;
5.??????? Android Library?????????? Android SDK包中的庫集合;
6.??????? assets??????????????????? 這個文件夾不常用,具體解釋見下;
7.??????? res?????????????????????? 這里放置了項(xiàng)目的資源;
8.?????????? drawable?????????????? 圖片文件習(xí)慣放這里;
9.?????????? layout???????????????? 存放的外觀文件,以XML為主;
10.?????? raw?????????????????????? 自定義文件夾,存放音頻文件;
11.?????? values??????????????????? 存放string.xml;
12.??? AndroidManifest.xml????????? 每個項(xiàng)目必備,存放項(xiàng)目描述;
Android 編譯完成后,將在根目錄中生成一個out文件夾,所有生成的內(nèi)容均放置在這個文件夾中。
out文件夾如下所示:
out/
-- CaseCheck.txt
-- casecheck.txt
-- host??????????????? //表示在主機(jī)(x86)生成的工具
-- common
-- linux-x86/darwin-x86
-- target(表示目標(biāo)機(jī),如果編譯時候定義TARGET_STRIP_MODULE=false的話,這個目錄為debug/target)
-- common
-- product
主要的兩個目錄為host和target,前者表示在主機(jī)(x86)生成的工具,后者表示目標(biāo)機(jī)(默認(rèn)為ARMv5)運(yùn)行的內(nèi)容。
host目錄的結(jié)構(gòu)如下所示:
out/host/
-- common
-- obj(JAVA庫)
-- linux-x86/darwin-x86
-- bin(二進(jìn)制程序)
-- framework(JAVA庫,*.jar文件)
-- lib(共享庫*.so)
-- obj(中間生成的目標(biāo)文件)
host目錄是一些在主機(jī)上用的工具,有一些是二進(jìn)制程序,有一些是JAVA的程序。
target目錄的結(jié)構(gòu)如下所示:
out/target/
-- common???? //表示通用的內(nèi)容
-- R (資源文件)
-- docs
-- obj (目標(biāo)文件)
-- product????? //針對產(chǎn)品的內(nèi)容
-- generic
其中common目錄表示通用的內(nèi)容,product中則是針對產(chǎn)品的內(nèi)容。
在common目錄的obj中,包含兩個重要的目錄:
out/target/obj/
--APPS?????????????????????? (包含了JAVA應(yīng)用程序生成的目標(biāo),每個應(yīng)用程序?qū)?yīng)其中一個子目錄,將結(jié)合每個應(yīng)用程序的原始文件生成Android 應(yīng)用程序的APK包)
--JAVA_LIBRARIES????? (包含了JAVA的庫,每個庫對應(yīng)其中一個子目錄)
在默認(rèn)的情況下,Android 編譯將生成generic目錄,如果選定產(chǎn)品還可以生成其他的目錄(根據(jù)預(yù)先設(shè)定的產(chǎn)品名命名)。
generic包含了以下內(nèi)容:
out/target/product/generic/
-- data (存放數(shù)據(jù)的文件系統(tǒng))
-- obj(目錄中包含了各種JAVA應(yīng)用,與common/obj/APPS相對應(yīng),但是已經(jīng)打成了APK包)
-- root
-- symbols
-- system(主要的文件系統(tǒng))
-- Android -info.txt
-- clean_steps.mk
-- ramdisk.img
-- system.img
-- userdata.img
--userdata-qemu.img
obj/SHARED_LIBRARIES中存放所有動態(tài)庫。
obj/STATIC_LIBRARIES中存放所有靜態(tài)庫。
幾個以img為結(jié)尾的文件是幾個目標(biāo)映像文件,其中ramdisk是作為內(nèi)存盤的根文件系統(tǒng)映像,system.img是主要文件系統(tǒng)的映像,這是一個比較大的文件,userdata.img是數(shù)據(jù)內(nèi)容映像。userdata-qemu.img是模擬器使用的數(shù)據(jù)文件,一般不用userdata.img,只有-wipe-data時才用到userdata.img。這幾個image文件是運(yùn)行時真正需要的文件。
總結(jié)
以上是生活随笔為你收集整理的linux 源码目录结构,分析Android 源代码编译前后的目录结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go 调用c语言,golang之调用C语
- 下一篇: linux 查看设备 中断号,查看pow