本文作為 Android Framework 學(xué)習(xí)的開篇,主要介紹了在Mac環(huán)境下的源碼下載、編譯壤躲、運(yùn)行城菊、導(dǎo)入閱讀、調(diào)試等步驟碉克。里面更多是整理不同文章的信息凌唬,由于是一些配置較多的東西,所以這篇文章更多是記錄和供參考漏麦。
1 環(huán)境準(zhǔn)備
- Mac 系統(tǒng)版本號(hào)
10.12.6
- XCode 版本號(hào)
8.3.3
我之前的系統(tǒng)是 Mac
10.13
客税,后來在編譯的過程中遇到各種問題,雖然大部分都解決了唁奢,但是在后面的虛擬機(jī)運(yùn)行中又遇到HAXM not support
等問題霎挟,所以最后選擇降級(jí)系統(tǒng)。Max系統(tǒng)降級(jí)可以參考該文章 手欠MacBook升級(jí)OS V10.13失敗麻掸,教你蘋果系統(tǒng)降級(jí)自救的方法
然后用一塊移動(dòng)硬盤專門存放源碼酥夭。這里要對(duì)硬盤進(jìn)行分區(qū),分區(qū)類型選擇 Mac OS 擴(kuò)展(區(qū)分大小寫脊奋,日志式)
熬北。大概要分出 250GB
大小。
2 源碼下載
參見 github-android-open-source-project-analysis(2 下載repo工具 诚隙、3 下載源碼)
3 編譯
下載完成后進(jìn)入源碼目錄讶隐,開始編譯。首先要切換shell久又,要使用 bash
進(jìn)行編譯
chsh -s /bin/bash
清空之前build的文件
make clobber
3.1 完整編譯
編譯需要設(shè)置環(huán)境變量和選擇打出image的版本
source build/envsetup.sh
lunch aosp_x86_64-userdebug //打出的img小一點(diǎn) 虛擬機(jī)運(yùn)行起來快一點(diǎn)
make -j8 //根據(jù)我的cpu線程數(shù)決定
如果出現(xiàn) JDK 沒有設(shè)置的錯(cuò)誤巫延,則運(yùn)行
export ANDROID_JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
參考 macOS(Sierra 10.12)上Android源碼(AOSP)的下載、編譯與導(dǎo)入到Android Studio - 編譯
參考 Android FrameWork學(xué)習(xí)(一)Android 7.0系統(tǒng)源碼下載\編譯
3.2 部分編譯
當(dāng)修改了部分模塊后地消,不需要整體重新編譯炉峰,只需要編譯想應(yīng)模塊即可。
編譯需要設(shè)置環(huán)境變量和選擇打出image的版本
source build/envsetup.sh
lunch aosp_x86_64-userdebug
mmm ./packages/experimental/HelloAndroid/
make snod
參考 進(jìn)擊的程序員-1.6.1 導(dǎo)入單獨(dú)編譯模塊的mmm命令
4 運(yùn)行
虛擬機(jī)運(yùn)行
emulator -partition-size 4096 -memory 2048
5 導(dǎo)入 Android Studio
先生成項(xiàng)目文件
source build/envsetup.sh
mmm development/tools/idegen/
./development/tools/idegen/idegen.sh
參考 Android FrameWork學(xué)習(xí)(二)Android系統(tǒng)源碼調(diào)試
跳轉(zhuǎn)問題:dependence順序要提到最上面
6 調(diào)試debug
參考 Android FrameWork學(xué)習(xí)(二)Android系統(tǒng)源碼調(diào)試