Freeing init memory
那一行前面的时间就是。adb logcat | grep -i myapp #忽略大小写。
原因如下:adb logcat findstr 有时候会出现 写入错误,需要设置一下语言编码CHCP 65001 ,设置为UTF-8编
命令行中,有个命令是chcp,这个命令是用来显示当前活动代码页编号的,
ANSI的编码环境的代号是936
utf-8编码的65001
执行:CHCP 65001就设置成utf-8编码的了
一、把日志输出到手机指定目录
其命令为:adb logcat -f / sdcard/zjdata.bredbaby/log/1.txt
二,很多没用的一起加载,如果只想抓取被测app的日志,就需要对包名进行过滤,使用find过滤包名
adb logcat find | "vchat.A"
常用命令
1、查看adb版本
adb version
2、查询pc链接的所有android 设备
adb devices
3、装包
如果在电脑D盘下面有个a.apk文件,只需要一行命令就安装到手机上:
adb install d:/a.apk
如果已经安装了这个程序,可以通过以下命令覆盖安装:adb install -r d:/a.apk
保留数据和缓存文件,重新安装 apk adb install -r a.apk
安装包在android设备中
adb shell pm install apk在移动端的路径
4、卸载包
adb uninstall 包名
卸载软件但是保留配置和缓存文件:
adb uninstall -k 包名
如果机器上有多个模拟器或真机,需要使用-s命令行参数指定具体的模拟器或真机。例如,下面的命令分别在模拟器和真机上安装、重新安装和卸载应用程序。
在emulator-5554模拟器上安装ebook.apk
adb -s emulator-5554 install ebook.apk
在真机上安装ebook.apk
adb -s HT9BYL904399 install ebook.apk
在emulator-5554模拟器上重新安装ebook.apk
adb -s emulator-5554 install -r ebook.apk
在真机上重新安装ebook.apk
adb -s HT9BYL904399 install -r ebook.apk
在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录)
adb -s emulator-5554 uninstall ebook包名
在真机上卸载ebook.apk(保留数据和缓冲目录)
adb -s HT9BYL904399 uninstall -k ebook包名
5、包管理,如何知道一个app包名呢
包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。
例如我们可以自己编译生成一个App也叫“微信”,但是我们的App的包名不能为com.tencent.mm
(微信的包名为这个),如果指定的包名和微信一致,那么手机上只允许安装这两个App中的其中一个。说到这很多人就会有疑问,如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?Android中为了防止这样的情况,还做了一个叫签名的东西,微信的签名一般我们是没有的,所以就可以通过签名来标识出这款App到底是谁的了。
1、看源代码。当有源代码的时候,可以到工程目录下的 “AndroidManifest.xml”文件下查看package这一项。
2、adb命令查看列出手机装的所有 app 的包名:
adb shell pm list packages
3.列出系统应用的所有包名:
adb shell pm list packages -s
4.列出除了系统应用的第三方应用包名:
adb shell pm list packages -3
5.推测一个包中可能带有的关键字:
adb shell dumpsys activity | findstr mFocusedActivity
6.清除应用数据与缓存
adb shell pm clear 应用包名
6、文件相关
1、接收电脑文件
语法:adb push local remote
案例:adb push d:/a.txt /sdcard/
把电脑 D 盘下的 a.txt 文件推送到手机 sdcard 目录下
2、上传文件到电脑
语法:adb pull remote local
案例:adb pull /sdcard/a.txt d:/ 上传位于/sdcard/目录下的 a.txt 文件到电脑的 D 盘根目录下
7、截屏、录屏
1.截屏
adb shell screencap /sdcard/a.png
adb shell /system/bin/screencap -p /sdcard/a.png
2.使用adb进行屏幕录像
adb shell screenrecord /sdcard/a.mp4
通过ctrl+c停止录制,你可以在sdcard目录下查看。妈妈再也不担心我到处找录制视频的软件了。
8、shell
进入shell adb shell
退出shell
exit
9、手机信息收集
获取序列号
adb get-serialno
获取 MAC 地址
adb shell cat /sys/class/net/wlan0/address
查看设备型号
adb shell getprop ro.product.model
查看 Android 系统版本
adb shell getprop ro.build.version.release
查看屏幕分辨率
adb shell wm size
查看屏幕密度
adb shell wm density
查看permissions adb shell pm list permissions
查看系统的危险权限dangerous permissions adb shell pm list permissions -d -g
10、adb服务器杀死和启动
adb kill-server
adb start-server
场景:比如希望移动adb文件夹,或者adb命令得不到想要的内容时
11、与进程相关:
列出当前进程
adb shell ps | findstr 包名
杀死某个包的进程
adb shell am force-stop 包名
12、与性能相关的一些内容
获取内存:
adb shell dumpsys meminfo 包名
获取cpu:
adb shell dumpsys cpuinfo | findstr 包名
adb shell top -n 1 | findstr 包名
获取流畅度相关:
adb shell dumpsys gfxinfo 包名
13、app的启动停止
如果想在模拟器或真机上运行已安装的应用程序,除了直接在模拟器或真机上操作外,还可以使用如下的命令直接运行程序。
activity的获取方式见14条。
在emulator-5554模拟器上运行ebook.apk
adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
在真机上运行ebook.apk
adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
其中Main是ebook.apk的主Activity。相当于Windows应用程序的主窗体或Web应用程序的主页面。am是shell命令。
14、与Activity操作等相关
1.查看当前显示的activity adb shell dumpsys activity | findstr "mFocusedActivity"
结果: mFocusedActivity: ActivityRecord{93a4f9 u0 com.youdao.note/.activity2.MainActivity t36}
注意:我们只需要这一部分:com.youdao.note/.activity2.MainActivity即包名+activity
2.找到当前手机内的top Activity:
adb shell dumpsys activity top | findstr ACTIVITY
3.启动某一个Activity: adb shell am start activity路径
adb shell am start com.youdao.note/.activity2.MainActivity
15、查看8080端口是哪个应用占用
netstat -ano|findstr "8080"