Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Mac系統Android M源碼編譯並導入Android Studio查看

Mac系統Android M源碼編譯並導入Android Studio查看

編輯:關於Android編程

一. Mac OS X(10.11.4)編譯環境設置

1.1 創建大小寫敏感的磁盤鏡像

可以通過磁盤管理工具進行設置,也可以通過以下命令生成70g的鏡像文件

sudo hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' 
-size 70g -volname android ~/android.dmg

1.2 將鏡像文件轉為可讀寫磁盤

hdiutil convert ~/android.dmg.sparseimage -format UDRW -o ~/android.dmg

(android.dmg.sparseimage 為創建的磁盤名,可能是android.dmg.sparseimage 或android.dmg ,根據實際情況填寫)

1.3 雙擊android.dmg掛載磁盤

二、下載和編譯的准備工作

2.1 Xcode是少不了的,沒有安裝的同學還是安裝吧,我也是剛安裝的。沒安裝的就安裝個最新版的,這個直接在appStore下載。

2.2 安裝MacPorts之前需要確認環境變量PATH中,/opt/local/bin出現在/usr/bin之前,可以運行一下這行來確認:

echo $PATH

否則,在.bash_profile文件種添加

PATH=/opt/local/bin:$PATH

特別說明:下面的一些知道step3的步驟我這邊總出問題就跳過了,事實上也沒影響後面源代碼的下載,跳不跳過就取決與你了

從MacPorts安裝make, git, and GPG packages:

POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

如果你是Mac OS X 10.4版本的話,還要安裝個bison

POSIXLY_CORRECT=1 sudo port install bison

下面要把gmake 3.82還原到3.81,否則之後編譯源碼會出錯:(3.82有Bug,用不了):

sudo vim /opt/local/etc/macports/sources.conf

然後在rsync那行的上面一行加上

file:///Users/Shared/dport

之後按這個步驟來就行了:

mkdir /Users/Shared/dports
cd /Users/Shared/dports/
svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/devel/gmake/
portindex /Users/Shared/dports

安裝3.81版的:

sudo port install gmake @3.81

檢查一下gmake版本,看到版本號是3.81就對了:

gmake --version

於是最後下載Android源碼前的最後一步就是,修改文件標識符限制:
由於Mac OS 默認將同時打開的文件標識符數量限制得太小,並行編譯處理時可能會超出這個限制。所以在 ~/.bash_profile 裡加上這麼一段:

#set the number of open files to be 1024

ulimit -S -n 1024

三、開始下載android的源碼了,開心啊

3.1 在你的home目錄下創建文件夾 /bin

mkdir ~/bin

3.2 設置環境變量

PATH=~/bin:$PATH

3.3 下載repo工具並且給這個工具可執行權限

curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

chmod a+x ~/bin/repo

3.4 下載源碼

推薦使用清華大學TUNA鏡像源,使用每月更新的初始化包進行下載更新。具體步驟請看

https://mirror.tuna.tsinghua.edu.cn/help/AOSP/

四.編譯源碼

4.1 在android.dmg磁盤下創建文件夾android用於存放源碼:

cd /Volumes/android

mkdir android

4.2 將下載的源碼拷貝到android文件夾中並進入源碼目錄

cd /Volumes/android/android/android-6.0.1/

4.3 設置環境

source build/envsetup.sh

4.4 根據設備選擇target

lunch target

注:target有以下可選:

aosp_arm-eng aosp_arm64-eng aosp_mips-eng aosp_mips64-eng aosp_x86-eng aosp_x86_64-eng aosp_deb-userdebug aosp_flo-userdebug full_fugu-userdebug aosp_fugu-userdebug mini_emulator_arm64-userdebug m_e_arm-userdebug mini_emulator_mips-userdebug mini_emulator_x86-userdebug mini_emulator_x86_64-userdebug aosp_flounder-userdebug aosp_angler-userdebug aosp_bullhead-userdebug aosp_hammerhead-userdebug aosp_hammerhead_fp-userdebug aosp_shamu-userdebug

