Android SDK手机应用开发中第三方模拟器、真机运行方法以及AVD模拟器黑屏的解决尝试
对于手机应用开发的测试运行,有基于模拟器和真机运行2种途径。
- 模拟器的方法
android SDK提供了AVD Manager进行模拟器的配置和管理,也可以采用第三方模拟器,通过安装和配置完成基于模拟器的运行测试。
- 真机的方法
可通过连接线外接真机,完成测试。
个人建议:
现在手机屏幕普遍分辨率较高,首先建议真机运行,速度快,方便!如果对于需要检查适配各个机型或者手头没有对应型号真机的情况,建议选择第三方模拟器,比AVD具有更好的性能和兼容性。因此,本文按真机、第三方模拟器和AVD的顺序介绍如下。
本文尝试对android SDK自带的AVD模拟器黑屏问题进行解决,描述了所采用过的各种解决方法及结果,供大家参考,也期待有更好的解决方法。
文章目录
1. 真机运行
(1)打开手机设备的“开发者模式”(不同设备略有不同),打开“USB调试”选项(即可对该设备进行应用程序安装、运行等操作)
以华为meta9为例:
开启“开发者模式” 步骤如下:
[1] 选择【设置】进入系统设置菜单,进入【关于手机】;
[2] 对【版本号】,连续点击5~7下;
[3] 屏幕出现【您现在处于开发者模式】,即可;
[4] 返回【设置】,可找到【开发者选项】;
[5] 进入【开发者选项】,打开【USB 调试】选项,并【确定】。
关闭“开发者模式” 步骤如下:
[1] 选择【设置】进入系统设置菜单,进入【应用管理】;
[2] 找到其中的【设置】,并进入;
[3] 点击【存储】,进入后,点【删除数据】,会提示“是否删除所选应用数据?“,点”确定“。即可退出”开发者模式“,此时在”设置“中【开发者选项】消失。
(2)USB连接线连接手机,电脑或手机出现类似“运行调试吗”提示时,选择确定。
(3)运行程序
注意:
- 打开“开发者选项”和“USB调试”模式后,手机插入电脑,会提示,需要选择“文件传输”选项,而不是“播放”
- 华为手机连接后,运行程序提示找不到设备,用adb devices也不显示,需要在“开发人员选项”中找到“选择USB配置”选项,选为“RNDIS(USB以太网)”,重新插入电脑,即可显示设备,才能正常运行到真机。
2. 第三方模拟器
采用第三方模拟器是解决该问题的一个很好的方法。
例如:可参考后面网址安装连接夜神:https://www.yeshen.com/
然后按以下步骤,完成模拟运行:
(1)启动夜神,并设置为开发者模式:
启动夜神模拟器,设置->关于平板电脑->最下端版本号点击5次(注意不是android版本号), 进入开发者模式。
这时返回“设置”,会有“开发者选项”,打开"USB调试"。
(2)进入cmd,连接
adb connect 127.0.0.1:62001
出现如下提示,则连接正确:
连接不成功,提示:
原因是:c:\Program Files\Nox\bin中的adb.exe(夜神安装目录)和D:\Android\android-sdk\platform-tools\(android SDK安装目录)中的adb.exe版本不一致。
可以用以下命令检查版本:
adb version
如果版本不一致,用自己电脑中android SDK目录下的adb.exe文件,覆盖夜神模拟器安装目录中的2个文件:
- 同名文件adb.exe
- nox_adb.exe
以上2个文件都用该adb.exe覆盖(覆盖前可以先保存一个夜神目录中的adb.exe备份,以防覆盖出错用于恢复)
再次连接,看是否成功。
(3)注意:android的模拟器设置中,需要已经删除之前的模拟设备的设置,避免在缺省时不运行到第三方模拟器,否则需要在cordova运行时指定要运行到的模拟器设备
(4)对于cordova应用,到cordova工程目录,用cordova run运行(不连接真机,即可自动识别该模拟器),如图:
3. AVD模拟器配置和运行
3.1 AVD模拟器配置和启动
进入android SDK安装目录,运行AVD manager.exe,出现:
在“Android Virtual Devices”点“Create”可创建自己的模拟器,如图:
配置完成后,选中并启动它。
如果很幸运,你成功了,恭喜你!
很大概率会出现问题。对于曾经遇到的问题和尝试解决的过程汇总如下:
3.2 AVD模拟器启动中问题汇总
(1)需要安装HAXM,错误提示emulator:ERROR:x86 emulation currently requires hardware acceleration.
出现该问题是提示模拟器需要硬件加速。提示HAXM没有安装,HAXM是intel X86的模拟器加速器。
解决方法:
运行SDK Manager,找到extras中HAXM的安装选项,安装它,如图:
如果安装选择中提示不兼容windows,如图:
解决方法是:
【1】 取消硬件加速选型“use host GPU”,再试
【2】 手工安装intel emulator Accelerator(HXAM).
在6.0.5版本后出现该问题,可以从官方所提供网址:https://github.com/intel/haxm
下载后手动安装。
如果没有不兼容提示,安装。
安装后到以下目录,运行intelhaxm-android.exe:
在cmd中,check是否安装成功:
再到avd manager启动,出现模拟屏幕:
但是黑屏!!!
(2)模拟器启动后黑屏问题
对于黑屏,尝试了多种方法,包括:
-<1> 设置RAM和User Host GPU
在AVD Manager中,调小Memory Options的RAM(小于768);设置或取消Use Host GPU
不行!
- <2> 修改config.ini
在自己本机的C:\Users\自己的用户名.android\avd\目录下找到你设置的模拟设备的配置文件config.ini,将编码格式从缺省的avd.ini.encoding=UTF-8,修改为avd.ini.encoding=ISO-8859-1 (具体说明详见原文链接:https://blog.csdn.net/hx7013/article/details/77184594)
保存后,重启模拟器,仍然不行!
- <3> 修改NVIDIA 控制面板的3D设置
打开 NVIDIA 控制面板 - 管理3D设置 - 程序设置,
添加,
然后把首选图形处理器,在“集成图形”和“高性能NVIDIA处理器”之间切换试试,看能否解决问题。原文参考详见:https://blog.csdn.net/hx7013/article/details/77184594)
仍然黑屏!!!
- <4> 设置模拟器的scale
在命令窗将程序运行到模拟器时,发现有如下提示:
是否因为是模拟器超出可显示范围?!
采用如下方法尝试:
在启动AVD之前设置scale:
但仍旧黑屏!
有说是在android SDK到8.0以上,AVD都是黑屏?!!
期待其他开发者的解决分享!