android手机测试”

http://wenku.baidu.com/view/72dd575a3b3567ec102d8a9b.html?re=view

“android手机测试” 一.安装/卸载:adb  注: 

adb [-s <serialNumber>] install [–r] *.apk:安装 安装成功,如下图: 
 
若当前正在运行两个模拟器设备,即运行了1个以上模拟器或运行模拟器的同时手机正在连接PC,但安装时未指定目标实例,如下图: 
 
若已安装该程序,如下图: 
 
安装未签名或签名失败程序,如下图: 
 
  adb [-s <serialNumber>] [shell pm] uninstall [–k] 包名:卸载   参考:http://wenku.baidu.com/view/c608e9d63186bceb19e8bbcb.html  
1.adb [-d|-e|-s <serialNumber>] <command>:发出adb命令 
当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,需要用-d选项去为应被控制的命令确定目标实例  
 adb devices:查询模拟器/设备实例 
 在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用devices命令来得到一系列相关联的模拟器/设备 
 adb –s <serialNumber> <command>:给特定的模拟器/实例发送命令 
 如果有多个模拟器/设备实例在运行,在发布adb命令时需要指定一个目标实例,使用-s选项的命令  eg: 
  adb –s emulator-5556 install helloWorld.apk 
adb install <path_to_apk>:安装软件 
可以使用adb从电脑上复制一个应用程序,并且将其安装在一个模拟器/设备实例  
 adb forward tcp:6100 tcp:7100:转发端口 
使用forward命令进行任意端口的转发—-一个模拟器/设备实例的某一特定主机 端口向另一不同端口的转发请求 
adb forward tcp:6100 local:logd:使用adb来建立命名为抽象的UNIX域套接口  
 adb pull <remote> <local>:从模拟器/设备中拷出文件 
使用adb pull,push命令将文件复制到一个模拟器/设备实例的数据文件或是从数据文件中复制。install命令只将一个.apk文件复制到一个特定的位置,与其不同的是,pull和push命令可令你复制任意目录和文件到一个模拟器/设备实例的任何位置从模拟器或设备中复制文件或目录,使用(如下命令): 
adb pull <remote> <local> 
将文件或目录复制到模拟器或者设备,使用(如下命令): adb push <local> <remote>   eg: 
 
  adb push foo.txt /sdcard/foo.txt 2.启动shell命令 
adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>:当没有完全进入到远 程shell的时候,这样使用shell命令来执行一条命令 
adb [-d|-e|-s {<serialNumber>}] shell:在模拟器/设备中不用远程shell端时, 这样使用shell命令 
通过操作ctrl+D或exit就可以退出shell远程连接  
 通过远程shell端运行sqlite3连接数据库 
通过adb远程shell端,可以通过Android软sqlite3命令程序来管理数据库。 sqlite3工具包含了许多使用命令,比如:.dump显示表的内容,.schema可以显示出已经存在的表空间的SQL CREATE结果集。Sqlite3还允许远程执行sql命令 
通过sqlite3,按照以上方法登陆模拟器的远程shell端,然后启动工具就可以使 用sqlite3命令。当sqlite3启动后,还可以指定想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据/date/data/<package_name>/databases/.   eg: 
   adb –s emulator-5554 shell    #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: 
adb shell monkey –v –p your.package.name 500:这个命令将会启动你的软件 并且触发500个事件 
注:更多关于命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page  4.其它shell命令   eg: 
adb shell ls /system/bin 
  dumpsys  清除屏幕中的系统数据n   dumpstate 清除一个文件的状态 
 

 logcat [<option>]„ [<filter-spec>]„ 启动信息日志并且输出到屏幕上

据文件中复制。install命令只将一个.apk文件复制到一个特定的位置,与其不同的是,pull和push命令可令你复制任意目录和文件到一个模拟器/设备实例的任何位置从模拟器或设备中复制文件或目录,使用(如下命令): 
adb pull <remote> <local> 
将文件或目录复制到模拟器或者设备,使用(如下命令): adb push <local> <remote>   eg: 
 
  adb push foo.txt /sdcard/foo.txt 2.启动shell命令 
adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>:当没有完全进入到远 程shell的时候,这样使用shell命令来执行一条命令 
adb [-d|-e|-s {<serialNumber>}] shell:在模拟器/设备中不用远程shell端时, 这样使用shell命令 
通过操作ctrl+D或exit就可以退出shell远程连接  
 通过远程shell端运行sqlite3连接数据库 
通过adb远程shell端,可以通过Android软sqlite3命令程序来管理数据库。 sqlite3工具包含了许多使用命令,比如:.dump显示表的内容,.schema可以显示出已经存在的表空间的SQL CREATE结果集。Sqlite3还允许远程执行sql命令 
通过sqlite3,按照以上方法登陆模拟器的远程shell端,然后启动工具就可以使 用sqlite3命令。当sqlite3启动后,还可以指定想查看的数据库的完整路径。模拟器/设备实例会在文件夹中保存SQLite3数据/date/data/<package_name>/databases/.   eg: 
   adb –s emulator-5554 shell    #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: 
