首页 > 其他分享 >【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运行比亚迪模拟器(不修改原有sdk)...

【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运行比亚迪模拟器(不修改原有sdk)...

时间:2022-11-24 13:06:49浏览次数:47  
标签:yeshw x86 模拟器 emulator avd android 比亚迪 sdk


吐槽

开发比亚迪车载就必须使用比亚迪的android sdk,导致频繁切换,导致模拟器啥的出现了很多问题。
于是打算改成官方系统,然后提取出比亚迪android.jar中的sdk api出来,然后还能在自己的sdk模拟器上运行,经过一步一步探索,终于成功了。

开始撸

首先去比亚迪官方下载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




【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运行比亚迪模拟器(不修改原有sdk)..._centos


image.png


找到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: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=​​是关键的地方,这个路径方便以后操作

​android list targets​​查看支持创建的设备列表 是识别当前目录优先

​emulator -list-avds​​识别环境变量优先,哪怕到某个固定的sdk下输入此命令。

得切换到适合的路径里面执行,这里得切换emulator文件所在目录执行才行,光设置环境变量执行是没用的。

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界面直接运行

实现方式是修改config.ini,我发现直接修改里面的路径是不行的。还是只能固定放到这个目录下。

把比亚迪​​sdk/system-images/android-25/x86_64​​​文件夹移动到自己的​​sdk/system-images/android-25/default/x86_64/​​下,然后复制下面完整的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



【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运行比亚迪模拟器(不修改原有sdk)..._android_02


image.png


路径为什么不能修改,否则无法通过ui界面运行的原因无从得知,但是目前通过界面启动而不是命令行或者批处理启动的话是我探索的最好的方式了



【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运行比亚迪模拟器(不修改原有sdk)..._java_03


image.png


总结

android list targets 查看支持创建的设备列表 是识别当前目录优先

emulator -list-avds 识别环境变量优先,哪怕到某个固定的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


得切换到适合的路径里面执行,这里得切换emulator文件所在目录执行才行,光设置环境变量执行是没用的。

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识别的的优先级

首先是识别ANDROID_AVD_HOME
如果这个变量没有创建或者这个变量值指定的变量不存在则找ANDROID_SDK_HOME/.android/avd下面找
如果依然不存在,则从系统用户目录.android/avd目录寻找,
另外as启动的设备管理器默认也会在系统用户目录创建。

执行脚本

echo by qssq666 
set /p name=请输入模拟器名称:
echo 在d判创建%name%....
echo 执行创建
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 启动比亚迪模拟器中....
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]:

一个东西被虐待就了就会产生进化(逆境变异),我就是这样的,我讨厌这种频繁的操作,于是产生了有一步进化,这一步进化可以避免修改sdk导致电脑某些问题不生效或者其它打开项目总是切换sdk提示的问题,这一次进化实现了可以在任何电脑拷贝一个模拟器文件和一个jar sdk几十kb,从之前的几个g瞬间效率提升百倍,呵呵。

最简单的配置方式

使用从android sdk提取出来的东西重新整理一个只包含比亚迪的api的jar,然后把比亚迪模拟器镜像替换一下 ​​system-images​​,替换虽然会影响原来模拟器某个系统版本的测试,但是总的来说,不用切换sdk了,可喜可贺了。

标签:yeshw,x86,模拟器,emulator,avd,android,比亚迪,sdk
From: https://blog.51cto.com/u_15458814/5883451

相关文章

  • 在“颜值至上”的互联网时代,我们是否需要美颜SDK?
    从书中所记载的“潘安之貌、卫玠之容”我们可以看出,“看脸”这一现象并非是现代人专属,在古代时便有这个观念。时下,追求高颜值依旧是大多数人的共识,特别是在互联网社交兴起的......
  • android开发Installed Build Tools revision 33.0.0 is corrupted. Remove and instal
    InstalledBuildToolsrevision33.0.0iscorrupted.RemoveandinstallagainusingtheSDKManager.在你的androidsdk安卓目录中找到buildtools目录中的d8.bat,......
  • Android设计模式系列(7)--SDK源码之命令模式
    命令模式,在.net,java平台的事件机制用的非常多,几乎每天都与之打交道。android中对我印象最深的就是多线程多进程的环境,所以必然大量使用到Runbable,Thread,其实用的就是最......
  • Android设计模式系列(1)--SDK源码之组合模式
    Android设计模式系列(1)–SDK源码之组合模式Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在androidUI设计,几乎所有的widget和布局类......
  • [VS Code] OmniSharp requires an install of the .NET SDK......
    问题起源:今天在VSCode打开C#项目,发现弹出以下提示框,一开始直接忽略了,后来发现代码没有转到定义(GotoDefinition)。没多想,就开始百度和Google了,但没找到满意的答案......
  • MAC环境Android SDK环境变量配置
    打开.bash_profile文件exportANDROID_HOME=/Users/liwen/Library/Android/sdkexportPATH=${PATH}:${ANDROID_HOME}/platform-toolsexportPATH=${PATH}:${ANDROID_HOME}/t......
  • 直播美颜SDK接口的闪白功能实现流程
    直播美颜SDK接口作为主播们在直播中最常用的工具,相信大家已经非常熟悉,其中包含了多种多样的美颜功能,小编之前也为大家讲解过,今天小编继续为大家讲一个直播美颜SDK接口中的热......
  • WinUI(WindowsAppSDK)使用LiteDB做个女演员图鉴
    为什么选择LiteDB之前做uwp的时候有做过一个植物图鉴,当时图片使用的是在线图片,所以图片很多也并没有什么体验上的差别,但是直到有一天别人的网站挂掉了,图片访问不到了,当时......
  • "Android SDK and AVD Manager" cannot
    Eclipse安装ADT插件之后现象:发现没有AndroidManager的图标,在Window菜单下也没有,此时右键菜单栏,选择加入AndroidManager。勾选现象:此时发现不能显示,原因在于所有的子命令......
  • 14 SDK开发
    目录SDK开发概述IntroductiontolibradosStep1:GettinglibradosGettinglibradosforPythonStep2:ConfiguringaClusterHandlePythonExampleStep3:Creatinga......