# Android 4.0.3鏡像的編譯方法是什么
## 前言
Android 4.0.3(Ice Cream Sandwich,ICS)是2011年發布的經典版本,雖然已過時,但學習其編譯過程對理解Android系統架構仍有價值。本文將詳細介紹從環境準備到生成系統鏡像的全流程。
---
## 一、環境準備
### 1. 硬件要求
- **內存**:至少16GB(官方推薦)
- **磁盤空間**:100GB以上(源碼+編譯產物)
- **CPU**:多核處理器(建議4核以上)
### 2. 操作系統
推薦使用**Ubuntu 14.04 LTS**(與Android 4.0時代兼容性最佳)
其他Linux發行版需注意庫版本差異。
### 3. 安裝依賴包
```bash
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev \
libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \
tofrodos python-markdown libxml2-utils xsltproc
Android 4.0.3需使用Java 6:
sudo apt-get install openjdk-6-jdk
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
mkdir android-4.0.3
cd android-4.0.3
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.3_r1
repo sync -j4
注:若中斷可重復執行,國內用戶建議使用清華鏡像源。
source build/envsetup.sh
lunch
選擇對應目標(如full-eng
表示模擬器調試版本)
make -j$(nproc)
-j
參數指定并行任務數,建議為CPU核心數的1.5倍
apt-get remove
移除沖突包JAVA_HOME
環境變量編譯完成后,鏡像文件位于:
out/target/product/generic/
關鍵文件:
- system.img
:系統鏡像
- ramdisk.img
:初始內存磁盤
- userdata.img
:用戶數據分區
make snod
emulator -avd ICS_Test -system system.img -ramdisk ramdisk.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot reboot
/system/app/
下的APK文件/frameworks/base/
核心框架代碼device/<vendor>/<device>
中添加BoardConfig.mkcd kernel
make tuna_defconfig # 以Galaxy Nexus為例
make
make clean
后重新編譯ccache
緩存:
export USE_CCACHE=1
ccache -M 50G
undefined reference
錯誤?通過本文的步驟,您已掌握Android 4.0.3的完整編譯方法。雖然現代Android版本已大幅改進構建系統(如Soong替代Make),但理解傳統編譯流程仍是深入系統開發的基石。建議后續嘗試: 1. 移植到新硬件平臺 2. 研究ART虛擬機替代Dalvik 3. 對比新版AOSP構建差異
附:完整編譯命令約需3-8小時(視硬件配置而定) “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。