adb命令:
adb remount
//这是一个重新mount你的分区的命令让system分区从只读变成可读可写获得了root权限才可运行
adb kill-server adb start-server
adb push xxx
例子: adb push F:/share/Brower.apk /system/app/ //把一个apk push到手机(使用之前需要adb remount)
使用Adb shell command直接送key event給Android
adb shell input keyevent 26 # 按Power键操作数据库表
adb shell settings put secure adb_install_need_confirm 0
读settings.secure表
adb shell settings get secure adb_install_need_confirm
遍历的
adb shell settings list secure
删除用delete
dumpsys的使用
dumpsys是Android提供的系统工具,可以用来查看所有系统服务的信息。
在命令行输入如下命令,就可以罗列出当前所有的系统服务名:
adb shell dumpsys -l
实际解决具体问题时,我们通常只关注一些特定系统服务的输出, 只需要将服务名作为dumpsys命令的参数,就可以只输出特定服务的信息
adb shell dumpsys activity activities----------查看Activity组件信息
adb shell dumpsys activity services-----------查看Service组件信息
adb shell dumpsys activity providers----------产看ContentProvider组件信息
adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息
adb shell dumpsys activity intents-------------查看Intent信息
adb shell dumpsys activity processes----------查看进程信息
adb shell dumpsys meminfo ------------------查看内存使用信息
adb shell dumpsys window | findstr mCurrentFocus -查看当前获取焦点的window
adb shell dumpsys activity service com.android.systemui
dumpsys 查看activity的栈信息
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)
......
看到activity 堆栈的信息:
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
......
截屏命令
当手机连接电脑时我们执行以下命令可以截图。
adb shell /system/bin/screencap -p /sdcard/screenshot.png
录制手机视频命令:
adb shell screenrecord /sdcard/demo.mp4
拷贝出来:adb pull /sdcard/test.mp4 d:/
查看手机内存大小
adb shell dumpsys meminfo
或者
cat proc/meminfo
查看cpu使用情况
输入命令:
adb shell
top -m 10 -s cpu(-m显示最大数量,-s 按指定行排序),如下图所示:
参数含义:
PID : progress identification,应用程序ID
S : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
#THR : 程序当前所用的线程数
VSS : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)
RSS : Resident Set Size实际使用物理内存(包含共享库占用的内存)
PCY : 前台(fg)和后台(bg)进程
UID : User Identification,用户身份ID
Name : 应用程序名称
注意第一列的pid,使用pid值可以查看当前程序的内存使用情况。
查看指定程序内存使用情况:
输入命令:
adb shell dumpsys meminfo packagename or pid //包名或者pid
参数含义:
dalvik : dalvik使用的内存
native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)
other : 除了dalvik和native的内存,包含C\C++非堆内存······
Pss : 该内存指将共享内存按比例分配到使用了共享内存的进程
allocated : 已使用的内存
free : 空闲的内存
private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)
share dirty : 共享,但有不能被换页出去的内存
清除某个应用的数据
adb shell pm clear com.android.systemui //com.android.systemui 替换为对应的包名
清楚数据
adb shell wipe data
查看系统的进程和服务及启动进程
查看进程:adb shell -> cd system/bin -> ps | grep aaaaa
查看服务:adb shell -> ps | grep aaaaa -> service list | grep -E "hello"
如果上述都没有可以手动起动一下进程adb shell -> cd system/bin -> aaaaa &
备注:aaa可以替换为其他
adb 查看wifi状态
adb shell dumpsys wifi 查看wifi信号强度
adb shell cat /sys/class/net/wlan0/address 获取wifi mac地址
adb shell cat /data/misc/wifi/*.conf 获取设备wifi配置信息
scan 启动扫描
adb shell wpa_cli -iwlan0 -g@android:wpa_wlan0 IFNAME=wlan0 scan
scan_results 得到最新的扫描结果
adb shell wpa_cli -iwlan0 -g@android:wpa_wlan0 IFNAME=wlan0 scan_results
更多:http://blog.csdn.net/u010842019/article/details/52692733
安装卸载apk
adb install xxx 同上:安装一个apk
adb install –r xxx 重新安装
Android Failure [INSTALL_FAILED_VERSION_DOWNGRADE]解决方案
在安装APK过程中,因为VersionName(版本)过程中,因为现安装的版本低于你机器版本,所以会出现Android Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
解决方案:adb install -r -dC:\Users\YJ.Huang\Desktop\EEntry.apk(包名)
重启手机
adb reboot recovery 进入T卡升级的模式
adb reboot bootloader 重启到bootloader界面
获取和设置相关属性
adb shell getprop 获取设备全部的参数信息,如手机名称和品牌等.
如果需要获取单个属性,后面可以加上属性的名称,比如adb shell getprop "sys.settings_global_version"
adb shell setprop 设置设备的参数信息
adb logcat 抓log
查看所有的log,如果要过滤aeon的log: adb logcat -s “aeon”
Ctrl +c停止log
通话无声时抓取Audio相关register
抓取方法:adb shell cat proc/audio
抓取通话异常时的Vmlog
开启方法,进入工模,->audio ->speech logger, 选择enabe speech log即可
另抓取的register值请帮忙保存成text 文档 或直接用命令adb shell cat proc/audio >D: speechfail.txt
正常的也帮忙抓取一份adb shell cat proc/audio >D: speechok.txt
控制logcat日志格式
日志消息在标记和优先级之外还有很多元数据字段,这些字段可以通过修改输出格式来控制输出结果, -v
选项加上下面列出的内容可以控制输出字段:
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
可以使用 -v
启动 logcat
来控制日志格式:
[adb] logcat [-v <format>]
例如使用 thread
输出格式:
adb logcat -v thread
注意只能在 -v
选项中指定一种格式。
比如:adb logcat –v time >log.txt
用adb logcat main radio 等log
实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志
状态信息的有:adb shell dmesg,adb shell dumpstate,adb shell dumpsys,adb bugreport
讲解一下各自作用:
通过DDMS抓的其实跟用dos批处理抓的一样都是logcat的日志文件,ddms抓的通常是main缓存中的,就是应用程序打印的日志文件。不过ddms好处在于能够实时看到带有颜色的,如果是用dos批处理只能重定向到文件,到抓完之后才能够看到,不是实时的。
adb logcat -b main -v time>app.log 打印应用程序的log
adb logcat -b radio -v time> radio.log 打印射频相关的log,SIM STK也会在里面,modem相关的ATcommand等,当然跟QXDM差的很远了。
adb logcat -b events -v time 打印系统事件的日志,比如触屏事件。。。
密钥相关
Android 生成签名的密钥
sh development/tools/make_key releasekey '/C=CN/ST=shenzheng/L=shenzheng/O=Doov/OU=Doov/CN=Doov/emailAddress=zhangle@doov.com.cn'
Enter password for 'releasekey' (blank for none; password will be visible): Doov
sh development/tools/make_key platform '/C=CN/ST=shenzheng/L=shenzheng/O=Doov/OU=Doov/CN=Doov/emailAddress=zhangle@doov.com.cn'
sh development/tools/make_key media '/C=CN/ST=shenzheng/L=shenzheng/O=Doov/OU=Doov/CN=Doov/emailAddress=zhangle@doov.com.cn'
sh development/tools/make_key shared '/C=CN/ST=shenzheng/L=shenzheng/O=Doov/OU=Doov/CN=Doov/emailAddress=zhangle@doov.com.cn'
pub公钥 转 pem
openssl rsa -in doov_alipay -pubout -out doov_alipay.pem
其中doov_alipay 是pub格式的公钥名称
参考密钥信息
keytool -list -v -keystore debug.jks