Android虚拟化
生活随笔
收集整理的這篇文章主要介紹了
Android虚拟化
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
硬件環(huán)境:x86 PC
軟件環(huán)境:Windows; Ubuntu20.04; AOSP 12
目標(biāo):Glodfish,Cuttlefish,Trout三種Android Automotive模擬環(huán)境
1 Goldfish AAOS
- Goldfish也成Emulator,使用qemu啟動(dòng)Android虛擬機(jī),用于APP開發(fā)。可以在windows上模擬器啟動(dòng)aaos,也可以u(píng)buntu上通過qemu啟動(dòng)aaos模擬器。
1.1 windows Android-studio goldfish
- Android-studio goldfish
注意:必須要下載android studio canary版本才能更新AAOS的系統(tǒng)鏡像,地址為:https://developer.android.com/studio/archive
打開Android Studio -> 創(chuàng)建虛擬設(shè)備-> Select a system image -> x86 Image -> 安裝最新的AAOS鏡像. 完成后就可啟動(dòng)AAOS 12(API 32)模擬器了
1.2 Linux Emulator AAOS
- 1 下載谷歌repo
- 1.1 下載清華repo
- 2 準(zhǔn)備編譯環(huán)境
- 3 下載AOSP
3.1 若有外網(wǎng),下載谷歌aosp
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1 repo sync -j43.2 若無外網(wǎng),下載清華aosp
#若沒有外網(wǎng)不建議下谷歌或清華AOSP,時(shí)間太長,老斷,直接下載清華的初始化包,約190G wget -U -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar #解壓初始化包 tar xvf aosp-latest.tar #解壓得到的 AOSP工程目錄,ls啥也沒有,只有一個(gè)隱藏的.repo目錄 cd aosp #獲得master最新代碼 repo sync -j4 #后續(xù)可以僅checkout代碼 #獲取某個(gè)版本代碼,參考如下 cd .repo/manifests git branch -a #查看Android分支 repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.1.0_r8 --depth=1 #如切換到Android 12分支 repo sync -j4 #同步一遍即可得到基于Android 12的完整目錄,-j最多4,不然服務(wù)器并發(fā)受不了503- 4 編譯AOSP
- 5 啟動(dòng)模擬器
2 CuttleFish AAOS
- Cuttlefish相比于Goldfish Virtio更加徹底,用于模擬測試ASOP。
2 1. 準(zhǔn)備環(huán)境
- Android 12 依賴庫,其實(shí)使用前面A11的依賴一樣能編譯,已安裝忽略,master分支無需安裝jdk
2.2 構(gòu)建運(yùn)行cultfish
- 1.檢查ubuntu20.04是否支持KVM
- 2.構(gòu)建和安裝cultfish-common,重啟后會(huì)安裝驅(qū)動(dòng)和udev規(guī)則
- 2.1最新版已無需升級(jí)go版本
- 3下載AOSP
- 4 構(gòu)建AOSP
- 5.運(yùn)行cultfish
- 6.webrtc訪問圖形. 瀏覽器打開 https://localhost:8443
- 7.VNC訪問圖形
2.3 CI鏡像啟動(dòng)Cuttlefish
#谷歌CI構(gòu)建 http://ci.android.com/ -> aosp_master -> userdebug -> Artifacts. 有cf phone的鏡像 下載cvd-host_package.tar.gz和aosp_cf_x86_64_phone-img-xxxxxx.zip mkdir cf; cd cf tar xvf /path/to/cvd-host_package.tar.gz unzip /path/to/aosp_cf_x86_64_phone-img-xxxxxx.zip #啟動(dòng)vm HOME=$PWD ./bin/launch_cvd #遠(yuǎn)程使用webrtc看界面,打開https://localhost:84433 Trout
- Trout是谷歌面向汽車座艙領(lǐng)域的虛擬化Android,底層全部使用Virtio,目標(biāo)做到無縫搭配各種Hypervisor,如8155上商用的qnx
hypervisor;谷歌demo的8155 coqos hypervisor;Trout也可以在PC上模擬,使用qemu/crosvm + KVM這種虛擬化方案。 - 谷歌的Trout還有點(diǎn)問題,需要設(shè)置Vulkan才能運(yùn)行圖形
4 問題
4.1 cuttlefish-common安裝失敗
- 更改ubuntu的源,這里以中科大的為例
- 添加國內(nèi)的源,例如 ustc
- 更新源
- 更新軟件
- 安裝軟件
4.2 scrcpy顯示
- scrcpy利用adb把圖形顯示出來
5 參考
https://blog.csdn.net/linkwj/article/details/119902108?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5-119902108-blog-117474587.pc_relevant_default&depth_1-utm_source=distribute.pc_r
清華AOSP
Goldfish內(nèi)核調(diào)試
總結(jié)
以上是生活随笔為你收集整理的Android虚拟化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼓励你大胆追梦的三个移动互联网案例
- 下一篇: 淘宝特价版事业部java面试,含爱奇艺,