当前位置:网站首页>Appium自动化测试基础— 补充:App的包名(appPackage)和启动名(appActivity)
Appium自动化测试基础— 补充:App的包名(appPackage)和启动名(appActivity)
2022-06-28 00:04:00 【测试-八戒】
1、包名
包名(appPackage)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。
例如我可以自己编译生成一个App也叫“微信”,但是我App的包名不能为com.tencent.mm(微信的包名),如果我指定的包名和微信一致了,那么一台手机上只允许安装这两个App中的其中一个。
- 说到这很多人就会有疑问,如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?
Android中为了防止这样,还做了一个叫签名的东西,微信的签名一般我们是没有的,所以就可以通过签名来标识出这款App到底是谁的了,有兴趣了可以了解下签名,这里就不再赘述了。
下面我们就介绍几种查看包名的方法:
(1)看源代码
一般我们测试的App都是自己公司的App,因此当有源代码的时候,我们就可以非常容易的知道它的包名。
找到工程目录下的 “AndroidManifest.xml” 的文件(就是项目中的配置文件),打开后,如下图:

这样就可以找到package这一项查看即可。
(2)查看手机系统设置
我这里介绍谷歌原生系统,其他的一些小米、魅族等自己定制后的系统的查看方法也大同小异。
操作步骤:“设置” -> “应用” -> “正在运行”(这一步需要注意)-> 选择要查看的应用。
这个时候就能看到了,如下图:

(3)查看 /data/data/ 目录
当我们安装一款应用的时候,系统就会在 /data/data/目录下建一个目录,并且文件名就是当前这个应用的包名,我们看一下手机里这个目录下都有些什么文件吧:

如果你知道你要查看的App包名中的一个关键词的话,会更快的找到你应用的包名,否则建议使用其他方法。此方法手机需要root。
(4)GT软件
GT的界面中自带了这个功能,从应用宝上下载GT,然后选择一个被测应用,就可以看到了,如下图:

2、启动名
启动名(appActivity)也可以叫启动页。
简单的来说appActivity指的就是App中我们看到的页面,一个页面就是一个appActivity,通常第一页启动起来的页面我们就称之为 “启动页”。
我们在做自动化测试中,通常第一步都是启动被测应用,而启动的方法就是利用 “包名/启动页”,因此我们在测试的过程中通常需要知道这个appActivity的名称。
下面我就介绍几种查看启动页appActivity的方法。
(1)看源代码
同样在源代码中我们可以直接找到启动页的Activity的名称。 这里需要找工程目录下的 AndroidManifest.xml配置文件吗,文件中包含category的值为android.intent.category.LAUNCHER”的appActivity就是我们要找的:

当我们知道启动页appActivity之后,就可以直接输入命令:adb shell am start com.bryan.testbattery/com.bryan.testbattery.activity.MainActivity
拉起应用了。
(2)Logcat
关闭App,打开Logcat,然后启动你的App,这个时候仔细看log日志,一般tag为ActivityManager的会记录下这么一段log,而这里面就记录了启动页的appActivity,如下图:

(3)dump package 包名
使用命令查看后,同样是找到包含category.LAUNCHER字样的appActivity即可。

(4)Monkey
Monkey可以设置日志的详细程度,当我们指定为-VVV的时候,并且指定模拟随机事件为一次,即可查看:

重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下


边栏推荐
- Web3 技术初体验以及相关学习资料
- General process after reference layer reboot
- Arrays.asList()坑
- 基于可学习尺寸自适应分子亚结构的药物相互作用预测
- TI AM3352/54/59 工业核心板硬件说明书
- Is there any risk in opening an account for flush stock? Is it safe for flush to open an account
- 药物发现综述-01-药物发现概述
- Adobe Premiere Basics - common video effects (cropping, black and white, clip speed, mirroring, lens halo) (XV)
- Review of drug discovery-02-prediction of molecular properties
- Adobe Premiere Basics - general operations for editing material files (offline files, replacing materials, material labels and grouping, material enabling, convenient adjustment of opacity, project pa
猜你喜欢

The research group of Xuyong and duanwenhui of Tsinghua University has developed an efficient and accurate first principles electronic structure deep learning method and program

面试官问:能否模拟实现JS的new操作符

Adobe Premiere foundation - sound adjustment (volume correction, noise reduction, telephone tone, pitch shifter, parameter equalizer) (XVIII)
![[embedded foundation] serial port communication](/img/b7/18fec20e2d5fa5f226c6f8bb1e93d2.png)
[embedded foundation] serial port communication

Evaluation - rank sum ratio comprehensive evaluation

什麼是數字化?什麼是數字化轉型?為什麼企業選擇數字化轉型?

How to optimize the "message" list of IM

Database query optimization: master-slave read-write separation and common problems

数据库查询优化:主从读写分离及常见问题

766. 托普利茨矩阵
随机推荐
OS模块与OS.path 模块的学习
The interviewer asked: this point of JS
零基礎多圖詳解圖神經網絡
学习 pickle
[Yocto RM]8 - OpenEmbedded Kickstart (.wks) Reference
Original | 2025 to achieve the "five ones" goal! The four products of Jiefang power are officially released
Intranet penetration with FRP
Solve storage problems? WMS warehouse management system solution
Capacitor
Adobe Premiere基础-常用的视频特效(边角定位,马赛克,模糊,锐化,手写工具,效果控件层级顺序)(十六)
General process after reference layer reboot
Centos8 operation record command version Yum redis MySQL Nacos JDK
How to read a paper
Qu'est - ce que la numérisation? Qu'est - ce que la transformation numérique? Pourquoi les entreprises choisissent - elles la transformation numérique?
TIA botu_ Concrete method of making analog input and output Global Library Based on SCL language
Import the data table in MySQL into Excel
Li Kou today's question -522 Longest special sequence
Scala 基础 (三):运算符和流程控制
评价——灰色关联分析
Numpy----np.tile()函数解析