編譯Android 4.4.2源碼,android4.4.2源碼
在之前的文章中,和大家分享了在天朝下下載android 4.4.2源碼的過程(詳見下載android4.4.2源碼全過程(附已下載的源碼)),現在寫下編譯的筆記。
雖然在android doc中,有提到可以用open jdk來編譯,見:https://source.android.com/source/initializing.html,描述如下:
Installing the JDK
The master branch of Android in the Android Open Source Project (AOSP)requires Java 7. On Ubuntu, use OpenJDK.
Java 7: For the latest version of Android
$ sudo apt-get update$ sudo apt-get install openjdk-7-jdk
Optionally, update the default Java version by running:
$ sudo update-alternatives --config java$ sudo update-alternatives --config javac
但是在我實際的編譯過程當中,仍提示應該用sun的jdk才能編譯(不知是否為我步驟有誤?)。所以下面從下載安裝SUN JDK開始介紹。1、下載SUN JDK 1.6
這裡以下載jdk 1.6 64位的版本為例(具體是32位還是64位視自己的系統),進入http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html,選擇"Java SE Development Kit 6u45",然後在新開啟的頁面點選接受"Accept License Agreement". 接受之後,選擇" jdk-6u45-linux-x64.bin"即可進行下載。如果你沒有登入,系統會先轉到登入頁面,輸入你在Oracle網站註冊的使用者名稱和密碼即可。
我已經將下載好的jdk-6u45-linux-x64.bin上傳在我的網盤,地址如下:http://dd.ma/sSesWlnS。不想登入oracle的網站,可以通過上面短址訪問。
2.安裝 SUN JDK 1.6如果你的ubuntu上沒有安裝過jdk,則建立java目錄,位置自己決定,可以在/usr/local下建立。這裡我的JDK基本上都是安裝在/usr/lib/jvm,所以我把下載的檔案直接拷貝到此,命令如下:
cd ~/下載/sudo cp jdk-6u45-linux-x64.bin /usr/lib/jvm
接下來解壓bin檔案。
$ sudo chmod +x jdk-6u45-linux-x64.bin$ sudo ./jdk-6u45-linux-x64.bin$ sudo rm jdk-6u45-linux-x64.bin
3.配置SUN JDK3.1配置JDK 的環境變數添加JDK的環境變數,要添加的值和在windows下大同小異。這裡我用的是使用者的環境變數,先編輯~/.bashrc:
vi ~/.bashrc
按Shift + G到檔案底部。添加或編輯三個環境變數:JAVA_HOME, CLASSPATH, PATH,如下(我這裡多配置了一個JRE_HOME):
JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45JRE_HOME=$JAVA_HOME/jreCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/lib:$JAVA_HOME
然後運行source ~/.bashrc使其生效。
3.2.配置UBUNTU 的JDK位置。運行以下命令:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 300sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 300sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 300
3.3配置UBUNTU的預設JDK分別運行以下命令,然後選擇安裝的sun jdk。
sudo update-alternatives --config java sudo update-alternatives --config javac sudo update-alternatives --config javaws
以第一條命令為例,運行後會列出你已經安裝及配置的所有java,並詢問你要選擇哪一個。如下所示。
$ sudo update-alternatives --config java有 3 個候選項可用於替換 java (提供 /usr/bin/java)。 選擇 路徑 優先順序 狀態------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 自動模式 1 /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 1061 手動模式 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動模式* 3 /usr/lib/jvm/jdk1.6.0_45/bin/java 300 手動模式要維持當前值[*]請按斷行符號鍵,或者鍵入選擇的編號:
分別選擇我們安裝的sun jdk即可。接下來運行java -version,看是否為sun 的jdk 1.6,如果不是,可能需要重啟一下電腦。
4. 編譯Android 源碼安裝後JDK之後,繼續我們的編譯工作。
msdx@msdx-ubuntu:~/code/442$ source build/envsetup.sh
然後執行:
msdx@msdx-ubuntu:~/code/442$ lunch
然後選擇你要編譯的版本。這裡我選擇了第一個,因為我只是想要編譯出源碼的某個小模組而已。接著執行命令:
msdx@msdx-ubuntu:~/code/442$ m
然後就可以等待其編譯完成了。
助android40原始碼怎編譯成平板電腦模式
可以根據/build/tools/buildinfo.sh下面:echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"去尋找build檔案夾一個mk檔案(忘記名字了) 中 TARGET_AAPT_CHARACTERISTICS=default 的地方。修改成tablet。可以試一下。
android 44 源碼編譯
你使用的JDK版本不對,你的linux是openJDK,安卓源碼需要Oracle的JDK。
你輸入java -version看看版本就知道了
apt-get remove openjdk*可以卸載openJDK