安卓 adb常用命令操作及查看log的方法

一.adb的常用命令

1.adb下直接拉起当前应用

 eg:  am start -n com.android.settings/.FallbackHome

2.adb remount //将 /system 部分置于可写入的模式,默认情况下 /system’部分是只读模式的, 这个命令只适用于已被 root 的设备

3.adb shell  //进入 android 设备的shell后,eng版本可进入/system,/data 下进行相关操作

 1).adb shell cat /proc/cpuinfo  //查看cpu信息

 2).adb shell cat /sys/class/net/wlan0/address    //获取 wifi mac 地址

 3).adb shell cat /system/build.prop    //获取设备编译属性(手机属性和手机配置信息)

 4).adb shell cat /data/misc/wifi/*.conf   //获取 wifi 配置信息

 5).adb shell am start -W 包名/类名  //可以冷启动或者热启动应用

 6).输入adb shell进入设备后,可以查看sharepreference存储位置(eng版本)

android7.0所在目录:

/data/user_de/0/pkgname/databases/

/data/user_de/0/pkgname/shared_prefs/

android 6.0所在目录:

    /data/data/pkgname/shared_prefs/  

7).输入adb shell进入设备后,可进入/data/data/packagename/databases进行数据库的操作(eng版本),如下:

  sqlite>.help  //帮助查看命令

  sqlite> .exit //命令退出sqlite,返回到#提示符

  sqlite>.tables //查看所有表

  sqlite> select * from table //查询来自表table的所有数据

sqlite> update table set value=“1” where _id=1 //修改表table的数据

sqlite> delete from table where name="" // 删除table中name=""的数据

sqlite> select * from table where name like "%***%" //查询table name中含有字符***的记录

8). adb shell top | grep app_name //查看app_name的pid进程

9). adb shell kill PIDNumber //杀死后台进程

10).adb shell ps //查看当前终端中的进程信息

11).adb shell top -n 1 -d 0.5 | grep proc_ id //查看进程占用cpu的情况

4.adb install .apk //安装.apk,有时在install后面会添加 -r和-d的命令,分别为强制和降级版本安装apk(eng版本)

5.adb push .apk dir //将.apk 放置到dir目录下,如之前存在则替换(eng版本)

6.adb pull /.apk dir //将/.apk 拷贝出来到dir目录下

7.adb logcat | grep "" //logcat终端日志中过滤出只含有""的日志信息

adb logcat | grep -i “**” //-i 不区分大小写

8.adb shell am broadcast -a action //模拟action广播

9.adb logcat | grep “AndroidRuntime” //过滤运行错误

二.logcat日志命令

1.EventLog:终端命令

1).adb logcat -b events

2).adb logcat -b events -d

3).logcat -b events -v threadtime

4).adb logcat -b main

5).adb logcat -b radio

6).adb logcat -b system

2.adb logcat -b events | grep am_ //过滤activity相关日志

三.logcat日志分析(如果event中出现anr,搜索“am_anr”关键字,如果是logcat log,搜索关键字“ANR”,接着需要看/data/anr下traces.txt文件的栈信息再进行分析)

1.查看工具:一般建议用notepad++或者editplus查看比较方便

2.ActivityManager日志相关分析

1).TagName分析

am_low_memory //位于AMS.killAllBackgroundProcesses或者AMS.appDiedLocked,记录当前Lru进程队列长度。
 am_pss //位于AMS.recordPssSampleLocked()
 am_meminfo //位于AMS.dumpApplicationMemoryUsage
 am_proc_start //位于AMS.startProcessLocked,启动进程
 am_proc_bound //位于AMS.attachApplicationLocked
 am_kill //位于ProcessRecord.kill,杀掉进程
 am_anr //位于AMS.appNotResponding
 am_crash //位于AMS.handleApplicationCrashInner
 am_wtf /位于AMS.handleApplicationWtf
 am_activity_launch_time //位于ActivityRecord.reportLaunchTimeLocked(),后面两个参数分别是thisTime和 totalTime.
 am_activity_fully_drawn_time //位于ActivityRecord.reportFullyDrawnLocked, 后面两个参数分别是thisTime和 totalTime
 am_broadcast_discard_filter //位于BroadcastQueue.logBroadcastReceiverDiscardLocked
 am_broadcast_discard_app //位于BroadcastQueue.logBroadcastReceiverDiscardLocked

2).Activity生命周期相关分析

am_on_resume_called //位于AT.performResumeActivity
am_on_paused_called //位于AT.performPauseActivity, performDestroyActivity
am_resume_activity //位于AS.resumeTopActivityInnerLocked
am_pause_activity //位于AS.startPausingLocked
am_finish_activity //位于AS.finishActivityLocked, removeHistoryRecordsForAppLocked
am_destroy_activity //位于AS.destroyActivityLocked
am_focused_activity //位于AMS.setFocusedActivityLocked, clearFocusedActivity
am_restart_activity //位于ASS.realStartActivityLocked
am_create_activity //位于ASS.startActivityUncheckedLocked
am_new_intent //位于ASS.startActivityUncheckedLocked
am_task_to_front //位于AS.moveTaskToFrontLocked

3).Window相关分析

wm_task_moved //位于TaskStack.positionTask()
TaskId, toTop ? 1 : 0, position;
206,1,3, //是指把TaskId=206的移动到栈顶(即该栈的长度为4)
am_home_stack_moved //位于ASS.moveHomeStack
CurrentUser, toFront ? 1:0 , homStackId, FocusedStackId
0,1,0,0, //是指userId=0, home栈顶的StackId=0, 当前focusedStackId=0,

3.power分析

power_sleep_requested //位于PMS.goToSleepNoUpdateLocked
power_screen_state //位于Notifer.handleEarlyInteractiveChange, handleLateInteractiveChange

battery_level: [22,3660,34.8] //剩余电量22%, 电池电压3.66v, 电池温度34.8℃
power_screen_state: [0,3,0,0] // 灭屏状态(0), 屏幕超时(3). 当然还有其他设备管理策略(1),其他理由都为用户行为(2)
power_screen_state: [1,0,0,0] // 亮屏状态(1)

4.Activities分析
 1).看焦点activity, 关键字am_focused_activity
2).进程启动历史, 关键字Start proc
3).确认设备是否抖动, 关键字am_proc_died和am_proc_start,检查是否在短时间内出现了大量的这样的log

欢迎各位大佬小白加入软件测试提升群:337237612

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值