Mac下Android Framework原始碼環境搭建執行及除錯方法

weixin_34166847發表於2018-04-23

本文作為 Android Framework 學習的開篇,主要介紹了在Mac環境下的原始碼下載、編譯、執行、匯入閱讀、除錯等步驟。裡面更多是整理不同文章的資訊,由於是一些配置較多的東西,所以這篇文章更多是記錄和供參考。

1 環境準備

  1. Mac 系統版本號 10.12.6
  2. XCode 版本號 8.3.3

我之前的系統是 Mac 10.13 ,後來在編譯的過程中遇到各種問題,雖然大部分都解決了,但是在後面的虛擬機器執行中又遇到 HAXM not support 等問題,所以最後選擇降級系統。Max系統降級可以參考該文章 手欠MacBook升級OS V10.13失敗,教你蘋果系統降級自救的方法

然後用一塊行動硬碟專門存放原始碼。這裡要對硬碟進行分割槽,分割槽型別選擇 Mac OS 擴充套件(區分大小寫,日誌式)。大概要分出 250GB 大小。

分割槽資訊

分割槽資訊

2 原始碼下載

參見 github-android-open-source-project-analysis(2 下載repo工具 、3 下載原始碼)

下載原始碼

下載原始碼

下載原始碼

3 編譯

下載完成後進入原始碼目錄,開始編譯。首先要切換shell,要使用 bash 進行編譯

chsh -s /bin/bash
複製程式碼

清空之前build的檔案

make clobber
複製程式碼

3.1 完整編譯

編譯需要設定環境變數和選擇打出image的版本

source build/envsetup.sh
 
lunch aosp_x86_64-userdebug //打出的img小一點 虛擬機器執行起來快一點

make -j8  //根據我的cpu執行緒數決定
複製程式碼

如果出現 JDK 沒有設定的錯誤,則執行

export ANDROID_JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
複製程式碼

參考 macOS(Sierra 10.12)上Android原始碼(AOSP)的下載、編譯與匯入到Android Studio - 編譯

參考 Android FrameWork學習(一)Android 7.0系統原始碼下載\編譯

3.2 部分編譯

當修改了部分模組後,不需要整體重新編譯,只需要編譯想應模組即可。

編譯需要設定環境變數和選擇打出image的版本

source build/envsetup.sh
 
lunch aosp_x86_64-userdebug

mmm ./packages/experimental/HelloAndroid/

make snod
複製程式碼

參考 進擊的程式設計師-1.6.1 匯入單獨編譯模組的mmm命令

4 執行

虛擬機器執行

emulator -partition-size 4096 -memory 2048
複製程式碼

5 匯入 Android Studio

先生成專案檔案

source build/envsetup.sh  

mmm development/tools/idegen/  

./development/tools/idegen/idegen.sh
複製程式碼

參考 Android FrameWork學習(二)Android系統原始碼除錯

跳轉問題:dependence順序要提到最上面

image

6 除錯debug

參考 Android FrameWork學習(二)Android系統原始碼除錯

7 aosp架構目錄簡介

https://blog.csdn.net/itachi85/article/details/54695046

相關文章