Android系统编译
Android系統(tǒng)編譯
先執(zhí)行環(huán)境初始化:
source build/envsetup.sh && lunch aosp-eng再執(zhí)行make 模塊名,模塊根據(jù)需求自選,例如:
make services
特別注意:
1、framework.jar,編譯framework.jar要加-minux-apex,以前的make framework 不能編譯出framework.jar,make framework-minus-apex;
2、so模塊需要加上路徑編譯,直接make 會(huì)報(bào)依賴錯(cuò)誤,需要指定位置編譯:make out/target/product/ohosqssi/system/lib/libandroid_runtime.so
編譯命令說(shuō)明
source build/envsetup.sh 引入了 build/envsetup.sh 腳本,該腳本的作用是初始化編譯環(huán)境,并引入一些輔助的Shell函數(shù),這其中就包括第二步使用 lunch 函數(shù)。
命令lunch aosp-eng是調(diào)用 lunch 函數(shù),并指定參數(shù)為”aosp-eng”。lunch 函數(shù)的參數(shù)用來(lái)指定此次編譯的目標(biāo)設(shè)備以及編譯類型。在這里,這兩個(gè)值分別是”aosp”和”eng”。”aosp”是 Android 源碼中已經(jīng)定義好的一種產(chǎn)品,是為模擬器而設(shè)置的。而編譯類型會(huì)影響最終系統(tǒng)中包含的模塊。如果在調(diào)用lunch函數(shù)的時(shí)候沒(méi)有指定參數(shù),那么該函數(shù)將輸出列表以供選擇,列表內(nèi)容不同Android版本,不同廠家的基線源碼會(huì)有所不同。
如何理解lunch和choosecombo
lunch執(zhí)行已經(jīng)設(shè)定好的腳本,而choosecombo則是一個(gè)選項(xiàng)一個(gè)選項(xiàng)的執(zhí)行:
To select the set of things you want to build, and what items to build for, you use either the ‘choosecombo’ function or the ‘lunch’ function. ‘choosecombo’ will walk you through the different items you have to select, one-by-one, while ‘lunch’ allows you select some pre-set combinations.
參考鏈接:
https://blog.csdn.net/tkwxty/article/details/111684291
https://blog.csdn.net/daoshuti/article/details/101842404
https://elinux.org/Android_Build_System
總結(jié)
以上是生活随笔為你收集整理的Android系统编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AR基本实现原理
- 下一篇: 安卓开发艺术探索!各种风格的Androi