1. 程式人生 > >《android原始碼閱讀三》android原始碼編譯匯入android studio

《android原始碼閱讀三》android原始碼編譯匯入android studio

1、安裝 Java

  • 輸入命令 java,報以下錯誤:
Command 'java' not found, but can be installed with:

sudo apt install default-jre
sudo apt install openjdk-11-jre-headless
sudo apt install openjdk-8-jre-headless

//輸入以上命令,依次進⾏安裝。
  • 輸入命令 javac
//根據提示的命令,依次進⾏安裝
  • 指定 Java 版本:
sudo update-alternatives --config java
  • 輸出:
有 2 個候選項可⽤用於替換 java (提供 /usr/bin/java)。
選擇 路路徑 優先順序 狀態
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 ⾃自動模式
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 ⼿手動模式
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 ⼿手動模式
要維持當前值[*]請按<回⻋車鍵>,或者鍵入選擇的編號:2
  • 指定 Jdk 版本:
sudo update-alternatives --config javac
  • 輸出:
3 個候選項可⽤用於替換 ....。
選擇 路路徑 優先順序 狀態
------------------------------------------------------------
* 0 .......... ⾃自動模式
1 ........... ⼿手動模式
2 ...........
3 java-8-openjdk-...... 1081 ⼿手動模式
要維持當前值[*]請按<回⻋車鍵>,或者鍵入選擇的編號:3

2、idegen.jar

  • 在 Ubuntu 系統下,進入原始碼根⽬錄,運⾏如下命令:
source build/envsetup.sh
mm idegen
  • 可能報錯:
Command 'make' not found, but can be installed with:

sudo apt install make
sudo apt install make-guile

命令安裝 make 成功後,再次運⾏ mm idegen ,會在原始碼⽬
錄下的  out/host/linux-x86/framework  目錄下⽣成了 idegen.jar 檔案。

3、android.iml 和 android.ipr

  • 在原始碼⽬錄下繼續執⾏如下命令:
development/tools/idegen/idegen.sh
  • 會在根目錄下生成 android.iml 和 android.ipr 這兩個檔案,這兩個檔案是 Android Studio 的工程配置檔案,放到原始碼根目錄,這時候其實已經可以直接匯入 Android Studio,但會匯入所有的原始碼模組,會很慢,可以進行過濾,除了 frameworks模組和 packages 模組,其他都給過濾掉,不匯入 Android Studio,開啟 android.iml檔案,搜下 excludeFolder ,在後⾯加入如下程式碼:**
<excludeFolder url="file://$MODULE_DIR$/art" />
<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/cts" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/device" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/hardware" />
<excludeFolder url="file://$MODULE_DIR$/kernel" />
<excludeFolder url="file://$MODULE_DIR$/libcore" />
<excludeFolder url="file://$MODULE_DIR$/libnativehelper" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/platform_testing" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/test" />
<excludeFolder url="file://$MODULE_DIR$/toolchain" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
<excludeFolder url="file://$MODULE_DIR$/.repo" />

4、匯入 Android Studio

  • 我把 Android 原始碼拷到我的 Win10 上,開啟 Android Studio,選擇 Open an existing Android Studio project,找到原始碼⽬錄,點選 Android.ipr,Open,大約等 6 分鐘,匯入完畢,Enjoy coding。