adb命令和adb shell命令

本文仅是收集了一些简单粗暴常用的命令,请Linux熟客和大牛勿喷~~


一。ADB

ADB的全称为Android Debug Bridge,字面意思就是安卓调试桥,ADB是一个“客户端-服务器端“的关联程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备。简单点说,它是Android系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作。
它的主要功能有:
1) 运行设备的shell(命令行)
2)管理模拟器或设备的端口映射
3)计算机和设备之间上传/下载文件
4)将本地apk软件安装至模拟器或android设备


ADB常用的几个命令:

1. 查看设备
    * adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
2. 安装软件
    * adb install
这个命令将指定的apk文件安装到设备上
3. 卸载软件
    * adb uninstall <软件名>
    * adb uninstall -k <软件名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件.
4. 登录设备shell
    * adb shell
    * adb shell
这个命令将登录设备的shell.
后面加将是直接运行设备命令, 相当于执行远程命令
5. 从电脑上发送文件到设备
    * adb push <本地路径> <远程路径>
用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)
6. 从设备上下载文件到电脑
    * adb pull <远程路径> <本地路径>
用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑
7. 显示帮助信息
    * adb help
这个命令将显示帮助信息
8. 同步更新
    * adb sync [ ]
如果不指定目录,将同时更新 /data 和  /system/
如: adb sync /data/
9. 重新挂载
    * adb  remount
重新挂载系统  分区 用于读写   
10. 启動和关閉
    * adb start-server             - ensure that there is a server running
    * adb kill-server              - kill the server if it is running
 

二。shell命令

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。操作系统运行的本身其实并不需要人来控制,但人需要告诉操作系统做什么,这个交互程序,就被称为shell。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。
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。具体格式如下两种情况:
1)在未进入远程shell的情况下可以按下述格式执行单条命令:
adb [-d|-e|-s {}] shell
2)启动远程shell使用下面的格式:
adb [-d|-e|-s {}] shell
退出远程shell时使用 CTRL+D 或 exit 终止会话。


一些比较常见的 shell 命令:

1. 查看目录
    * ls
2. 打印或设置当前系统时间
    * date
3. 查看内存信息
    * cat /proc/meminfo
4. 查看CPU信息
    * cat /proc/cpuinfo
5. 列出目标设备上的activity栈(back stack)和任务(task)的信息
    * adb shell dumpsys activity
6. 列出一些系统信息和所有应用的信息。
    * adb shell dumpsys packages
7. 列出目标平台上的所有权限
    * adb shell pm list permissions
8. 列出目标设备上安装的所有app的包名
    * adb shell pm list packages
9. 列出目标设备上的所有feature
    * adb shell pm list features
10. 删除应用
Android没有提供一个卸载应用的命令,需要自己手动删除:
    * cd /data/app
    * rm nowamagic.apk
11. 删除Android系统Rom自带的软件
确定手机root了,取得了root权限才能删除系统文件。
    * 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.*
12. sqlite3 adb命令
    * 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                    退出命令行接口
13. 使用adb命令启动一个Activity
    * adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE  
    * adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY  
# for example  
    * adb shell am start -n net.nowamagic.example/.MainActivity  
    * adb shell am start -n net.nowamagic.example/net.nowamagic.example.MainActivity
14. 屏幕截图, 并使用perl命令保存截图
    * adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png
15.  快速删除目录(文件夹)
如果程序在sd卡上创建了目录MyApp,在该目录中有数据库和一些其他文件,在将程序发布到手机上测试时, 需要删除原来创建的目录再重新创建.这时只需要执行以下命令:
    * adb shell
    * cd /mnt/sdcard
    * rm -r MyApp




参考链接:

http://www.nowamagic.net/academy/detail/50280515

http://blog.sina.com.cn/s/blog_6294abe70101275q.html




你可能感兴趣的:(Android基础)