zoukankan      html  css  js  c++  java
  • Android 的独特shell命令

        Android本来就是一个linux操作系统,所以大部分都是linux的命令,如mkdir,ls,netstat,mount,ps 等,这里就不具体介绍了,

    主要介绍几个Android特有的。
    getprop 返回Android的所有系统属性。
    getevent 打印所有的键盘和触摸事件
    logcat 输出日志
    printenv 系统环境变量
    am 运行start/broadcast/instrument(instrument可以运行自动化测试代码,其它的还没有试过)
    # Android模拟器启动命令模式
    在android-sdk-windows-1.1 ools执行emulator以执行模拟器
    加上-skin参数,指定显示模式HVGA-L,即可改为横向
    emulator - skin HVGA-L (480*320,水平显示)
    emulator - skin HVGA-L (320*480,垂直显示,模拟器预设模式)
    emulator - skin HVGA-L (320*240,水平显示)
    emulator - skin HVGA-L (240*320,垂直显示)
    # 使用mksdcard指令模拟1GB的记忆卡
    mksdcard 1024M sacard.img
    # 模拟插入sd卡的模拟器
    emulator - sdcard sdcard.img
    # 使用 adb+push 上传文件SD记忆卡
    adb push 001.jpg /sdcard (复制文件到/sdcard目录下)
    adb push pictures /sdcard
    adb push mp3 /sdcard
    adb shell (Android 模拟器启动命令模式)
    #cd /sdcard (进入 /sdcard 目录)
    #ls (查看 SD 记忆卡中的档案)
    # 使用 adb+pull 从sdcard卡下载文件
    adb pull /sdcard/001.jpg . (下载 /sdcard 目录下的档案)
    adb pull /sdcard/pictures . (下载 sdcard 目录下的 pictures 目录)
    # 删除 SD 卡里面的档案
    adb shell
    #cd /sdcard
    #rm 001.jpg (删除 SD 记忆卡里的档案)
    #rm -r * (删除 SD 记忆卡里所有档案与目录)
    # Android仿真器影片播放方法
    mksdcard 4096M video.img (制作一个图像文件的 SD 记忆卡)
    adb push video.avi /sdcard (从计算机复制图像文件到 SD 卡中)
    emulator -sdcard video.img (启动模拟器并载入SD卡)
    adb install iiivpa.apk (安装Meridian Video Player)
    接下来就可以用装上去的player播放.mp4、3gp与.wmv三种文件格式
           # 安装 APK 应用程序
    adb install filename.apk (安装filename.apk)
    adb install -r filename.apk (保留已设定数据,重新安装filename.apk)
    adb -s emulator-5554 install filename.apk (指定安装 APK 套件在 5554 的 Android 仿真器中)
    # 移除 APK 应用程序
    adb uninstall package
    adb uninstall -k package (移除程序时,保留数据)
    此package名称不是安装APK套装时的文件名或显示在仿真器中的应用程序名称
    可以先到/data/data或data/app目录下,查询想移除的package名称
    adb shell
    ls /data/data 或 /data/app (查询package名称)
    exit
    adb uninstall package (移除查询到的 Package)
    $adb devices (显示目前有多少个仿真器正在执行)
    $adb -s (指定模拟器来操作操作)
    adb -s emulator-5554 install email.apk
    $adb install apkfile (安装 APK 应用程序)

    adb install email.apk

           $adb uninstall package (移除 APK 应用程序)
    adb uninstall com.android.email
    $adb shell (进入android shell命令模式)
    $ls
    $dmesg (查看 Android Linux Kernel 运行信息)
    ls - 显示文件目录
    cd - 进入目录
    rm - 删除文件
    mv - 移动文件
    mkdir - 产生目录
    rmdir - 删除目录
    $adb push (复制文件到 SD 卡)
    adb push mp3 /sdcard
    $adb pull . (从Android 系统下载文件)
    adb pull /data/app/com.android.email
    $adb logcat (监控模拟器运作记录,以Ctrl + c离开监控模式)
    $adb bugreport (产生adb出错报告)
    $adb get-state (获得adb模拟器工作状态)
    $adb start-server (启动adb服务器)
    $adb kill-server (关掉adb服务器)
    $adb forward tcp:6100 tcp:7100 (更改模拟器通讯网路)
    $adb shell ps -x (显示android模拟器上所有在执行的进程)
    $adb version (显示 adb 版本)
    $adb help (显示 adb 指令参数)

    5、搜索模拟器/设备的实例:
       取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
    adb devices
    6、查看bug报告:
    adb bugreport
    7、记录无线通讯日志:
    一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
    adb shell
    logcat -b radio
    8、获取设备的ID和序列号:
    adb get-product
    adb get-serialno
    9、访问数据库SQLite3
    adb shell
    sqlite3
    # Emulator 命令行启动参数
    emulator -timezone Asia/Taipei (指定时区)
    emulator -no-boo-anim (省略开机小机器人启动画面)
    emulator -scale auto (调整模拟器视窗大小)
    emulator - scale factor (factor: 0.1-3.0)
    emulator -dpi-device 300 (更改仿真器的分辨率,default为 165dpi)
    emulator -skin (更改模拟器显示模式)
    emulator -help-keys (显示键盘快速说明)
    emulator -shell (相当于adb shell 功能)
    emulator -data data.img (使 /data 目录使用 data.img 的文件空间)
    emulator -sdcard sdcard.img (使 /sdcard 目录使用 sdcard.img 的文档空间)
    emulator -cache cache.img (浏览器暂存空间)
    emulator -wipe-data (使模拟器恢复到原始设置)
    emulator -help (显示 emulator 指令参数)
    Using SQLite from Shell in Android
    命令模式下
    #ls 查看即可


    其他:

    1. Android支持的linux command不多,在/system/bin下面可以找到,其中大部分都是Android的工具,只有一小部分是linux原有的命令

    2. 一些常用的Android命令(这里只总结Android中特有的,其他的linux命令资料就很多了)

    a)getprop/watchprops

    getprop列出系统的属性,前面十名字,后面是值
    # getprop
    getprop
    [ro.secure]: [0]
    [ro.allow.mock.location]: [1]
    [ro.debuggable]: [1]
    [persist.service.adb.enable]: [1]
    [ro.kernel.qemu]: [1]
    [ro.kernel.console]: [ttyS0]
    [ro.kernel.android.checkjni]: [1]
    [ro.kernel.android.qemud]: [ttyS1]
    [ro.kernel.android.ndns]: [1]
    [ro.factorytest]: [0]
    [ro.serialno]: []

    watchprosp动态监视这些属性的变化,比如我修改系统的语言为中文,就会打印出:
    # watchprops
    watchprops
    1269420653 persist.sys.language = 'zh'
    1269420653 persist.sys.language = 'CN'

    b) wipe <system|data|all>
    wipe表示清除模拟器或者真机上的数据,比如你的模拟器用了很久,装了很多软件就可以用这个来清除
    system表示清除 /system下的数据
    data表述清除 /data 下的数据

    c) am
    usage: am [subcommand] [options]

      start an Activity: am start [-D] <INTENT>
      -D: enable debugging

      send a broadcast Intent: am broadcast <INTENT>

      start an Instrumentation: am instrument [flags] <COMPONENT>
      -r: print raw results (otherwise decode REPORT_KEY_STREAMRESULT)
      -e <NAME> <VALUE>: set argument <NAME> to <VALUE>
      -p <FILE>: write profiling data to <FILE>
      -w: wait for instrumentation to finish before returning

      start profiling: am profile <PROCESS> start <FILE>
      stop profiling: am profile <PROCESS> stop

      <INTENT> specifications include these flags:
      [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
      [-c <CATEGORY> [-c <CATEGORY>] ...]
      [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
      [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
      [-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
      [-n <COMPONENT>] [-f <FLAGS>] [<URI>]

    am是管理activity的工具,主要有4种用法
    am start/stop <INTENT> 表示启动或者停止一个activity,INTENT的参数可以在AndroidManifest.xml中的intent-filter中找到
    比如我要打开发送邮件的activity就可以这样写
    # am start -a android.intent.action.SEND_MULTIPLE
    am start和StartActivity方法是一个作用

    am也可以发送一个broadcast,后面的INTENT和上面同
    除此之外还可以 start profiling和Instrumentation,这两个还不知怎么用,欢迎大家补充

    d)pm
    pm就是package manager,可以带下面的参数,因为帮助都说的很清楚了,我就不作解释了
    usage: pm [list|path|install|uninstall]
      pm list packages [-f]
      pm list permission-groups
      pm list permissions [-g] [-f] [-d] [-u] [GROUP]
      pm list instrumentation [-f] [TARGET-PACKAGE]
      pm list features
      pm path PACKAGE
      pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] PATH
      pm uninstall [-k] PACKAGE
      pm enable PACKAGE_OR_COMPONENT
      pm disable PACKAGE_OR_COMPONENT

    The list packages command prints all packages. Options:
      -f: see their associated file.

    The list permission-groups command prints all known
    permission groups.

    The list permissions command prints all known
    permissions, optionally only those in GROUP. Options:
      -g: organize by group.
      -f: print all information.
      -s: short summary.
      -d: only list dangerous permissions.
      -u: list only the permissions users will see.

    The list instrumentation command prints all instrumentations,
    or only those that target a specified package. Options:
      -f: see their associated file.

    The list features command prints all features of the system.

    The path command prints the path to the .apk of a package.

    The install command installs a package to the system. Options:
      -l: install the package with FORWARD_LOCK.
      -r: reinstall an exisiting app, keeping its data.
      -t: allow test .apks to be installed.
      -i: specify the installer package name.

    The uninstall command removes a package from the system. Options:
      -k: keep the data and cache directories around.
    after the package removal.

    The enable and disable commands change the enabled state of
    a given package or component (written as "package/class").

    e)svc
    svc可硬用来管理wifi,power和data
    svc [wifi|data|power] [option]

    usage: svc wifi [enable|disable]
      打开或者关闭wifi

    usage: svc power stayon [true|false|usb|ac]
      true电源一直保持stay on的状态,
      usb插上usb才保持stay on
      ac充电的时候

    f)bootanimation
    显示开机动画,在替换默认的开机动画的时候可以用这个来调试

    g)getevent & sendevent
    getevent监控当前的事件,鼠标事件,按键事件,拖动滑动等

    # getevent
    getevent
    add device 1: /dev/input/event0
      name: "qwerty2"
    /dev/input/event0: 0001 001e 00000001
    /dev/input/event0: 0001 001e 00000000

    其中/dev/input/event0是device的名字 0001是type, 001e是键码, 最后一个根据type不同而不同
    比如上面的倒数第二条就是按下a键的keydown,最后一个是按下a的keyup
    具体的type,code,value的定义可以在源码/frameworks/base/core/java/android/view/KeyEvent.java中找到

    sendevent发送时间,格式和上面的一样,需要注意的是在get中code显示的是十六进制,而send中需要用十进制,例如

    # sendevent /dev/input/event0 1 5 1
    这个命令就是发送数字4的keydown消息,所以在屏幕上就会一直打印出很多个4(因为没有发送keyup)

    h)一项常用的print message命令
    dumpsy
    dumpstate
    logcat
    dmesg
    这几条命令都集成在ddms里面了,所以一般用的很少

  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/riskyer/p/3306427.html
Copyright © 2011-2022 走看看