在Android 編譯成功後,在out/target/product/generic會產生與系統對應的映像檔,分別是ramdisk.img關於root文件系統, system.img關於主要的包及庫, userdata.img關於用戶數據,分別對應的目錄為root, system, data映像檔簡單來說為文件的精準副本,可以透過映像檔刷機、測試功能等等。
位於/system目錄內,包含了Android系統主要的目錄與文件,包含了Android 的 framework層、application層。
app資料夾包含的是所有的apk包,也就是所有Android的應用程序,也包含自己編譯過的apk包。
bin資料夾則是Linux系統自帶的組件,或者是系統本身的程序。
etc資料夾則包含配置的文件與腳本。
framework資料夾則包含系統運行所需要的jar包,或者lib目錄存放的庫
usr資料夾則與使用者的共享、時間有關的文件。
在/data目錄內,包含所有應用相關的配置文件與使用者的相關資料。
而在data資料夾內剛編譯完會是空的。
在/root目錄內,屬於初始時的配置文件,可以用來將root file system mount起來。
而在root目錄下,在Android啟動後,最初始會啟動init進程,以及兩個腳本文件,分別是init.fs100.rc 與init.c。在剛啟動時,會根據這兩個腳本的內容去執行啟動的工作。
雖然在編譯過程會生成三部分的內容,但我們也可以將system與data內的所有東西直接放在root目錄內的system與data內,然後直接使用工具做成鏡像。
參考資料:
https://blog.csdn.net/zhgeliang/article/details/25119619
編譯過程詳解: https://blog.csdn.net/xiehaihit/article/details/92642127