第3课 android adb 工具

ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。它的功能如下:

  • 运行设备的shell(命令行)
  • 管理模拟器或设备的端口映射
  • 图片链接和图片上传
  • 计算机和设备之间上传/下载文件
  • 将本地apk软件安装至模拟器或android设备

其实ADB是一个客户端-服务器端 程序,客户端即PC端, 服务器端是android设备。客户端包含在sdk里。设备上不需要安装,只需要在手机上打开选项settings-applications-development-USBdebugging。

ADB常用的几个命令都是在PC端执行的:

1.查看设备

adb devices

这个命令是查看当前连接的设备,连接到计算机的android设备或者模拟器将会列出显示。

 

2.安装应用程序

adb install <apk文件路径>

这个命令将指定的apk文件安装到设备上。

adb install -r apk 

这个命令将指定的apk文件安装到设备上(如果存在则覆盖安装)

3.卸载应用程序

adb uninstall <apk的包名>

或者

adb shell 

     cd data/app 

     rm apk包 

     exit 


如果加 -k 参数,为卸载软件但是保留配置和缓存文件。

 

4.登录设备shell,进入设备的shell模式

adb shell <command命令>

这个命令将登录设备的shell 
后面加

adb push <本地路径> <远程路径>

adb pull <远程路径> <本地路径>

示例代码如下(完成sd卡下的20160712目录拷贝到PC端的e盘根目录下):

adb pull/storage/sdcard0/20160712 e://

push 完成从PC端到Android端,pull 反之。 
这里要注意,如果在PC端cmd直接adb shell再执行adb pull会发生“device not found”错误,必须退出shell命令才可以完成文件传输。因此,在代码里实现文件通过ADB传输到电脑,是不可能的,代码里如果按照如下命令执行adb pull会在返回除非的错误输出流中读取到“device not found”错误信息,同时可以看到waitFor()返回值为1,虽然官方表示返回值为1是权限问题,但在这里明显不是权限问题,希望遇到同样问题的小伙伴止住继续探索权限的步伐。要想在代码里实现文件传输,最好还是使用Socket等技术。

process =Runtime.getRuntime().exec("su");

os = newDataOutputStream(process.getOutputStream());

os.write(command.getBytes());

os.flush();

5.删除系统自带软件(需Root

adb shell

cd system/app

rm <目标APP>.*

接着重启手机即可。

 

 

6.对某一设备执行命令: 

     adb -s  编号命令 

   这个命令在存在多个设备的时候选择其中某一个设备


7.查看adb命令帮助信息: 

     adb help 


8. 在命令行中查看LOG信息: 

     adb logcat -s 标签名  


9.删除系统应用: 

     adb remount (重新挂载系统分区,使系统分区重新可写)。 

     adb shell 

     cd system/app 

     rm *.apk 


10.获取管理员权限: 

     adb root 


=========================以上比较常用,下面的很少用到,有兴趣可以看下================

11.启动Activity 

     adb shell am start -n包名/包名+类名(-n类名,-aaction,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。 

12、发布端口: 

   你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如: 

adbforward tcp:5555 tcp:8000 

13、复制文件: 

   你可向一个设备或从一个设备中复制文件, 

    复制一个文件或目录到设备或模拟器上: 

 adb push <source> <destination></destination></source> 

     如:adbpush test.txt /tmp/test.txt 

    从设备或模拟器上复制一个文件或目录: 

    adb pull <source><destination></destination></source> 

    如:adbpull /addroid/lib/libwebcore.so . 

14、查看bug报告: 

adbbugreport 

15、记录无线通讯日志: 

   一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: 

   adb shell 

   logcat -b radio 

16、获取设备的ID和序列号: 

    adb get-product 

    adb get-serialno 

19、访问数据库SQLite3 

    adb shell 

    sqlite3 

#cdsystem/sd/data //进入系统内指定文件夹 

#ls//列表显示当前文件夹内容 

#rm-r xxx //删除名字为xxx的文件夹及其里面的所有文件 

#rmxxx //删除文件xxx 

#rmdir xxx //删除xxx的文件夹


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值