Android編譯完成後,將在根目錄中生成一個out文件夾,所有生成的內容均放置在這個文件夾中。
out文件夾目錄結構如下所示:
out/
— CaseCheck.txt
— casecheck.txt
— host
— common
— linux-x86/darwin-x86
— target(如果編譯時候定義TARGET_STRIP_MODULE=false的話,這個目錄為debug/target)
— common
— product
主要的兩個目錄為host和target,前者表示在主機(x86)生成的工具,後者表示目標機(模認為ARMv5)運行的內容。
host目錄的結構如下所示:
out/host/
— common
— obj(JAVA庫)
— linux-x86/darwin-x86
— bin(二進制程序)
— framework(JAVA庫,*.jar文件)
— lib(共享庫*.so)
— obj(中間生成的目標文件)
host目錄是一些在主機上用的工具,有一些是二進制程序,有一些是JAVA的程序。
target目錄的結構如下所示:
out/target/
— common
— R (資源文件)
— docs
— obj (目標文件)
— APPS(包含瞭JAVA應用程序生成的目標,每個應用程序對應其中一個子目錄,將結合每個應用程序的原始文件生成Android應用程序的APK包)
— JAVA_LIBRARIES(包含瞭JAVA的庫,每個庫對應其中一個子目錄)
— product
— generic
— android-info.txt
— clean_steps.mk
— data(存放數據的文件系統)
— obj
— APPS(包含瞭各種JAVA應用,與common/obj/APPS相對應,但是已經打成瞭APK包)
— SHARED_LIBRARIES(存放所有動態庫)
— STATIC_LIBRARIES(存放所有靜態庫)
— ramdisk.img(內存盤的根文件系統映像)
— root
— symbols
— system(存放主要的文件系統)
— system.img(文件系統的映像)
— userdata-qemu.img(模擬器使用的數據文件)
— userdata.img(數據內容映像)
其中common目錄表示通用的內容,product中則是針對產品的內容。
摘自:zuolongsnail的專欄