CFSection9's Studio.

Android常用命令

字数统计: 648阅读时长: 2 min
2018/11/25 Share

在frameworks/base/cmds下面有android自己的cmd,在玩android系统的时候经常会用到的cmd如下:

logcat

1
2
3
4
5
6
7
8
9
10
//显示时间
logcat -v threadtime
//查看warning以上的log
logcat *:w
//输出所有Info级别的信息
logcat -s "*:I"
//只查看dalvikvm的log
logcat -s dalvikvm
//只不看dalvikvm的log
logcat dalvikvm:s

am

1
2
3
4
//启动的一个acitivity,可以从每个应用的AndroidManifest.xml的文件中找到信息
am start -n <package name>/<package name>.<activity>
//发送一个广播,这里-a表示动作,就是你在Androidmainfest里面定义的
am broadcast -a 广播名

debuggerd

debuggerd是android的一个daemon进程,负责在进程异常出错时,将进程的运行时信息dump出来供分析。debuggerd生成的coredump数据是以文本形式呈现,被保存在/data/tombstone/目录下(名字取的也很形象,tombstone是墓碑的意思),共可保存10个文件,当超过10个时,会覆盖重写最早生成的文件。从4.2版本开始,debuggerd同时也是一个实用工具:可以在不中断进程执行的情况下打印当前进程的native堆栈。
这可以协助我们分析进程执行行为,但最最有用的地方是:它可以非常简单的定位到native进程中锁死或错误逻辑引起的死循环的代码位置。

1
debuggerd -b <pid>

pm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//示所有已安装apk的安装包
pm list packages
//显示所有已安装apk的安装包以及对于apk的位置:
pm list packages -f
//关闭某个APK:
pm disable 包名
//安装某个apk包:
pm install apk名称
pm install -rf APK绝对路径
• -l :锁定应用程序;
• -r:重新安装应用,且保留应用数据;
• -i:指定安装包的包名;
• -s:安装到sd卡;
• -f:安装到系统内置存储中(默认安装位置);
• -g:授予应用程序清单中列出的所有权限(只有6.0系统可用);
//卸载apk:
pm uninstall 包名

input

1
2
3
4
//输入按键
input keyevent POWER
//输入文本
input text "helloworld"

adb

adb 连不上, 或者unauthorized
1.getprop|grep adbd 查看adbd是否开启(这部分代码路径在 system/core/adb/adb_main.cpp)

  • 如果没有开启可以用如下命令重启adbd
    1
    2
    adb kill-server
    adb start-server

2.检查setting中usb debug是否打开?

  • 如果没有打开, 则进入setting –> About –> 连续按 build项, 进入开发者模式,进入developer options –> Debugging –> USB debugging –> ON

3.断开网线, ping 同样的IP, 看是否IP被占?

  • 如果能ping通, 则IP被占, 需在UBoot console设置MAC地址

4./system/build.prop ro.secure设为0, 重启

CATALOG
  1. 1. logcat
  2. 2. am
  3. 3. debuggerd
  4. 4. pm
  5. 5. input
  6. 6. adb