自我总结Android手机测试入门必备基础Word格式.docx
《自我总结Android手机测试入门必备基础Word格式.docx》由会员分享,可在线阅读,更多相关《自我总结Android手机测试入门必备基础Word格式.docx(14页珍藏版)》请在冰点文库上搜索。
给特定的模拟器/实例发送命令
如果有多个模拟器/设备实例在运行,在发布adb命令时需要指定一个目标实例,使用-s选项的命令
eg:
adb–semulator-5556installhelloWorld.apk
adbinstall<
path_to_apk>
安装软件
可以使用adb从电脑上复制一个应用程序,并且将其安装在一个模拟器/设备实例
adbforwardtcp:
6100tcp:
7100:
转发端口
使用forward命令进行任意端口的转发—-一个模拟器/设备实例的某一特定主机端口向另一不同端口的转发请求
同样,可以使用adb来建立命名为抽象的UNIX域套接口:
adbforwardtcp:
6100local:
logd
adbpull<
remote>
local>
从模拟器/设备中拷出文件
使用adbpull,push命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。
install命令只将一个.apk文件复制到一个特定的位置,与其不同的是,pull和push命令可令你复制任意目录和文件到一个模拟器/设备实例的任何位置
从模拟器或设备中复制文件或目录,使用(如下命令):
adbpull<
将文件或目录复制到模拟器或者设备,使用(如下命令):
adbpush<
eg:
adbpushfoo.txt/sdcard/foo.txt
2.启动shell命令
adb[-d|-e|-s{<
}]shell<
shellCommand>
当没有完全进入到远程shell的时候,这样使用shell命令来执行一条命令
}]shell:
在模拟器/设备中不用远程shell端时,这样使用shell命令
通过操作ctrl+D或exit就可以退出shell远程连接
通过远程shell端运行sqlite3连接数据库
通过adb远程shell端,可以通过Android软sqlite3命令程序来管理数据库。
sqlite3工具包含了许多使用命令,比如:
.dump显示表的内容,.schema可以显示出已经存在的表空间的SQLCREATE结果集。
Sqlite3还允许远程执行sql命令
通过sqlite3,按照以上方法登陆模拟器的远程shell端,然后启动工具就可以使
用sqlite3命令。
当sqlite3启动后,还可以指定想查看的数据库的完整路径。
模拟器/设备实例会在文件夹中保存SQLite3数据/date/data/<
package_name>
/databases/.
eg:
adb–semulator-5554shell
#sqlite3
/data/data/com.example.google.rss.rssexample/databases/rssitems.db
……
sqlite3>
.exit
当启动sqlite3的时候,就可以通过shell端发送sqlite3命令。
用exit或ctrl+D退出adb远程shell端
3.UI/软件试验程序Monkey
当Monkey程序在模拟器或设备运行的时候,如果用户出发了比如点击、触摸、手势或一些系统级别的事件的时候,它就会产生随机脉冲,所以可以用Monkey随机重复的方法去负荷测试你开发的软件
eg:
adbshellmonkey–v–pyour.package.name500:
这个命令将会启动你的软件并且触发500个事件
注:
更多关于命令Monkey的命令的信息,可以查看UI/ApplicationExerciserMonkeydocumentationpage
4.其它shell命令
adbshellls/system/bin
dumpsys清除屏幕中的系统数据n
dumpstate清除一个文件的状态
logcat[<
option>
]…[<
filter-spec>
]…启动信息日志并且输出到屏幕上
dmesg输出主要的调试信息到屏幕上
start启动或重启一个模拟器/设备实例
stop关闭一个模拟器/设备实例
5.启用logcat日志
可以用logcat命令来查看系统日志缓冲区的内容:
[adb]logcat[<
]…[<
fileter-spec>
]…
也可以在电脑或运行在模拟器/设备上的远程adbshell端来使用logcat命令,也
可以在电脑上查看日志输出
$adblogcat或
#logcat
二.版本查看:
aapt
1.aaptl[ist][-v][-a]file.{zip,jar,apk}
aaptl*.apk:
列出压缩文件目录
参数:
-v:
以table的形式输出目录
-a:
详细输出所有目录的内容
2.aaptd[ump][--values]WHATfile.{apk}
badgingPrintthelabelandiconfortheappdeclaredinAPK
permissionsPrintthepermissionfromtheAPK
resourcesPrinttheresourcetablefromtheAPK
configurationsPrinttheconfigurationsintheAPK
xmltreePrintthecompiledxmlsinthegivenassets
xmlstringsPrintthestringofthegivencompiledxmlassets
aaptdumpbadging<
file_path.apk>
查看apk包的packageName、versionCode、
applicationLabel、launcherActivity、permission等各种详细信息
aaptdumppermissions<
查看权限
aaptdumpresources<
查看资源列表
aaptdumpconfigurations<
查看apk配置信息
aaptdumpxmltree<
res/*.xml:
查看指定apk的指定xml文件
(以树形结构输出的xml信息)
aaptdumpxmlstrings<
查看指定apk的指定xml
文件(输出xml文件中所有的字符串信息)
3.%aapt%package–f–m–J%GEN%-S%RES%-I%ANDROID_JAR%-M
%ANDROID_MANIFEST_XML%:
使用aapt生成R.java
4.%aapt%package–f–M%ANDROID_MANIFEST_XML%-S%RES%-A%ASSETS%
-I%ANDROID_JAR%-F%RESOURCE%:
使用aapt生成资源包文件
%GEN%:
存放的R.java文件夹路径
%RES%:
res文件夹路径
%ANDROID_JAR%:
引用的android.jar路径
工程AndroidManifext.xml绝对路径
%ASSETS%:
asset文件夹路径
%RESOURCES%:
生成的resources.arsc存放路径
参考:
Android系列之Android命令行手动编译打包详解
5.aaptr[emove][-v]file.{zip,jar,apk}file1[file2…]:
Deletespecifiedfiles
fromZip-compatiblearchive
6.aapta[dd][-v]file.{zip,jar,apk}file1[file2…]:
Addspecifiedfiles
toZip-compatiblearchive
7.aaptv[ersion]:
Printprogramversion
三.反编译
(一)dexdump
使用命令查看APK中接口配置地址
将APK应用程序后缀名.apk改为.zip,解压出classes.dex,然后执行反编译命令,如图所示
打开1.txt,即可查看相应接口配置地址是否正确
(二)apk反编译生成Java源代码和图片、XML配置、语言资源等文件
1.反编译apk得到Java源代码
工具下载:
需用到dex2jar和JD-GUI这2个工具
dex2jar下载地址:
JD-GUI下载地址:
windows版JD-GUI:
Linux版JD-GUI:
步骤:
1)首先找到Android软件安装包中的classes.dex
把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java
文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件
2)把classes.dex拷贝到dex2jar.bat所在目录,在命令行模式下定位到dex2jar.bat
所在目录,运行dex2jar.batclasses.dex,生成classes.dex.dex2jar.jar
3)运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码
2.(可直接使用工具apktool反编译xml)反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
工具下载:
在
1)解压缩下载的两个文件包apktool-install-windows-2.1_r01-1.zip解压缩后得到的包里有aapt.exe和apktool.bat(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar文件copy进来)
2)打开命令窗口(开始>
运行,输入cmd,回车)进入到apktool.bat的文件夹里。
输入:
apktooldC:
\***.apkC:
\***文件夹(命令行解释:
apktoold要反编译的文件输出文件夹)
特别注意:
你要反编译的文件一定要放在C盘的根目录里,
3)打开C:
\***文件夹就可以得到我们需要的各种资源了。
四.将反编译完的文件重新打包成apk
很简单,只要输入:
apktoolbc:
***文件夹(你编译出来文件夹)
五.Android数字签名(可直接使用工具DoAPK进行APK签名)
当要发布程序时,开发者就需要使用自己的数字证书给apk包签名,可以有两种方法。
(1)在命令行下使用JDK中的和Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。
(2)使用ADTExportWizard进行签名(如果没有数字证书可能需要生成数字证书)。
1.使用Keytool和Jarsigner给程序签名
命令:
keytool–genkey–v–keystoreandroid.keystore–aliasandroid–keyalgRSA–validity20000
该命令中,-keystoreandroid.keystore表示生成的证书,可以加上路径;
-alias
android表示证书的别名是android;
-keyalgRSA表示采用的RSA算法;
-validity20000表示证书的有效期是20000天
查看签名证书信息
输入命令“keytool-list-v-keystore*.keystore”,查看签名详细信息
2.接着对程序进行签名
方法
(1)
jarsigner用法:
[选项]jar文件别名
jarsigner–verify[选项]jar文件
执行:
jarsigner–verbose–keystoreandroid.keystore–signedjarandroid123_
signed.apkandroid123.apkandroid:
就可以生成签名的apk文件,这里输入文件android123.apk,最终生成android123_signed.apk为Android签名后的APK执行文件。
下面提示输入的密码和keytool输入的一样就行了。
1)jarsigner–verify*.apk:
验证APK是否签名成功
若未签名或签名失败,如下图
若签名成功,如下图
2)无法签名,提示"
jarsigner:
找不到..的证书链。
..必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。
"
,则主要原因是在生成证书时操作错误。
可参考:
方法
(2)使用ADTExportWizard进行签名
应用程序(apk)签名,在EC中,右键单击应用程序工程,如图选择
选择证书的存放路径,填写相关资料,完成,即可生成被签名的apk文件。
如下图所示:
如上图所示,我们可以看到也可以在这里选择”Createnewkeystore“来创建一个证
书。
输入密码,点击下一步,填写相关信息,如下图所示。
3.使用zipalign优化APK
根据官方文档的描述,Android系统中Application的数据都保存在它的APK文件中,同时可以被多个进程访问,安装的过程包括如下几个步骤:
Installer通过每个apk的manifest文件获取与当前应用程序相关联的permissions信息。
Homeapplication读取当前APK的Name和Icon等信息。
Systemserver将读取一些与Application运行相关信息,例如:
获取和处理Application的notifications请求等。
最后,APK所包含的内容不仅限于当前Application所使用,而且可以被其它的Application调用,提高系统资源的可复用性。
zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,将resource-handlingcode统一将Datastructurealignment(数据结构对齐标准:
DSA)限定为4-byteboundaries。
如果不采取对齐的标准,处理器无法准确和快速的在内存地址中定位相关资源。
目前的系统中使用fallbackmechanism机制处理那些没有应用DSA标准的应用程序,这的确大大的方便了普通开发者无需关注繁琐的内存操作问题。
但是相反,对于这样的应用程序将给普通用户带来一定的麻烦,不但影响程序的运行的效率,而且使系统的整体执行效率下降和占用大量不必要的内存资源,甚至消耗一定的电池资源(batterylife)。
方法
(1)命令行方式手动优化
利用tools文件夹下的zipalign工具。
首先调出cmd命令行,然后执行:
zipalign-v4source.apkandroidres.apk。
这个方法不受APILevel的限制,可以对任何版本的APK执行Align优化。
同时可以利用zipalign工具检查当前APK是否已经执行过Align优化。
zipalign-c-v4androidres.apk
方法
(2)使用ADT自动优化
从ADT0.9.3版本开始,可以通过exportwizard自动对发布的applicationpackages执行align操作。
设置方法:
鼠标右键点击Project,然后选择”AndroidTools”>
“ExportSignedApplicationPackage…”。
综上所述,可以使用Keytool、Jarsigner、zipalign给程序签名并优化程序,这样就需要三个不同的工具:
keytool-genkey-v-keystoreandroid.keystore-aliasandroid-keyalgRSA-validity20000
jarsigner-verbose-keystoreandroid.keystore-signedjarandroid123_signed.apkandroid123.apkandroid
zipalign-v4android123_signed.apkandroid123_signed_aligned.apk
当然,也可以通过ADT插件中ExportSignedApplicationPackage…来执行,图形界面更为简单、形象、直观。
AndroidSDK:
application-packages/
基础延伸:
六.Android数据抓包
步骤:
1)启动模拟器
2)运行联网程序
3)生成数据包文件
4)使用抓包工具(wireshark)进行查看
1.实时生成数据包文件:
emulator-avdTest-tcpdumpcapture.pcap
2.使用抓包工具(Wireshark)看数据包文件
七.APK应用程序运行日志追踪
1)切换至DEBUG查看模式
2)定时跟踪日志
3)定位并截图
1.优先关注“E(Error)”级别的信息,其次是“W(Warning)”级别的信息
2.按“Ctrl+C”复制粘贴信息至文本文件中或截图,并作为附件上传。