MonkeyRunner 之如何获取APP的PackageName和Activity Name
来源:互联网 发布:淘宝退款售后怎么清空 编辑:程序博客网 时间:2024/05/20 15:36
最近尝试学习使用monkeyrunner进行Android自动化测试,一开始均是使用点击屏幕坐标的方法来运行应用程序,可是点击屏幕坐标的方法比较麻烦,且通用性差。通过度娘我知道可以使用device.startActivity("package name /activity")这个函数来直接启用安装在手机中的app,可是如何获得activity却成了关键,现将获取activity的方法总结如下:
方法1:
1.先把apk包安装到手机上,
2.在android手机或者模拟器上配置Python环境
1)下载和安装 Scripting Layer for Android (SL4A)
2)下载和安装 Python for android
3)打开Python for Android应用,在应用的最上方会有一个Install的按钮,点击该按钮,就会自动下载Python相关的文件并解压和安装,这个过程结束后,你的android手机上的Python开发环境就配置好了!
3.打开SL4A应用,会进入Python示例代码列表,基本上是对主要API的演示,部分示例可能由于偏老,运行时会提示方法过期或者运行异常的问题,这个至少修改少许代码即可,有机会的话,我会在后续课程中介绍这是示例以及修正的方法。
点Menu键,然后点击Add,选择Python2.6.2,就会新建一个Python脚本文件,将文件的名字命名为:HelloPythonInAndroid.py
点击屏幕进入脚本编辑区,开始输入如下内容:
import android
import pprint
droid=android.Android()
apps=droid.getLaunchableApplications()
pprint.pprint(apps.result)
print ‘-------------------------------------‘
pacs=droid.getRunningPackages()
pprint.pprint(pacs.result)
4. 点击Menu,选择Save&Run,恭喜你,运行上面的代码,就可以获得应用程序的startActivity与package name
5.,通过下面的程序,测试apk
import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
device.startActivity(component=‘package name/startActivity name‘)
方法2:
使用re-sign.jar工具,下载地址http://troido.de/downloads/category/1
1) 在cmd下使用java –jar D:\re-sign.jar 运行。
2) 把APK包拖进去,信息就出来了
方法3:
通过apktool获取apk package name(包名)以及activity name
1)下载apktool: http://code.google.com/p/android-apktool/
2)将解压的三个文件(apktool.jar, aapt.exe, apktool.bat) 拷贝到c: windows
现在,环境搭建完成。
3)cmd进入命令终端,执行 aapt dump badging your.apk
就会看到对应的Package名,Activity名。
方法4:
查看AndroidManifest.xml
1.使用apktool反编译app:apktool.bat d es3.apk E:\apk\es
2.打开AndroidManifest.xml
manifest节点的package属性值是应用的包名:<manifest package=”com.estrongs.android.pop”>
查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称,如下:
<activity android:theme=”@*android tyle/Theme.NoTitleBar” android:label=”@string/app_name” android:name=”com.estrongs.android.pop.view.FileExplorerActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
方法5:
打开手机log,然后运行目标程序,然后分析log,在log中也可以找到Activity名称。
- MonkeyRunner 之如何获取APP的PackageName和Activity Name
- 通过aapt获取packageName和Launch Activity
- 如何根据包名packageName获取程序启动的主Activity名称?
- 如何获取app 的包名和activity 名
- 如何获取app 的包名和activity 名
- 如何获取app 的包名和activity 名
- 通过系统广播,获得apk的packageName以后,如何仅通过packageName获取其他信息
- 如何获取注册地图API的SHA1值与PackageName?
- 如何获取checkbox的value和name
- 使用adb shell am start -w packagename/activity查看app耗时碰到的坑
- APP自动化测试时如何获取APK的activity和包名
- PackageManger.getLaunchIntentForPackage(String packageName)获取Intent对象启动Activity的坑
- 获取所有app的完整包名和activity名称
- 获取app 的包名和activity 名
- 获取类class的包名packageName
- android app如何检查和管理activity 的结果
- 获取app和Activity运行状态
- android获取APP 包名和activity
- Android系统进程Zygote启动过程的源代码分析
- Activity class {package/class} does not exist原因及解决方法
- Ajax.ActionLink接收服务端返回值,根据返回值执行操作
- 快速从数据库中直接获取数据字典
- 如何突破Android中64K方法数限制
- MonkeyRunner 之如何获取APP的PackageName和Activity Name
- jquery对buton进行fadeIn和fadeOut
- 第十四周项目四-利用遍历思想求解图问题(4)
- 第十三周项目(3)Dijkstra算法的验证
- Kafka+Storm+HDFS整合实践
- 第十三周 项目3-Dijkstra算法的验证
- 谁的粉丝
- 感恩节MathType公式编辑器6折优惠启动
- mysql cluster (mysql 集群)安装配置方案