最近在模拟器上安装应用,但是发现编译好的apk无论如何都无法安装成功,尝试了夜神、逍遥、mumu这仨都报安装失败,但是没有报原因,也不知道是为什么,真是很恼火。后来又尝试了Android原生的模拟器,刚开始还以为是模拟器是X86架构的,我编译出来的apk里面含有ARM的so文件,找不到相关的abs造成的,还特意将Android原生模拟器改为ARM架构的进行尝试,还是失败。
后来去了mumu官网看了下《开发者必备说明书》,原来模拟器不支持debug版本apk的直接安装,无论你是点击安装APK还是用模拟器的图形操作都不行,那么我们尝试下用命令行安装apk,看看安装失败到底报的啥错误,下面介绍下mumu命令行连接步骤,注意mumu的端口是127.0.0.1:7555,都是官网上的:
注意:如果设备列表里没有显示127.0.0.1:7555设备,则可多次尝试adb kill-server和adb connect 127.0.0.1:7555连接
连接成功后,赶紧来安装apk吧,adb install C:\\xx.apk,然后就看到,原来这货不能安装测试版apk:
终于找到无法安装的原因了,那么我们执行 adb install -r -t xxx就可以了。想必夜神、逍遥这两款报错应该也是一样的了。
上面命令行是找到错误原因了,其实此时我们的Android studio也已经连接上mumu模拟器了,直接点击编译安装就OK了。
尝试了那么多模拟器,一直以为是自己应用的原因,这尼玛谁知道模拟器做的这么烂,debug apk都不支持直接安装,还要敲命令行,如果刚开始就看到这个报错,应该也不会这么难了,レ(゚∀゚;)ヘ=3=3=3
mumu开发者里面有几个adb命令应该还挺常用的,记录下:
所有应用包名列表:adb shell pm list packages
第三方应用包名列表:adb shell pm list packages -3
系统应用包名列表:adb shell pm list packages -s
正在运行应用包名:adb shell dumpsys window | findstr mCurrentFocus
启动应用:adb shell am start -n 应用包名/应用Activity类名
如启动第五人格应用:adb shell am start -n com.netease.dwrg/.Launcher
若想查看启动应用耗时,则可使用adb shell am start -W 应用包名/应用Activity类名,如:
清除应用数据:adb shell pm clear 应用包名
按键输入:adb shell input keyevent 键值
如:adb shell input keyevent 3表示按下HOME键,其他键值对应键位可网上搜索
字符输入:adb shell input text 字符
如:adb shell input text test则表示输入了test字符串 // ps:字符不支持中文
鼠标点击:adb shell input tap X Y //X Y分别为当前屏幕下的x和y轴坐标值
鼠标滑动:adb shell input swipe X1 Y1 X2 Y2 // X1 Y1 和X2 Y2分别为滑动起始点的坐标
从电脑上传文件至模拟器:adb push C:\test.apk /data
从模拟器复制文件至电脑:adb pull /data/test.apk C:\
将模拟器当前显示截图 :adb shell screencap /data/screen.png
将截图文件下载至电脑:adb pull /data/screen.png C:\
录制视频,开始录制:adb shell screenrecord /data/test.mp4
结束录制,可按CTRL+C结束录制
导出视频文件:adb pull /data/test.mp4 C:\