zoukankan      html  css  js  c++  java
  • Android命令行工具学习总结

    15.setting命令

    setting命令可以很方便的更改系统设置中的参数(如修改系统默认输入法)

    安卓Settings模块浅析:https://www.jianshu.com/p/ed8508fe4289

    adb shell settings 控制安卓系统设置:https://blog.csdn.net/xingchenxuanfeng/article/details/52023048   <已看>

    (0)# settings get system screen_off_timeout 获取屏幕的休眠时间

    (1)# settings put system screen_off_timeout 999999999  设置屏幕的睡眠时间,也是用来设置系统的睡眠时间(下次断电上电后还是有效的)

    (2)# settings get secure default_input_method  获得系统默认输入法

    (3)# settings get system screen_brightness_mode          获取屏幕亮度模式

    (4)# settings get system screen_brightness      获取屏幕亮度

    (5)# settings put system screen_brightness 150 设置屏幕亮度为150

    (6)# settings get global auto_time             获取日期时间选项中通过网络获取时间的状态

    (7)# settings put global auto_time 0

    (8)# settings get global wifi_on   获取系统wifi是否打开

    (9) # settings put global wifi_on 0       关闭wifi

    (10)# settings get global airlpane_mode_on 获取系统是否处于飞行模式

    (11)# settings get secure android_id   获取android_id

    注意这里面的system和global的区别 ?

    16.TODO:怎样让Android一启动就执行一个脚本?

    17.TODO:查frameworks/base/packages/SettingsProvider/res/values/defaults.xml这个文件作用?

    18.查一运行adb,Ubuntu就非常卡 ?

    19. pm命令

    # pm list packages       列出应用列表,eg: package:android.car.usb.handler,加-s列出系统应用,加-3列出第三方应用,加[name]列出与name相关的应用(等效grep)。

    # pm clear <packagename> 相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。

     

    21.am命令

    1.am主要用于与应用程序交互,用法:am <command> 常用的<command>如下:

    # start [options] <INTENT>                 启动 <INTENT> 指定的 Activity

    # startservice [options] <INTENT>      启动 <INTENT> 指定的 Service

    # broadcast [options] <INTENT>        发送 <INTENT> 指定的广播

    # force-stop <packagename>                   停止 <packagename> 相关的进程, <INTENT> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应。

    # am start [options] <INTENT>           调起 Activity,eg: am start -n com.tencent.mm/.ui.LauncherUI

    # am startservice [options] <INTENT> 调起service,eg: am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService

    # am broadcast [options] <INTENT>   发送广播,eg: am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver 表示向 org.mazhuang.boottimemeasure/.BootCompletedReceiver 发送一个BOOT_COMPLETED广播,这类用法在测试的时候很实用,比如某个广播的场景很难制造,可以考虑通过这种方式来发送广播。

    # am force-stop <packagename>              强制停止某一个应用

    参考:Am命令用法

    22.input命令来模拟按键输入

    1.eg输入触摸: # input touchscreen tap 50 250  # input touchscreen tap 1000 250 在屏幕上可以看到和触摸了屏幕一样的效果。

    2.input keyevent <keycode>              3表示home键,4表示返回键

    3.input keyevent 26             电源键,关闭电源,此时车机就关机了。

    4.input keyevent 82             菜单键

    5.input text 12345678    例如屏幕上显示要输入wifi密码,此时这条指令就会把密码输出到屏幕中显示密码的位置。

    23.adb相关命令

    adb学习笔记 

    24.logcat命令

    Android中的logcat和日志打印

    25.getprop获取系统属性

    # getprop ro.product.model 查看设备信息 eg: Nexus 5

    # getprop ro.build.version.release      获取Android系统的版本,如8.1.0

    26.dumpsys 查看系统的状态  TODO:查它的具体功能 ?

    1.# dumpsys battery     查看电池状态

      level: 100    //当前电量

      scale: 100   //最大电量

    2.# dumpsys window displays    查看显示屏参数。 其打印信息中mDisplayId为显示屏编号,init是初始分辨率和屏幕密度,若app的高度比init里的要小,表示屏幕底部有虚拟按键。

    3.类似命令还有:dumpcache  dumpstate  dumpsys      TODO:查

    27.wm命令

    1.# wm size    查看屏幕分辨率 eg: wm size打印Physical size: 2608x720,可以看出双屏使用同一framebuffer.

    2.# wm density   查看屏幕密度

    28.查看各个网口的MAC地址

    # cat /sys/class/net/wlan0/address

    # cat /sys/class/net/eth0/address

    29.CPU信息

    # cat /proc/cpuinfo

    29.查看更多硬件属性配置信息

    # cat /system/build.prop      它里面的每一项可以通过getprop命令单独查看

    30.screencap命令

    # screencap -p /sdcard/sc.png    屏幕截图,目前测试发现若是有2个屏,截的图只是一个屏的。用-d指定另一个屏的id也截取不到。

    31.screenrecord命令

    # screenrecord /sdcard/filename.mp4 屏幕录制,停止时按 Ctrl-C,默认录制时间和最长录制时间都是 180 秒

    32.wifi的配置文件目录

    # ls /data/misc/wifi/

    33.data命令设置系统时间

    # date -s 20160823.131500

    34.monkey命令

    # monkey -p <packagename> -v 500  使用monkey进行压力测试,向 <packagename> 指定的应用程序发送 500 个伪随机事件。Monkey 的详细用法参考 官方文档:https://developer.android.com/studio/test/monkey.html

    35.重启到recovery模式

    # reboot recovery  重启到recovery模式

    # reboot  从recovery重启到Android

    # reboot bootloader 重启到 Fastboot 模式

    36.getevent可以用来监听系统中所有的输入设备产生的事件.

    37.内核中进程状态的定义

    static const char * const task_state_array[] = {
    
        /* states in TASK_REPORT: */
        "R (running)",        /* 0x00 */
        "S (sleeping)",        /* 0x01 */
        "D (disk sleep)",    /* 0x02 */
        "T (stopped)",        /* 0x04 */
        "t (tracing stop)",    /* 0x08 */
        "X (dead)",        /* 0x10 */
        "Z (zombie)",        /* 0x20 */
        "P (parked)",        /* 0x40 */
    
        /* states beyond TASK_REPORT: */
        "I (idle)",        /* 0x80 */
    };

    37. ps 命令

    # ps --help

    用法:ps [-AadefLlnwZ] [-gG GROUP,] [ -k FIELD,] [ -o FIELD,] [ -p PID,] [-t TTY,] [-uU USER,]

    作用:列出进程信息。

    eg:多个选项一起使用:# ps -o SCHED, -t, -g system, -o TCNT,

    (1)要显示的进程(选择可能是以逗号分隔的列表):

    -A 所有进程

    -a 具有非会话领导者的终端的进程

    -d 所有不是会话领导者的进程

    -e 与-A相同

    -g 属于GROUPs

    -G 属于真正的GROUPs(在sgid之前)

    -p PIDs(--pid)

    -P 父PID(--ppid)

    -s 在会话ID中

    -t 附加到选定的TTY

    -T 显示主题

    -u 由USERs拥有

    -U 由真实用户拥有(在suid之前)

    eg:

    # ps -g system     查看group为system的所有进程,其它可选项:root wifi radio audioserver logd bluetooth media vehicle_network shell cameraserver drm keystore mediaex mediacodec tombstoned bluetooth u0_aXX webview_zygote

    # ps -P 1 列出init进程创建的伺服进程

    # ps -p 2 然后再# ps -P 2 可以列出由kthreadd创建的伺服进程

    # ps -t ttyMSM0  列出占用串口ttyMSM0的进程。结合cat /proc/cmdline中的console=ttyMSM0可以知道占用控制台的是哪些进程。

    (2)对输出做修改:

    -k 按+增加或-降低顺序(--sort)对FIELD进行排序

    -M 测量字段宽度(根据需要扩展)

    -n 显示数字USER和GROUP

    -w 宽输出(不截断字段)

    eg:

    # ps -n 1       列出init进程的使用个数

    (3)要显示哪些域(默认 = -o PID,TTY,TIME,CMD)

    -f 完整列表(-o USER:12=UID,PID,PPID,C,STIME,TTY,TIME,ARGS=CMD)

    -l 长列表(-o F,S,UID,PID,PPID,C,PRI,NI,ADDR,SZ,WCHAN,TTY,TIME,CMD)

    -o 输出FIELD而不是默认值,每个都有可选的:size和= title

    -O 将FIELDS添加到默认值

    -Z 包括LABEL

    (4)输出的域解释

    ARGS  减去初始化路径的commandline

    CMD  Command (thread) name (stat[2])

    CMDLINE  Command line (argv[])         

    COMM  Command filename (/proc/$PID/exe)

    COMMAND  Command file (/proc/$PID/exe) 

    NAME  Process name (argv[0] of $PID)

    eg:

    # ps -A -o CMDLINE   只想要所有进程的cmdline

    (5)使用-o输出的进程的属性

    ADDR 指令指针

    BIT 这个过程是32位还是64位 eg: # ps -A -o BIT 发现的确有32bit的

    CPU 运行哪个处理器     eg: # ps -A -o CPU 查看所有进程都运行在哪个CPU下

    ETIME 自PID启动以来经过的时间   eg:# ps -g bluetooth -o ETIME     看bluetooth服务启动时长,以分:秒表示

    F 标志(1 = FORKNOEXEC 4 = SUPERPRIV) eg: # ps -g bluetooth -o F

    GID 查看group ID    eg: # ps -g bluetooth -o GID

    GROUP 组名称  eg: # ps -g bluetooth -o GROUP

    LABEL 安全标签       eg: # ps -g bluetooth -o LABEL

    MAJFL 主要页面错误 eg: # ps -g bluetooth -o MAJFL

    MINFL 次要页面错误 eg:# ps -g bluetooth -o MINFL

    NI nice值(越低越快) eg: # ps -g bluetooth -o NI       

    PCPU 使用的CPU时间百分比 eg: # ps -g bluetooth -o PCPU

    PCY Android调度策略 eg:# ps -g bluetooth -o PCY

    PGID 流程组ID  eg: # ps -g bluetooth -o PGID

    PID 进程ID eg:# ps -g bluetooth -o PID

    PPID 父进程ID 

    PRI 优先级(更高更快)      eg: # ps -g bluetooth -o PRI

    PSR 处理器最后执行了  eg: # ps -g bluetooth -o PSR

    RGID Real(在sgid之前)组ID   eg:# ps -g bluetooth -o RGID

    RGROUP Real(在sgid之前)组名

    RSS 常驻集大小(正在使用的页面)      eg: # ps -g bluetooth -o RSS

    RTPRIO 实时优先级 eg:# ps -g bluetooth -o RTPRIO

    RUID Real(在suid之前)用户ID

    RUSER Real(在suid之前)用户名  eg: # ps -g bluetooth -o RUSER

    S 流程状态:R(运行) S(休眠) D(设备I/O) T(停止) t(跟踪) Z(僵尸) X(deader) x(死) K(wakekill) W(醒来)

    SCHED 调度策略(0 = other,1 = fifo,2 = rr,3 = batch,4 = iso,5 =空闲)

    STAT 过程状态(S)加:

            <高优先级 N低优先级 L锁定存储器

            会话负责人+前台l多线程

    STIME 以hh开始的过程开始时间:mm(size:19表示yyyy-mm-dd hh:mm:ss)

    SZ 内存大小(完全换出进程需要4k页)      eg: # ps -g bluetooth -o SZ

    TCNT 线程数     eg: # ps -g bluetooth -o TCNT

    TID 线程ID eg: # ps -g bluetooth -o TID

    TIME CPU的时间消耗

    TTY 控制终端   

    UID 用户ID

    USER 用户名

    VSZ 虚拟内存大小(1k单位)   eg:# ps -g bluetooth -o VSZ

    %VSZ VSZ占物理内存的百分比   eg:# ps -o %VSZ

    WCHAN 我们在内核中等待什么 eg: # ps -g bluetooth -o WCHAN

  • 相关阅读:
    SPComm的一点小诀窍 spcomm的问题导致数据丢失 0x11与0x13错误
    关于DELPHI数组,指针,字符串转换的例子!(转)
    SQL常用语法大全
    SQL触发器实例讲解
    Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)
    delphi 生成条形码(fastreport 实现)
    delphi 判断字符串有中文
    delphi const
    delphi as
    delphi 字符串常识
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10491828.html
Copyright © 2011-2022 走看看