其他設備可以到這裡閱讀

4.5 編譯

make -j4

-jN,N這個數字可以跟你的CPU實際情況而定。

android目錄底下會生成out文件夾,文件夾下:

\<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMyBpZD0="46-錯誤解決">4.6 錯誤解決

Which would you like? [aosp_arm-eng] 6
build/core/combo/mac_version.mk:38:          
*****************************************************
build/core/combo/mac_version.mk:39: * Can not find SDK 10.6 at  
/Developer/SDKs/MacOSX10.6.sdk
build/core/combo/mac_version.mk:40: 
*****************************************************
build/core/combo/mac_version.mk:41: *** Stop..  Stop.

** Don't have a product spec for: 'aosp_x86_64'
** Do you have the right repo manifest?

把文件中 build/core/combo/mac_version.mk:

mac_sdk_versions_supported := 10.6 10.7 10.8

修改為

mac_sdk_versions_supported := 10.11

(我的Xcode 是10.11,具體查看一下路徑中的sdk版本
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/)

五.用android studio查看Android源碼

5.1 編譯源碼idegen模塊及生成AS配置文件(*.ipr)

mmm development/tools/idegen/

這行命令的意思是編譯idegen這個模塊項目,然後生成idegen.jar文件(不信你自己去查看這個模塊的Android.mk的目標吧,不多解釋)。運行完以後如果看到如下信息則說明編譯OK:

#### make completed successfully (7 seconds) ####

接著執行如下腳本:

development/tools/idegen/idegen.sh

這行命令的意思是在根目錄生成對應的android.ipr、android.iml IEDA工程配置文件。等待片刻得到類似如下信息說明OK:

Read excludes: 21ms
Traversed tree: 194799ms

通過如上操作我們就完成了基本的源碼配置工作。

5.2 使用Android Studio導入源碼工程

有了如上的這些操作以後,我們打開Android Studio,然後選擇打開一個現有的Android Studio項目,然後選擇打開源碼根目錄下的android.ipr文件,導入就行

5.3 加快AS讀取源碼速度

在打開android.ipr之後AS會花費一定的時間來讀取源碼,首次掃描源碼中所有的Source Folders的時候花費的時間比較長,尤其源碼存放在機械硬盤上的時候(完整掃描一次以後後續再打開就沒這麼慢了)。因為我們經常查看和編譯的源碼目錄為packages和framework等,所以我們可以僅保留需要的源碼文件夾不做設置,其他設為Excluded(請按需配置)。

在android根目錄上安快捷鍵F4(如果已經設為Eclipse快捷鍵方式則為F12)打開Module Setting

\

選中不需要掃描的目錄後點右上的Excluded(其中out和prebuilts目錄較大,建議選擇),完成以後效果如左側,文件夾顏色區分,紅色的即為排除在外的文件夾,AS將不掃描其中內容。 重新啟動AS,會發現掃描源碼目錄的時間大大縮減了。

5.4 配置AS的JDK和SDK

在上一步操作之後的等待期間剛好讓我們來配置一下JDK和SDK。

在IDE中參照下圖Project Structure設置,先在SDKs設置中加入必須的JDK,SDK。(可選)然後創建一個新的JDK,可以取名為1.8(No Libraries),然後刪除classpath標簽頁下面的jar文件。 這樣可以確保使用Android源碼裡的庫文件。

13:53:42.jpg

並將1.8(No Libraries)作為Android SDK要使用的Java SDK。如下圖

13:54:55.jpg

之後在Project標簽中的Project SDK中選擇對應的Android API版本

13:55:10.jpg

5.5 解決源碼中跳轉錯誤問題

1)確保在上一步中已為當前工程設置正確了SDK和JDK

2)設置’Modules’的依賴

先將所有依賴刪掉

點擊上圖中’+’並選擇’Jars or directories’選項,依次將frameworks和external文件夾添加進來.如:

13:55:25.jpg

如果代碼跳轉錯誤,請仿照上面的步驟將相應代碼的路徑或jar文件添加到其Dependencies標簽頁中即可。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved