查找获取Android应用Package 和 Activity
一、Android应用Package 和 Activity是什么意思?
为什么要讲这两个概念呢?因为使用 Appium 自动化测试,必须要使用 Package 和 launch Activity 才能启动应用。
Package
什么是 Package?其实就是包名,可以认为是 Android 应用的一个唯一标识。如何确定你的设备上是否装了某一款应用?就是通过包名来判断。在使用 Appium 进行 app 自动化的时候呢,必须要通过包名告诉 Appium 我们要测的应用是什么,这样 Appium 才知道要去哪里操作了。
Activity
那什么又是 Activity 呢?官方解释 Activity 就是 Android 组件中最基本也是最为常用的四大组件之一,中文意思就是活动,几乎所有的活动都是用来与用户交互的,活动主要关注与视图窗体的创建,一个应用程序可以包含零个或者多个活动,但是包含零个活动的应用比较少。简单来说,activity 是一种与用户交互的组件,也就是界面啦。在 web 测试的时候,我们称作页面的玩意儿。只是现在不叫页面啦,叫活动。如果把 app 看作一个浏览器(当然很多时候其实就是一个浏览器),那么Activity就是一个个的页面。在一个应用程序中通常由多个 Activity 构成,都会在 Manifest.xml 中指定一个主的 Activity,如下设置 <actionandroid:name="android.intent.action.MAIN" />,当程序第一次运行时用户就会看这个 Activity,这个 Activity 可以通过启动其他的Activity进行相关操作。而我们需要告知 Appium,我们测试应用的启动活动(launch activity), Appium 才能启动应用。
二、获取时分为两种情况
1.没有apk,应用直接安装在手机上了
方法:dumpsys window
注意需要先打开需要查找的apk后,再敲入以上命令
adb shell dumpsys window w | findstr \/ | findstr name= 或 adb shell dumpsys window |findstr mCurrent 或 adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"
注:此处用sed 将部分字符串替换为空,格式为“sed 's/要被取代的字串/新的字串/g'”



2.已经获取到了 apk
方法:使用aapt工具
使用aapt工具 ,适合给程序自动获取 apk 的相关信息,非常实用,aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以b站为例,命令行中切换到aapt.exe目录执行输入以下命令
D:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging D:\iBiliPlayer-bili.apk
2.运行后的结果中以下两行分别是应用包名package和入口activity名称,另外可看到应用使用的权限、支持的语言等信息



浙公网安备 33010602011771号