Appium自动化测试基础 — ADB常用命令(二)

7、获取App的包名和启动名

执行app自动化测试之前,必须要获取所测试App的appPackage(包名)和appActivity(启动名),之后将这两个值填写到脚本指定参数里,来告诉要执行的是哪个App。
appPackage(包名):决定程序的唯一性(不是应用的名字)。app的包名是看不到的,需要执行命令才能查看得到的。
appActivity(启动名):目前可以理解为一个启动名对应一个页面。
App的包名和启动名获取方式有很多(任选其一即可):
方式一:
先在设备里打开要获取的App。
输入命令 adb shell dumpsys window windows | findstr mFocusedApp
例如:淘宝App,如下所示:

# 链接逍遥模拟器
C:\Users\L>adb connect 127.0.0.1:21503
adb server version (31) doesn't match this client (41); killing...
* daemon started successfully
connected to 127.0.0.1:21503

# 获取淘宝App首页的包名和启动名
C:\Users\L>adb shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{1554db9 token=Token{a292380 ActivityRecord{9c92803 u0 com.taobao.taobao/com.taobao.tao.TBMainActivity t16}}}

C:\Users\L>

我们从上面可以看出,淘宝App的:
appPackage为:com.taobao.taobao
appActivity为:com.taobao.tao.TBMainActivity
当我们点击淘宝App淘宝首页中的天猫国际,再次获取淘宝App的包名和启动名

C:\Users\L>adb shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{f99dcd9 token=Token{8b7fb20 ActivityRecord{ab41a23 u0 com.taobao.taobao/com.taobao.browser.BrowserActivity t16}}}

C:\Users\L>

我们从上面可以看出,淘宝App的:
appPackage为:com.taobao.taobao
appActivity为:com.taobao.browser.BrowserActivity
提示:斜杠前面的内容是包名,斜杠后面的内容是启动名。

方式二:
通过.apk程序文件来获取appPackage和appActivity。
也就是获取在电脑上的apk的包名/启动名,此时还没有安装在设备上。
步骤1:
命令行进入Android SDK目录下aapt.exe程序所在的目录里。
如图所示:

步骤2:
输入命令 aapt dump badging <path_to_apk>
示例:
进入aapt.exe程序所在的目录,在地址栏中输入cmd,按下回车,进入命令行终端。

回车后进入命令行终端,如下图。

输入aapt dump badging + apk路径命令

F:\DevInstall\envs\android-sdk-windows\build-tools\25.0.3>aapt dump badging C:\Users\L\Desktop\com.taobao.taobao_V9.15.0.apk

执行该命令会有很多内容,其中

  • package: name='com.taobao.taobao'为该app的包名信息。
  • launchable-activity: name='com.taobao.tao.welcome.Welcome'为该app的启动页的信息。(和上边一种方式是有区别的)

提示:
app的启动名和启动页的区别
启动名指的是当前启动页面的名字,启动页是一个app的欢迎页面被启动,
所以说启动名包含启动页。

8、获取app启动时间

adb命令:adb shell am start -W 包名/启动名
示例:

# 链接逍遥模拟器
C:\Users\L>adb connect 127.0.0.1:21503
adb server version (31) doesn't match this client (41); killing...
* daemon started successfully
connected to 127.0.0.1:21503

C:\Users\L>


# 获取淘宝App首页的包名和启动名
C:\Users\L>adb shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{48d0f7f token=Token{a1f589e ActivityRecord{f5ca6d9 u0 com.taobao.taobao/com.taobao.tao.TBMainActivity t17}}}

C:\Users\L>


# 获取淘宝app启动时间
# 包名:com.taobao.taobao
# 启动名:com.taobao.tao.TBMainActivity
C:\Users\L>adb shell am start -W com.taobao.taobao/com.taobao.tao.TBMainActivity
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.taobao.taobao/com.taobao.tao.TBMainActivity }
Warning: Activity not started, its current task has been brought to the front
Status: ok
Activity: com.taobao.taobao/com.taobao.tao.TBMainActivity
ThisTime: 0
TotalTime: 0
WaitTime: 3
Complete

C:\Users\L>

解释:这里有三个时间

  • TotalTime:app⾃身启动时间。
  • WaitTime:系统启动应⽤时间(也就是系统启动应用耗时)。
  • ThisTime:app中启动页打开的时间。

三者之间的关系:WaitTime = TotalTime + ThisTime

9、查看内存信息

adb命令:adb shell dumpsys meminfo <package_name>
其中,package_name 也可以换成程序的pid,pid可以通过 adb shell top | grep app_name命令来查找.
演示命令:

C:\Users\L>adb shell dumpsys meminfo com.taobao.taobao
Applications Memory Usage (in Kilobytes):
Uptime: 904975 Realtime: 904975

** MEMINFO in pid 1413 [com.taobao.taobao] **
                   Pss  Private  Private     Swap     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap        0        0        0        0    80384    65337    15046
  Dalvik Heap    56525    56392        0        0    63014    46630    16384
 Dalvik Other     9119     9116        0        0
        Stack     2680     2680        0        0
       Ashmem      344        4        0        0
    Other dev       26        0       24        0
     .so mmap    21428     3644     9028        0
    .apk mmap     2090        0      704        0
    .ttf mmap      176        0       24        0
    .dex mmap    46945       16    18444        0
    .oat mmap     6123        0      848        0
    .art mmap     2685     2252        0        0
   Other mmap     4808       16     2288        0
      Unknown    77191    77120        0        0
        TOTAL   230140   151240    31360        0   143398   111967    31430

...省略后边内容...

提示:
在命令行窗口运行上述命令,得到程序的内存情况信息如下说明:
主要看

  • Native/Dalvik 的 Heap 信息
    具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
  • Total 的 PSS 信息
    这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

总结:也就是看前两行,前两列就行。

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料在下方链接如下

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值