android在源碼下編譯
第一次下載好Android源代碼工程後,我們通常是在Android源代碼工程目錄下執行make命令,經過漫長的等待之後,就可以得到Android系統鏡像system.img了。以後如果我們修改了Android源代碼中的某個模塊或者在Android源代碼工程新增一個自己的模塊,是不是還是執行make命令呢?答案是否定的,Google為我們准備了另外的命令來支持編譯單獨的模塊,以及重新打包system.img的命令。在繼續學習Android源代碼之前,就讓我們先來看看這個命令吧。
一. 首先在Android源代碼目錄下的build目錄下,有個腳本文件envsetup.sh,執行這個腳本文件後,就可以獲得一些有用的工具: USER-NAME@MACHINE-NAME:~/Android$ . ./build/envsetup.sh 注意,這是一個source命令,執行之後,就會有一些額外的命令可以使用: - croot: Changes directory to the top of the tree. - m: Makes from the top of the tree. - mm: Builds all of the moles in the current directory. - mmm: Builds all of the moles in the supplied directories. - cgrep: Greps on all local C/C++ files. - jgrep: Greps on all local Java files. - resgrep: Greps on all local res/*.xml files. - godir: Go to the directory containing a file. 這些命令的具體用法,可以在命令的後面加-help來查看,這里我們只關注mmm命令,也就是可以用它來編譯指定目錄的所有模塊,通常這個目錄只包含一個模塊。
二. 使用mmm命令來編譯指定的模塊,例如Email應用程序: USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/ 編譯完成之後,就可以在out/target/proct/generic/system/app目錄下看到Email.apk文件了。Android系統自帶的App都放在這具目錄下。另外,Android系統的一些可執行文件,例如C編譯的可執行文件,放在out/target/proct/generic/system/bin目錄下,動態鏈接庫文件放在out/target/proct/generic/system/lib目錄下,out/target/proct/generic/system/lib/hw目錄存放的是硬體抽象層(HAL)介面文件。
三. 編譯好模塊後,還要重新打包一下system.img文件,這樣我們把system.img運行在模擬器上時,就可以看到我們的程序了。 USER-NAME@MACHINE-NAME:~/Android$ make snod
四. 參照Ubuntu上下載、編譯和安裝Android最新源代碼一文介紹的方法運行模擬器: USER-NAME@MACHINE-NAME:~/Android$ emulator 這樣一切就搞定了。
B. 最簡最全,Android版Chromium源碼下載+編譯指南
Android版Chromium源碼下載與編譯指南:
一、硬體和軟體准備
- 硬體:推薦使用Ubuntu或基於Ubuntu的Linux發行版,確保PC硬體資源足夠。
- 軟體:確保已安裝Python和git。
二、網路環境
- 確保您的網路環境可以科學上網,以便訪問谷歌的cs.chromium.org在線閱讀源碼。
三、設置depot_tools
- 通過git下載depot_tools,並將其添加到PATH環境變數。
- depot_tools中的fetch和gclient是常用的核心工具。
四、下載完整代碼
- 創建一個src目錄,並在其中使用fetch命令獲取Android版本所需的代碼。
- 若只想獲取最新版本,可添加–nohistory參數。
- fetch命令可能會生成.gclient文件和src目錄,多次運行以應對斷點。
五、安裝依賴和工具鏈
- 進入src目錄執行腳本,可能需要切換國內apt源以提升下載速度。
- 使用gclient執行鉤子函數,下載工具鏈並配置。
六、代碼同步與編譯
- 定期通過gclient命令保持代碼同步。
- 配置編譯選項時,關注Ninja編譯器和args.gn文件。
- 根據內存調整並行任務數,使用gn clean命令清理舊的.ninja文件。
七、導入到Android Studio
- 將Chromium倉庫導入到Android Studio中,以便更方便地瀏覽和調試C++和Java代碼。
八、啟動與調試
- 通過特定命令啟動Chromium並進行調試。
九、附錄
- gclient的基本用法和sync命令的其他選項可參考附錄內容。
按照以上步驟,您應該能夠成功下載並編譯Android版的Chromium源碼。請注意,編譯過程中可能會遇到各種問題,建議詳細閱讀相關文檔和社區支持,以便及時解決。