分类目录服务端

cmd命令行中logcat输出日志中文乱码

在命令行使用adb logcat命令直接输出日志中文内容显示乱码,原因是中文系统中cmd命令行窗口默认的编码是GBK,而LogCat打印的日志是UTF-8编码,所以adb logcat命令输出的中文内容显示乱码。

修改cmd命令行窗口字符编码即可解决logcat日志中文显示乱码问题:

1.cmd命令行窗口字符编码切换为UTF-8,命令行中执行:chcp 65001

MonkeyRunner读取本机图片进行对比loadImageFromFile

上一篇文章介绍了使用monkeyrunner截取指定区域的图像并进行对比,日常使用中大多数时候需要读取本机的图片和monkeyrunner的截图进行对比。

MonkeyRunner.loadImageFromFile(‘./shot.png’)方法可以实现读取本地图片供MonkeyRunner使用的功能,参数是本地图片路径。需要特别注意loadImageFromFile的大小写,否则会出现AttributeError的提示。

monkeyrunner对比屏幕局部图像.getSubImage()

monkeyrunner执行测试时使用.takeSnapshot()截图,默认截取整个屏幕,包含了系统的状态栏。真实手机状态栏中包含如电量/信号量/消息提示等变量,使用.sameAs()对比整个屏幕的截图时就很容易出现错误。而使用.getSubImage()获得局部图像,然后再进行对比,就减少了monkeyrunner执行结果出错的概率。
monkeyrunner使用getSubImage()获取截图局部图像,示例如下:

打开APK里的AndroidManifest.xml乱码

直接解压apk,打开AndroidManifest.xml显示乱码,因为这里面是二进制字符,和打开文件的编辑器无关。

打开APK里的AndroidManifest.xml不乱码:方法一
反编译apk:apktool d es.apk F:\tmp\es,反编译后任意编辑工具打开都不乱码

注:apktool可搜索下载,aapt在apktool的压缩包内