Android的SDK中提供了很多有用的工具,在开发过程中如果能熟练使用这些工具,会让我们的开发事半功倍.adb是SDK提供的一个常用的命令行工具,全称为Android Debug Bridge,用于在调试时连接本机和手机设备.

adb有很多命令,本文只列出一些常用的命令,要查看所有的adb命令和用法, 可以在命令行中输入adb进行查看.

这些命令都是根据本人在开发过程中的使用进行总结的,以后如果发现其他常用的和有用的命令,会加入本文中.下面是一些常用的命令和用法.

一    adb常用命令


adb start-server

开启adb服务

adb kill-server

终止adb服务

adb devices

列出所有连接到adb的设备, 包括真机和模拟器

adb version

显示adb的版本号

adb install <apk file name>

将指定的app安装到唯一连接到adb的设备上,后边跟的参数为安装包的文件名

adb install -r <apk file name>

安装应用程序, 但是保留原有应用程序的所有数据

adb uninstall <package name>

将包名指定的app从目标设备上卸载,后边跟的参数为应用程序的包名

adb uninstall -k <package name>

将包名指定的app从目标设备上卸载, 但是保留配置文件和缓存

adb push <local> <remote>

将本机的文件或目录拷贝到目标设备的文件系统中

adb pull <remote> [<local>]

将目标设备中的文件或目录拷贝到本机中

adb shell

进入目标设备的Linux Shell环境, 在该环境中可以执行一些Linux命令.如在Linux Shell环境中执行ps可以查看android设备中运行的所有进程.在Linux Shell环境中执行exit可以退出Linux Shell环境

adb shell dumpsys activity

列出目标设备上的activity栈(back stack)和任务(task)的信息, 还有其他组件的一些信息和一些关于进程的信息

adb shell dumpsys packages

列出一些系统信息和所有应用的信息。这个命令的输出很庞大,在三星nexus上的输出有12000多行。这些信息

都非常详细,包括Features,Activity Resolver Table等。以下是输出的主要信息:

[plain] view plain copy
 
  1. <span style="font-family:SimSun;font-size:14px;">Verifiers:
  2. ...
  3. Libraries:
  4. ...
  5. Features:
  6. ...
  7. Activity Resolver Table:
  8. Full MIME Types:
  9. ...
  10. MIME Typed Actions:
  11. ...
  12. Receiver Resolver Table:
  13. Full MIME Types:
  14. ...
  15. Non-Data Actions:
  16. ...
  17. Service Resolver Table:
  18. Full MIME Types:
  19. ...
  20. Base MIME Types:
  21. ...
  22. Non-Data Actions:
  23. ...
  24. MIME Typed Actions:
  25. ...
  26. Preferred Activities User 0:
  27. ...
  28. Permissions:
  29. ...
  30. Registered ContentProviders:
  31. ...
  32. ContentProvider Authorities:
  33. ...
  34. Shared users:
  35. ...
  36. Settings parse messages:
  37. Read completed successfully: 149 packages, 12 shared uids
  38. ...
  39. Package warning messages:
  40. ...</span>

adb shell pm list permissions

列出目标平台上的所有权限

adb shell pm list packages

列出目标设备上安装的所有app的包名

adb shell pm list features

列出目标设备上的所有feature

使用adb命令启动一个Activity

[plain] view plain copy
  1. <span style="font-family:SimSun;font-size:14px;">adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE
  2. adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY
  3. # example
  4. adb shell am start -n com.growingwiththeweb.example/.MainActivity
  5. adb shell am start -n com.growingwiththeweb.example/com.growingwiththeweb.example.MainActivity</span>

屏幕截图, 并使用perl命令保存截图
adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

解锁屏幕


adb shell input keyevent 82

注:
 所有以"adb shell"开头的命令,都可以先执行adb shell命令进入目标设备的Linux Shell环境, 然后在目标设备的Linux
Shell中再执行"adb shell"之后的命令.如adb shell dumpsys activity, 可以先执行adb shell, 然后再Linux
Shell中再执行dumpsys activity



二  
 adb命令中用于确定目标设备的参数




adb命令有三个重要的参数,当本机上连接了两个或以上的android设备时,这三个参数就有用武之地了:


-d
 说明adb命令的目标设备是唯一连接到adb的真机

-e
 说明adb命令的目标设备是唯一连接到adb的模拟器

-s  <specific
device> 指定adb命令的目标设备


以下为这三个参数的应用举例:


adb -d
shell

进入唯一连接到adb的真机的Linux
Shell环境


adb -e install
weibo.apk

将weibo.apk安装到唯一连接到adb的模拟器上


adb -s emulator-5554 push
weibo.apk /sdcard/weibo.apk