adb shell monkey –v –p your.package.name 500:这个命令将会启动你的软件 并且触发500个事件 
注:更多关于命令Monkey的命令的信息,可以查看UI/Application Exerciser Monkey documentation page  4.其它shell命令   eg: 
adb shell ls /system/bin 
  dumpsys  清除屏幕中的系统数据n   dumpstate 清除一个文件的状态 
 
 logcat [<option>]„ [<filter-spec>]„ 启动信息日志并且输出到屏幕上

dmesg 输出主要的调试信息到屏幕上   start 启动或重启一个模拟器/设备实例   stop 关闭一个模拟器/设备实例  5.启用logcat日志 
  可以用logcat命令来查看系统日志缓冲区的内容:  
 [adb] logcat [<option>] „ [<fileter-spec>] „ 
也可以在电脑或运行在模拟器/设备上的远程adb shell端来使用logcat命令,也 可以在电脑上查看日志输出  $adb logcat 或 
#logcat 
二.版本查看:aapt 
 参考:http://wenku.baidu.com/view/fb293c14f18583d049645921.html 
1.aapt l[ist] [-v][-a] file.{zip,jar,apk}   aapt l *.apk:列出压缩文件目录   参数: 
-v:以table的形式输出目录 -a:详细输出所有目录的内容 
 2.aapt d[ump] [--values] WHAT file.{apk} 
  badging   Print the label and icon for the app declared in APK   permissions  Print the permission from the APK   resources  Print the resource table from the APK   configurations Print the configurations in the APK 
  xmltree   Print the compiled xmls in the given assets 
  xmlstrings  Print the string of the given compiled xml assets   aapt dump badging <file_path.apk>:查看apk包的packageName、versionCode、    applicationLabel、launcherActivity、permission等各种详细信息   aapt dump permissions <file_path.apk>:查看权限   aapt dump resources <file_path.apk>:查看资源列表 
  aapt dump configurations <file_path.apk>:查看apk配置信息 
