吐槽
開(kāi)發(fā)比亞迪車載就必須使用比亞迪的android sdk趣钱,導(dǎo)致頻繁切換语婴,導(dǎo)致模擬器啥的出現(xiàn)了很多問(wèn)題孕惜。
于是打算改成官方系統(tǒng)政己,然后提取出比亞迪android.jar中的sdk api出來(lái)酌壕,然后還能在自己的sdk模擬器上運(yùn)行,經(jīng)過(guò)一步一步探索,終于成功了仅孩。
開(kāi)始擼
首先去比亞迪官方下載sdk工具包托猩,然后切換到tools
目錄
android create avd -n bydavd12345 -c 200M -p d:/avd -k system-images;android-25;default;x86_64
emulator -avd bydavd12345
avd.ini.encoding=UTF-8
path=d:\avd
target=android-25
找到config.ini 修改參數(shù),因?yàn)槟J(rèn)創(chuàng)建的分辨率太小了辽慕,不是橫屏的京腥。
AvdId=BYD1
PlayStore.enabled=false
abi.type=x86_64
avd.ini.displayname=BYD1
avd.ini.encoding=UTF-8
disk.dataPartition.size=800M
fastboot.forceColdBoot=no
hw.accelerometer=yes
hw.arc=false
hw.audioInput=yes
hw.battery=yes
hw.camera.back=virtualscene
hw.camera.front=emulated
hw.cpu.arch=x86_64
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=MD5:296668016462ad7706360105af76ae00
hw.device.manufacturer=User
hw.device.name=BYD1
hw.gps=yes
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.initialOrientation=landscape
hw.keyboard=yes
hw.lcd.density=320
hw.lcd.height=1920
hw.lcd.width=1080
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=D:\luozheng\MyProject\dingzhi\chezai\doc\byd-auto_sdk_windows\system-images\android-25\x86_64\
runtime.network.latency=none
runtime.network.speed=full
sdcard.size=100M
showDeviceFrame=no
skin.dynamic=yes
skin.name=1920x1080
skin.path=_no_skin
skin.path.backup=_no_skin
tag.display=Default
tag.id=default
vm.heapSize=192
image.sysdir.1=
是關(guān)鍵的地方,這個(gè)路徑方便以后操作
android list targets
查看支持創(chuàng)建的設(shè)備列表 是識(shí)別當(dāng)前目錄優(yōu)先
emulator -list-avds
識(shí)別環(huán)境變量?jī)?yōu)先溅蛉,哪怕到某個(gè)固定的sdk下輸入此命令公浪。
得切換到適合的路徑里面執(zhí)行,這里得切換emulator文件所在目錄執(zhí)行才行船侧,光設(shè)置環(huán)境變量執(zhí)行是沒(méi)用的欠气。
D:\avd>emulator @BYDAVD_LZ
[4912]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt
\lib
Could not launch 'D:\avd\..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe': No such file or
directory
D:\avd>
保持原有sdk不變,在自己的官方模擬器管理器ui界面直接運(yùn)行
實(shí)現(xiàn)方式是修改config.ini镜撩,我發(fā)現(xiàn)直接修改里面的路徑是不行的预柒。還是只能固定放到這個(gè)目錄下。
把比亞迪sdk/system-images/android-25/x86_64
文件夾移動(dòng)到自己的sdk/system-images/android-25/default/x86_64/
下袁梗,然后復(fù)制下面完整的config.ini替換你自己的宜鸯。
AvdId=BYD1
PlayStore.enabled=false
abi.type=x86_64
avd.ini.displayname=BYD1
avd.ini.encoding=UTF-8
disk.dataPartition.size=800M
fastboot.forceColdBoot=no
hw.accelerometer=yes
hw.arc=false
hw.audioInput=yes
hw.battery=yes
hw.camera.back=virtualscene
hw.camera.front=emulated
hw.cpu.arch=x86_64
hw.cpu.ncore=4
hw.dPad=no
hw.device.hash2=MD5:939e2e20a04a4c645e5130616c6ff5b5
hw.device.manufacturer=Google
hw.device.name=Nexus 9
hw.gps=yes
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.initialOrientation=landscape
hw.keyboard=yes
hw.lcd.density=320
hw.lcd.height=1536
hw.lcd.width=2048
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=no
hw.sensors.orientation=yes
hw.sensors.proximity=no
hw.trackBall=no
#image.sysdir.1=D:\luozheng\MyProject\dingzhi\chezai\doc\byd-auto_sdk_windows\system-images\android-25\x86_64\
image.sysdir.1=system-images\android-25\default\x86_64\
runtime.network.latency=none
runtime.network.speed=full
sdcard.path=d:\avd\sdcard.img
sdcard.size=200 MB
showDeviceFrame=no
skin.dynamic=yes
skin.name=1920x1080
skin.path=_no_skin
skin.path.backup=_no_skin
tag.display=
tag.id=default
vm.heapSize=192
路徑為什么不能修改,否則無(wú)法通過(guò)ui界面運(yùn)行的原因無(wú)從得知遮怜,但是目前通過(guò)界面啟動(dòng)而不是命令行或者批處理啟動(dòng)的話是我探索的最好的方式了
總結(jié)
android list targets 查看支持創(chuàng)建的設(shè)備列表 是識(shí)別當(dāng)前目錄優(yōu)先
emulator -list-avds 識(shí)別環(huán)境變量?jī)?yōu)先淋袖,哪怕到某個(gè)固定的sdk下輸入此命令。
23:23 Emulator: [7912]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at C:\Program Files\Android\android-sdk\emulator\lib64\qt\lib
23:23 Emulator: Could not launch 'C:\Program Files\Android\android-sdk\emulator/qemu/windows-x86_64/qemu-system-i386.exe': No such file or directory
23:23 Emulator: Process finished with exit code 2
得切換到適合的路徑里面執(zhí)行锯梁,這里得切換emulator文件所在目錄執(zhí)行才行即碗,光設(shè)置環(huán)境變量執(zhí)行是沒(méi)用的。
D:\avd>emulator @BYDAVD_LZ
[4912]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ..\emulator\lib64\qt\lib
Could not launch 'D:\avd..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe': No such file or directory
D:\avd>
avd識(shí)別的的優(yōu)先級(jí)
首先是識(shí)別ANDROID_AVD_HOME
如果這個(gè)變量沒(méi)有創(chuàng)建或者這個(gè)變量值指定的變量不存在則找ANDROID_SDK_HOME/.android/avd下面找
如果依然不存在陌凳,則從系統(tǒng)用戶目錄.android/avd目錄尋找剥懒,
另外as啟動(dòng)的設(shè)備管理器默認(rèn)也會(huì)在系統(tǒng)用戶目錄創(chuàng)建。
執(zhí)行腳本
echo by qssq666
set /p name=請(qǐng)輸入模擬器名稱:
echo 在d判創(chuàng)建%name%....
echo 執(zhí)行創(chuàng)建
android create avd -n %name% -c 200M -p d:/avd/%name%.avd -k system-images;android-25;default;x86_64
echo 查詢模擬器列表
emulator emulator -list-avds
echo 啟動(dòng)比亞迪模擬器中....
emulator -avd %name%
pause
::Abstracted LCD density: A value used to rou
::hw.lcd.density [160]:
::LCD color depth: Color bit depth of emulate
::hw.lcd.depth [16]:
::LCD pixel height:
::hw.lcd.height [640]:
::LCD pixel width:
::hw.lcd.width [320]:
一個(gè)東西被虐待就了就會(huì)產(chǎn)生進(jìn)化(逆境變異)合敦,我就是這樣的蕊肥,我討厭這種頻繁的操作,于是產(chǎn)生了有一步進(jìn)化蛤肌,這一步進(jìn)化可以避免修改sdk導(dǎo)致電腦某些問(wèn)題不生效或者其它打開(kāi)項(xiàng)目總是切換sdk提示的問(wèn)題,這一次進(jìn)化實(shí)現(xiàn)了可以在任何電腦拷貝一個(gè)模擬器文件和一個(gè)jar sdk幾十kb壁却,從之前的幾個(gè)g瞬間效率提升百倍,呵呵裸准。
最簡(jiǎn)單的配置方式
使用從android sdk提取出來(lái)的東西重新整理一個(gè)只包含比亞迪的api的jar,然后把比亞迪模擬器鏡像替換一下 system-images
展东,替換雖然會(huì)影響原來(lái)模擬器某個(gè)系統(tǒng)版本的測(cè)試,但是總的來(lái)說(shuō)炒俱,不用切換sdk了盐肃,可喜可賀了爪膊。