美文网首页
[QA]adb笔记

[QA]adb笔记

作者: yumiii_ | 来源:发表于2019-03-31 20:46 被阅读0次

一、安装步骤
1.安装homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装adb
brew cask install android-platform-tools
3.启动adb
adb devices
遇到的问题:
启动adb后找不到设备的情况:
命令行输入system_profiler SPUSBDataType,找到Vendor ID,将VendorID的值写入/.android/adb_usb.ini,然后使用adb kill-serveradb start-server
adb devices
这里安卓手机除了设置文件传输外,还需要打开开发者模式


二、常用命令:
1.查看应用包名
adb shell dumpsys activity | grep MAIN

2.手机启动应用后,打印出当前窗口应用
adb shell dumpsys window windows | grep -E 'mFocusedApp'

3.获取手机的序列号
adb get-serialno

4.安装应用到手机
adb -s device_id(上一步的序列号) install -r apk_path
如:adb -s 034c6aa3094b6c54 install -r ~/Downloads/jokeEssay.apk

5.卸载手机上的应用
adb (-s deviceid) uninstall packagename

6.启动手机应用
adb shell am start -n (-W 看启动时间)packagename/packagename+classname(-n classname,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据

7.观察应用Mem情况
adb shell dumpsys meminfo packagename
Native Heap :本地堆内存占用 (如果程序中大量使用了 JNI 的相关,则需要关注)
Dalvik Heap :虚拟机内存占用 (java 申请的内存、包括webview、bitmap等。测试关注)
注:

JNI是什么?
JNI即Java Native Interface(Java本地接口),是一个协议,主要作用为:实现Java调用c/c++代码(类库),或者C/C++调用Java代码


重点关注上面截图中红框框出来的部分,其中的参数含义:

Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间
Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间
Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间
Native Heap Size 约等于Native Heap Alloc + Native Heap Free
mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。
Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。
Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。
Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。
Dalvik Heap Size 约等于Dalvik HeapAlloc + Dalvik Heap Free

参考链接:https://www.jianshu.com/p/67c4f0dde528
如果Native/Dalvik Heap 信息中的Heap Alloc的值一直增长,则可能出现了内存泄漏。

JVM管理的内存可以总体划分为两部分:Heap Memory和Native Memory。
Heap Memory是供Java应用程序使用的,后者也称为C-Heap,是供JVM自身进程使用的。

按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”

heap空间完全由程序员控制,我们使用的malloc、C++ new和java new所申请的空间都是heap空间, C/C++申请的内存空间在native heap中,而java申请的内存空间则在dalvik heap中。

8.观察CPU情况
adb shell dumpsys cpuinfo | grep packagename

9.获取应用uid pid
PID:adb shell ps | grep packagename | awk 'END {print $2}' #PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID
UID:adb shell cat /proc/$PID/status | grep Uid | awk '{print $2}' #一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理

10.截图
adb shell screencap -p /sdcard/screen.png后者是保存路径和保存名字
推送至电脑:adb pull /sdcard/screen.png推送至电脑当前开启adb的路径

11.查看日志
adb logcat <tag>:[priority]

相关文章

  • [QA]adb笔记

    一、安装步骤1.安装homebrewruby -e "$(curl -fsSL https://raw.githu...

  • [测试开发] ADB(Android Debug Bridge)

    Android学习笔记 ADB命令 常规操作adb root 以 root 权限运行 adbdadb remout...

  • CPU

    出处“百度QA” 获取内存信息方式(adb命令) 使用命令top-m 10 -s cpu(-t 显示进程名称,-s...

  • jena QA笔记

    1. git clonehttps://github.com/zhangtao-seu/Jay_KG.git 2....

  • ADB笔记

    以前对adb概念很模糊,趁端午最后一天,重新整理下了adb.三个问题:1. adb是什么?2. adb干什么?3....

  • Appium学习13-adb常用命令补充

    Appium学习笔记目录 本文包含内容: adb常用命令 1. 查看当前PC端连接有多少设备adb devices...

  • centos安装es环境

    安装jdk rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gc...

  • adb指令笔记

    dumpsys指令 1.adb shell dumpsys power|grep -i wake 查看占用wake...

  • adb 学习笔记

    Android 调试桥 (Android Debug Bridge) 连接方式 1、USB连接 2、WiFi连接 ...

  • PQA

    全称Process Quality Assurance, 即全程质量检测认证。 需求QA 测试QA 运维QA 数据...

网友评论

      本文标题:[QA]adb笔记

      本文链接:https://www.haomeiwen.com/subject/lhfdvqtx.html