aapt dump xmltree <file_path.apk> res/*.xml:查看指定apk的指定xml文件 (以树形结构输出的xml信息) 
aapt dump xmlstrings <file_path.apk> res/*.xml:查看指定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路径 
%ANDROID_MANIFEST_XML%:工程AndroidManifext.xml绝对路径 %ASSETS%:asset文件夹路径 
%RESOURCES%:生成的resources.arsc存放路径 参考:

Android系列之Android命令行手动编译打包详解 


http://blog168.chinaunix.net/space.php?uid=22957718&do=blog&cuid=2322671 5.aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2„]:Delete specified files  
from Zip-compatible archive 
6.aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2„]:Add specified files  
to Zip-compatible archive 
 7.aapt v[ersion]:Print program version 三.反编译 
(一)dexdump 注: 
使用命令查看APK中接口配置地址 
将APK应用程序后缀名.apk改为.zip,解压出classes.dex,然后执行反编译命令,如图所示  
 
打开1.txt,即可查看相应接口配置地址是否正确 
 
 (二)apk反编译生成Java源代码和图片、XML配置、语言资源等文件 
 参考:http://www.cnblogs.com/playing/archive/2010/08/11/1797696.html  1.反编译apk得到Java源代码 
 
工具下载:需用到dex2jar和JD-GUI这2个工具 dex2jar下载地址: 
http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI下载地址: 
windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip Linux版JD-GUI: 
http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz 步骤: 
1)首先找到Android软件安装包中的classes.dex

把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java 文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件 
2)把classes.dex拷贝到dex2jar.bat所在目录,在命令行模式下定位到dex2jar.bat 所在目录,运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar  
3)运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码 2.(可直接使用工具apktool反编译xml)反编译apk生成程序的源代码和图片、XML配置、语言资源等文件 
工具下载:在http://code.google.com/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。 
步骤: 
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的文件夹里。输入:apktool d C:\***.apk C:\***文件夹(命令行解释:apktool d要反编译的文件输出文件夹) 
特别注意:你要反编译的文件一定要放在C盘的根目录里, 3)打开C:\***文件夹 就可以得到我们需要的各种资源了。 四.将反编译完的文件重新打包成apk 
  很简单,只要输入:apktool b c:***文件夹(你编译出来文件夹) 五.Android数字签名(可直接使用工具DoAPK进行APK签名) 
参考:http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html 
当要发布程序时,开发者就需要使用自己的数字证书给apk包签名,可以有两种方法。  (1)在命令行下使用JDK中的和Keytool(用于生成数字证书)和Jarsigner(用于使用数字证书签名)来给apk包签名。  
(2)使用ADT Export Wizard进行签名(如果没有数字证书可能需要生成数字证书)。   1.使用Keytool和Jarsigner给程序签名 
命令:keytool –genkey –v –keystore android.keystore –alias android –keyalg RSA –validity 20000 
该命令中,-keystore android.keystore表示生成的证书,可以加上路径;-alias  android表示证书的别名是android;-keyalg RSA表示采用的RSA算法;-validity 20000表示证书的有效期是20000天 

 
 
注:  
查看签名证书信息 
  输入命令“keytool -list -v -keystore *.keystore”,查看签名详细信息  2.接着对程序进行签名  方法(1) 
jarsigner用法:[选项]jar 文件别名 
   jarsigner –verify [选项]jar文件 
执行: 
jarsigner –verbose –keystore android.keystore –signedjar android123_ signed.apk android123.apk android:就可以生成签名的apk文件,这里输入文件android123.apk,最终生成android123_signed.apk为Android签名后的APK执行文件。下面提示输入的密码和keytool输入的一样就行了。 
  
 注: 
 1)jarsigner –verify *.apk:验证APK是否签名成功  
 若未签名或签名失败,如下图

   
  
若签名成功,如下图 
 
  
2)无法签名,提示"jarsigner:找不到..的证书链。..必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。",则主要原因是在生成证书时操作错误。可参考:http://www.cnblogs.com/ghj1976/archive/2011/07/18/2109381.html  方法(2) 使用ADT Export Wizard进行签名 
 
应用程序(apk)签名,在EC中,右键单击应用程序工程,如图选择 
 
选择证书的存放路径,填写相关资料,完成,即可生成被签名的apk文件。如下图所示: 
 
如上图所示,我们可以看到也可以在这里选择”Create new keystore“来创建一个证 书。输入密码,点击下一步,填写相关信息,如下图所示。 






 




 
3.使用zipalign优化APK  
根据官方文档的描述,Android系统中Application的数据都保存在它的APK文件中,同时可以被多个进程访问,安装的过程包括如下几个步骤:  
Installer通过每个apk的manifest文件获取与当前应用程序相关联的permissions信息。 
Home application读取当前APK的Name和Icon等信息。  System server将读取一些与Application运行相关信息,例如:获取和处理Application的notifications请求等。  
最后,APK所包含的内容不仅限于当前Application所使用,而且可以被其它的Application调用,提高系统资源的可复用性。 
zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,将
resource-handling code统一将Data structure alignment(数据结构对齐标准:DSA)限定为4-byte boundaries。如果不采取对齐的标准,处理器无法准确和快速的在内存地址中定位相关资源。目前的系统中使用fallback mechanism机制处理那些没有应用DSA标准的应用程序,这的确大大的方便了普通开发者无需关注繁琐的内存操作问题。但是相反,对于这样的应用程序将给普通用户带来一定的麻烦,不但影响程序的运行的效率,而且使系统的整体执行效率下降和占用大量不必要的内存资源,甚至消耗一定的电池资源(battery life)。  
方法(1)命令行方式手动优化 
利用tools文件夹下的zipalign工具。首先调出cmd命令行,然后执行:zipalign -v  4 source.apk androidres.apk。这个方法不受API Level的限制,可以对任何版本的APK执行Align优化。  
同时可以利用zipalign工具检查当前APK是否已经执行过Align优化。命令:zipalign -c -v 4 androidres.apk

方法(2)使用ADT自动优化 
从ADT 0.9.3版本开始,可以通过export wizard自动对发布的application packages执行align操作。设置方法:鼠标右键点击Project,然后选择”Android Tools” > “Export Signed Application Package„”。 
综上所述,可以使用Keytool、Jarsigner、zipalign 给程序签名并优化程序,这样就需要三个不同的工具: 
keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000 
jarsigner -verbose -keystore android.keystore -signedjar android123_signed.apk android123.apk android 
zipalign -v 4 android123_signed.apk android123_signed_aligned.apk  
当然,也可以通过ADT插件中Export Signed Application Package„来执行,图形界面更为简单、形象、直观。 参考: 
blog.csdn.net/zgfee/archive/2009/11/11/4796831.aspx    Android SDK: 
androidappdocs.appspot.com/guide/publishing/app-signing.html 
     android123.com.cn/androidkaifa/173.html      yarin.javaeye.com/blog/549280 
     androidres.com/index.php/2009/10/18/use-zipalign-to-optimize-your- 
application-packages/ 基础延伸: 
六.Android数据抓包  注:  步骤: 
1)启动模拟器 2)运行联网程序 3)生成数据包文件 
4)使用抓包工具(wireshark)进行查看 
1.实时生成数据包文件:emulator -avd Test -tcpdump capture.pcap  
 
2.使用抓包工具(Wireshark)看数据包文件 

 
七.APK应用程序运行日志追踪 
注:  步骤: 
1)切换至DEBUG查看模式 2)定时跟踪日志 3)定位并截图 
1.优先关注“E(Error)”级别的信息,其次是“W(Warning)”级别的信息  
 






 




2.按“Ctrl+C”复制粘贴信息至文本文件中或截图,并作为附件上传。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值