來源:Android編譯完成後的代碼結構

 

Android編譯完成後,將在根目錄中生成一個out文件夾,所有生成的內容均放置在這個文件夾中。out文件夾如下所示:


out/
|-- CaseCheck.txt
|-- casecheck.txt
|-- host
|   |-- common
|   `-- linux-x86
`-- target
    |-- common
    `-- product
    主要的兩個目錄為host和target,前者表示在主機(x86)生成的工具,後者表示目標機(模認為ARMv5)運行的內容。
host目錄的結構如下所示:
out/host/
|-- common
|   `-- obj              (JAVA庫)
`-- linux-x86
    |-- bin              (二進製程序)
    |-- framework        (JAVA庫,*.jar文件)
    |-- lib              (共享庫*.so)
    `-- obj              (中間生成的目標文件)
host目錄是一些在主機上用的工具,有一些是二進製程序,有一些是JAVA的程序。
target目錄的結構如下所示:
out/target/
|-- common
|   |-- R           (資源文件)
|   |-- docs
|   `-- obj         (目標文件)
`-- product
    `-- generic
其中common目錄表示通用的內容,product中則是針對產品的內容。
在common目錄的obj中,包含兩個重要的目錄:
APPS  中包含了JAVA應用程序生成的目標,每個應用程序對應其中一個子目錄,將結合每個應用程序的原始文件生成Android應用程序的APK包。
JAVA_LIBRARIES  中包含了JAVA的庫,每個庫對應其中一個子目錄。
在默認的情況下,Android編譯將生成generic目錄,如果選定產品還可以生成其他的目錄。generic包含了以下內容:
out/target/product/generic/
|-- android-info.txt
|-- clean_steps.mk
|-- data
|-- obj
|-- ramdisk.img
|-- root
|-- symbols
|-- system
|-- system.img
|-- userdata-qemu.img
`-- userdata.img
在generic/obj/APPS目錄中包含了各種JAVA應用,與common/APPS相對應,但是已經打成了APK包。
system目錄是主要的文件系統,data目錄是存放數據的文件系統。
obj/SHARED_LIBRARIES中存放所有動態庫。
obj/STATIC_LIBRARIES中存放所有靜態庫。
幾個以img為結尾的文件是幾個目標映像文件,其中ramdisk是作為內存盤的根文件系統映像,system.img是主要文件系統的映像,這是一個比較大的文件,data.img是數據內容映像。這幾個image文件是運行時真正需要的文件。


arrow
arrow
    全站熱搜

    huenlil 發表在 痞客邦 留言(1) 人氣()