Android源碼編譯及啟動模拟器
- 源碼下載下傳
-
- (1)更改下載下傳源
- (2)安裝源碼下載下傳工具
- (3)下載下傳源碼
- (4)安裝環境依賴
- 源碼編譯
- 啟動模拟器
源碼下載下傳
Ubuntu18.0
(1)更改下載下傳源
源碼下載下傳過程比較慢,可以更改apt源為國内源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list
修改内容如下:
#添加阿裡源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
(2)安裝源碼下載下傳工具
sudo apt install curl python git
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
sudo mv ./repo /usr/local/bin
echo "export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'" >> ~/.bashrc
(3)下載下傳源碼
mkdir aosp10
cd aosp10
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-10.0.0_r1
repo sync -j4
下載下傳過程很順利,沒出現問題。
(4)安裝環境依賴
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
源碼編譯
本來想編譯arm64版本的,奈何電腦是x86架構的,也能跑起來,但是效果很差,是以選擇了x86_64-eng版本的
cd aosp10
source build/envsetup.sh
lunch
aosp_x86_64-eng
make -j16
可以根據電腦組態選擇-j之後的參數
第一次編譯出現兩個問題
(1)SWAP空間配置設定過少
可以參考這個連結 https://blog.csdn.net/weixin_42171170/article/details/105784057 解決辦法
(2)API問題
按照報錯提示,執行指令即可
make test-api-stubs-docs-update-current-api
最終成功編譯
啟動模拟器
如果是剛剛編譯好的,直接輸入emulator指令即可,否則,執行這一系列操作
cd aosp10
source build/envsetup.sh
lunch
aosp_x86_64-eng
emulator
第一次沒能成功跑起來,出了幾個小問題,不過都很好解決。
(1)emulator: ERROR: x86_64 emulation currently requires hardware acceleration!
Please ensure KVM is properly installed and usable.
CPU acceleration status: This user doesn’t have permissions to use KVM (/dev/kvm)
解決:sudo chown 使用者名 -R /dev/kvm
(2)statvfs(‘/aosp10/out/target/product/generic_x86_64/snapshots/default_boot/ram.img’) failed: No such file or directory
解決:sudo chgrp 使用者名ram.img chmod 766 ram.img
(3)qemu_ram_alloc_user_backed: call 段錯誤 (核心已轉儲)
解決:更改顯示卡驅動為圖檔中的那個,位置在軟體更新裡
更新完重新開機時,我還遇到了一個小問題,進不去Ubuntu桌面,卡在了指令行界面,且出現了報錯資訊,滑鼠鍵盤都卡死了,強制重新開機了,進入了Ubuntu進階選項進行了恢複,成功解決。