Android虚拟化
生活随笔
收集整理的這篇文章主要介紹了
Android虚拟化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
硬件環境:x86 PC
軟件環境:Windows; Ubuntu20.04; AOSP 12
目標:Glodfish,Cuttlefish,Trout三種Android Automotive模擬環境
1 Goldfish AAOS
- Goldfish也成Emulator,使用qemu啟動Android虛擬機,用于APP開發。可以在windows上模擬器啟動aaos,也可以ubuntu上通過qemu啟動aaos模擬器。
1.1 windows Android-studio goldfish
- Android-studio goldfish
注意:必須要下載android studio canary版本才能更新AAOS的系統鏡像,地址為:https://developer.android.com/studio/archive
打開Android Studio -> 創建虛擬設備-> Select a system image -> x86 Image -> 安裝最新的AAOS鏡像. 完成后就可啟動AAOS 12(API 32)模擬器了
1.2 Linux Emulator AAOS
- 1 下載谷歌repo
- 1.1 下載清華repo
- 2 準備編譯環境
- 3 下載AOSP
3.1 若有外網,下載谷歌aosp
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1 repo sync -j43.2 若無外網,下載清華aosp
#若沒有外網不建議下谷歌或清華AOSP,時間太長,老斷,直接下載清華的初始化包,約190G wget -U -c https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar #解壓初始化包 tar xvf aosp-latest.tar #解壓得到的 AOSP工程目錄,ls啥也沒有,只有一個隱藏的.repo目錄 cd aosp #獲得master最新代碼 repo sync -j4 #后續可以僅checkout代碼 #獲取某個版本代碼,參考如下 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,不然服務器并發受不了503- 4 編譯AOSP
- 5 啟動模擬器
2 CuttleFish AAOS
- Cuttlefish相比于Goldfish Virtio更加徹底,用于模擬測試ASOP。
2 1. 準備環境
- Android 12 依賴庫,其實使用前面A11的依賴一樣能編譯,已安裝忽略,master分支無需安裝jdk
2.2 構建運行cultfish
- 1.檢查ubuntu20.04是否支持KVM
- 2.構建和安裝cultfish-common,重啟后會安裝驅動和udev規則
- 2.1最新版已無需升級go版本
- 3下載AOSP
- 4 構建AOSP
- 5.運行cultfish
- 6.webrtc訪問圖形. 瀏覽器打開 https://localhost:8443
- 7.VNC訪問圖形
2.3 CI鏡像啟動Cuttlefish
#谷歌CI構建 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 #啟動vm HOME=$PWD ./bin/launch_cvd #遠程使用webrtc看界面,打開https://localhost:84433 Trout
- Trout是谷歌面向汽車座艙領域的虛擬化Android,底層全部使用Virtio,目標做到無縫搭配各種Hypervisor,如8155上商用的qnx
hypervisor;谷歌demo的8155 coqos hypervisor;Trout也可以在PC上模擬,使用qemu/crosvm + KVM這種虛擬化方案。 - 谷歌的Trout還有點問題,需要設置Vulkan才能運行圖形
4 問題
4.1 cuttlefish-common安裝失敗
- 更改ubuntu的源,這里以中科大的為例
- 添加國內的源,例如 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內核調試
總結
以上是生活随笔為你收集整理的Android虚拟化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鼓励你大胆追梦的三个移动互联网案例
- 下一篇: Android +kotlin Bann