• Android ADB Shell命令解析

    Linux shell
    服务器君一共花费 12.627 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    我们先来看看 Android 的概念:

    Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。

    既然 Android 基于 Linux,那么 Linux shell 命令在 Android 里大都也是适用的。所有以“adb shell”开头的命令,都可以先执行adb shell命令进入目标设备的Linux Shell环境,然后在目标设备的Linux Shell中再执行“adb shell”之后的命令。如adb shell dumpsys activity,可以先执行adb shell,然后再Linux Shell中再执行dumpsys activity。

    Adb提供了shell来在模拟器或手机上运行各种各样的命令,这些命令的二进制形式存在于这个路径中:

    /system/bin/...
    

    无论是否进入 adb 远程shell,都可以使用 shell 命令来执。在未进入远程shell的情况下可以按下述格式执行单条命令:

    adb [-d|-e|-s {<serialNumber>}] shell <shellCommand>
    

    启动远程shell使用下面的格式:

    adb [-d|-e|-s {<serialNumber>}] shell
    

    退出远程shell时使用 CTRL+D 或 exit 终止会话。

    一些比较常见的 shell 命令:

    • adb shell 这个命令将登录设备的shell。进入目标设备的Linux Shell环境,在该环境中可以执行一些Linux命令。如在Linux Shell环境中执行ps可以查看android设备中运行的所有进程。在Linux Shell环境中执行exit可以退出Linux Shell环境。
    • adb shell <command命令> 后面加<command命令>将是直接运行设备命令,相当于执行远程命令。
    • ls 查看目录
    • date 打印或设置当前系统时间
    • cat /proc/meminfo 查看内存信息
    • cat /proc/cpuinfo 查看CPU信息
    • adb shell dumpsys activity 列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息。
    • adb shell dumpsys packages 列出一些系统信息和所有应用的信息。这个命令的输出很庞大,在三星nexus上的输出有12000多行。这些信息都非常详细,包括Features,Activity Resolver Table等。
    • adb shell pm list permissions 列出目标平台上的所有权限
    • adb shell pm list packages 列出目标设备上安装的所有app的包名
    • adb shell pm list features 列出目标设备上的所有feature
    • ls 查看目录
    • ls 查看目录
    • ……

    1. 删除应用

    Android没有提供一个卸载应用的命令,需要自己手动删除:

    cd /data/app
    rm nowamagic.apk
    

    2. 删除Android系统Rom自带的软件

    确定手机root了,取得了root权限才能删除系统文件。下载Android_db.rar,解压到%windir/%System32下。手机连接数据线,在电脑上打开cmd,然后输入命令:

    adb remount
    adb shell
    su
    

    执行完成之后,你会看到:

    * daemon not running. starting it now *
    * daemon started successfully *
    

    接着就是Linux命令行模式了,输入:

    cd system/app
    

    然后输入ls回车,这时候列表显示了system/app里面的所有文件,也就是Rom集成的一些软件了。

    比如删除Youtube,他的文件名是Youtube.odex和Youtube.apk,我们要删除这2个文件,敲入以下命令:

    rm Youtube.*
    

    重启,Youtube已经删除掉了。

    3. sqlite3 adb命令

    进入数据库的两种方式:

    第一种:sqlite3 nowamagic.db

    第二种:

    adb shell
    sqlite3
    
    • .databases               列出数据库文件名
    • .tables ?PATTERN?        列出?PATTERN?匹配的表名
    • .import FILE TABLE       将文件中的数据导入的文件中
    • .dump ?TABLE?            生成形成数据库表的SQL脚本
    • .output FILENAME         将输出导入到指定的文件中
    • .output stdout           将输出打印到屏幕
    • .mode MODE ?TABLE?       设置数据输出模式(csv,html,tcl…
    • .nullvalue STRING        用指定的串代替输出的NULL串
    • .read FILENAME           执行指定文件中的SQL语句
    • .schema ?TABLE?          打印创建数据库表的SQL语句
    • .separator STRING        用指定的字符串代替字段分隔符
    • .show                    打印所有SQLite环境变量的设置
    • .quit                    退出命令行接口

    4. 使用adb命令启动一个Activity

    adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE  
    adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY  
      
    # example  
    adb shell am start -n net.nowamagic.example/.MainActivity  
    adb shell am start -n net.nowamagic.example/net.nowamagic.example.MainActivity
    

    5. 屏幕截图, 并使用perl命令保存截图

    adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png
    

    6. 快速删除目录(文件夹)

    如果程序在sd卡上创建了目录MyApp,在该目录中有数据库和一些其他文件,在将程序发布到手机上测试时, 需要删除原来创建的目录再重新创建.这时只需要执行以下命令:

    adb shell
    cd /mnt/sdcard
    rm -r MyApp
    

    这样的话就不必再在文件浏览器中寻找这个目录并删除它。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [数据库技术] SQL基础语法 1 个条目
  2. [移动开发] 从代码角度去认识 Activity 4 个条目
  3. [Python程序设计] Django后台管理系统 2 个条目
  4. [PHP程序设计] PHP数组探索 4 个条目
  5. [智力开发与知识管理] 超越整体性学习 5 个条目
  6. [Python程序设计] Tornado表单处理 3 个条目
  7. [运维管理] 路由器与交换机 4 个条目
  8. [移动开发] Android里的ContentValues 2 个条目
  9. [移动开发] 简单了解Android Fragment 3 个条目
  10. [Python程序设计] Python HTTP服务器 7 个条目
  11. [Python程序设计] Django 入门知识浅介 10 个条目
  12. [智力开发与知识管理] 学习编程为什么没会这么难? 7 个条目
窗口 -- [博客]