将weibo.apk文件复制到emulator-5554的/sdcard/weibo.apk位置

注:  根据我自己的测试,当用-d -e 或者-s
指定目标设备时,命令有时会执行的比较慢,不知道什么原因



三  
 使用adb命令行的优势




尽管现在的用户操作以图形界面为主,但是在一些情况下, 命令行具有图形界面没有的优势, 尤其是对于开发人员,
命令行能提高效率.下面举例说明:

1
 快速卸载app




在android开发过程中,
在把程序发布到手机上进行测试时,
有时必须要卸载以前的版本以删除原来的数据,此时只要在命令行中输入


adb uninstall
<包名>

即可卸载, 而在手机上卸载,
要经过如下步骤:


设置 --> 应用程序 --> 管理应用程序
--> 在列表中找到要卸载的程序 --> 点击要卸载的应用程序 --> 卸载


2
 快速删除目录(文件夹)




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


adb shell
cd
/mnt/sdcard
rm -r MyApp
这样的话就不必再在文件浏览器中寻找这个目录并删除它 . 
 

Android开发中adb命令的常用方法的更多相关文章

  1. Android开发中Ant命令编译和APK签名的一些心得

    本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...

  2. Android开发——常用ADB命令的使用

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

  3. Android开发笔记---adb命令

    adb命令的使用: adb shell命令:pm list packages -f:显示包名称及相应的APK文件

  4. 【转】Android开发中adb启动失败adb连接异常的解决办法 offline

    原文网址:http://www.cnblogs.com/yejiurui/p/4173521.html 一.情况描述: 我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 ...

  5. Android开发中adb启动失败adb连接异常的解决办法

      一.情况描述:   我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 adb connect异常 比如会出现下面这样 : [2014-12-18 16:18:26 ...

  6. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  7. 如何在Android开发中让你的代码更有效率

    最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...

  8. android开发中的5种存储数据方式

    数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...

  9. 【转】android开发中关于模拟器emulation的常见问题

    [转]android开发中关于模拟器emulation的常见问题 Trouble: 无法启动android模拟器,提示 XDM authorization key matches an existin ...

随机推荐

  1. Ubuntu x86-64汇编(4) 数值操作指令

    整数乘法指令 Integer Multiplication 对于有符号数的乘法有特殊的规则, 因此无符号数乘法和有符号数乘法对应着不同的指令mul和imul. 乘法会产生两倍尺寸的数值结果, 即两个n ...

  2. masonry瀑布流的使用

    今天在使用masonry.pkgd.min.js瀑布流的时候遇到一个很奇怪的问题,官网显示正常,而我的就是显示不正确,然后我又查看一遍,原来要加这段代码就ok了,记录一下,怕以后还会遇到这个问题 *, ...

  3. [转载]DB2与ORACLE、MYSQL比较2

    原文地址:DB2与ORACLE.MYSQL比较2作者:欣颖 4.2 Oracle9i  Oracle的产品战略是每12到18个月发布一个主要版本.主要发行版本所遵循的命名战略在PC领域中更为常见,它不 ...

  4. sklearn模型保存

    使用sklearn训练完模型之后,只有将模型持久化到硬盘上,才能方便下次直接使用. 第一种方式:使用pickle >>> from sklearn import svm >&g ...

  5. web前端工程师在移动互联网时代里的地位问题 为啥C/S系统在PC端没有流行起来,却在移动互联网下流行了起来 为啥移动端的浏览器在很多应用里都是靠边站,人们更加倾向于先麻烦自己一下,下载安装个客户端APP

    web前端工程师在移动互联网时代里的地位问题 支付宝十周年推出了一个新产品:支付宝的十年账单,我也赶个时髦查看了一下我的支付宝十年账单,哎,感慨自己真是太屌丝了,不过这只是说明我使用淘宝少了,当我大规 ...

  6. springboot(六):如何优雅的使用mybatis

    这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis.到网上找了一下关于spring boot ...

  7. SpringBoot配置属性之其他

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  8. MySQL -- 全文检索

    mysql支持全文索引和全文检索--全文索引的索引类型是fulltext--全文索引只能用于innodb表和myisam表,对应的列类型只是支持char.varchar.text--mysql5.7. ...

  9. Fuel4d 2.3 公布

    [版本号编号]:Fuel4D 2.3. [公布日期]:2014年10月20日. [编译环境]:UNICODE.VS2010.x86. [开发环境]:ANSI/UTF-8/UNICODE.VS2005/ ...

  10. python开发者框架套件总结: package 包 frameworks

    python开发者的package 包 框架套件总结: frameworks     开发环境: anaconda pycharm django awesome-django : 介绍 django ...