Android开发中adb命令的常用方法
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等。以下是输出的主要信息:
- <span style="font-family:SimSun;font-size:14px;">Verifiers:
- ...
- Libraries:
- ...
- Features:
- ...
- Activity Resolver Table:
- Full MIME Types:
- ...
- MIME Typed Actions:
- ...
- Receiver Resolver Table:
- Full MIME Types:
- ...
- Non-Data Actions:
- ...
- Service Resolver Table:
- Full MIME Types:
- ...
- Base MIME Types:
- ...
- Non-Data Actions:
- ...
- MIME Typed Actions:
- ...
- Preferred Activities User 0:
- ...
- Permissions:
- ...
- Registered ContentProviders:
- ...
- ContentProvider Authorities:
- ...
- Shared users:
- ...
- Settings parse messages:
- Read completed successfully: 149 packages, 12 shared uids
- ...
- Package warning messages:
- ...</span>
adb shell pm list permissions
列出目标平台上的所有权限
adb shell pm list packages
列出目标设备上安装的所有app的包名
adb shell pm list features
列出目标设备上的所有feature
使用adb命令启动一个Activity
- <span style="font-family:SimSun;font-size:14px;">adb shell am start PACKAGE_NAME/ACTIVITY_IN_PACKAGE
- adb shell am start PACKAGE_NAME/FULLY_QUALIFIED_ACTIVITY
- # example
- adb shell am start -n com.growingwiththeweb.example/.MainActivity
- 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
-e
说明adb命令的目标设备是唯一连接到adb的真机
说明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
注: 根据我自己的测试,当用-d -e 或者-s将weibo.apk文件复制到emulator-5554的/sdcard/weibo.apk位置
指定目标设备时,命令有时会执行的比较慢,不知道什么原因
三
使用adb命令行的优势
尽管现在的用户操作以图形界面为主,但是在一些情况下, 命令行具有图形界面没有的优势, 尤其是对于开发人员,
命令行能提高效率.下面举例说明:
1
快速卸载app
在android开发过程中,
在把程序发布到手机上进行测试时,
有时必须要卸载以前的版本以删除原来的数据,此时只要在命令行中输入
adb uninstall
<包名>
即可卸载, 而在手机上卸载,
要经过如下步骤:
设置 --> 应用程序 --> 管理应用程序
--> 在列表中找到要卸载的程序 --> 点击要卸载的应用程序 --> 卸载
2
快速删除目录(文件夹)
如果程序在sd卡上创建了目录MyApp,在该目录中有数据库和一些其他文件,在将程序发布到手机上测试时,
需要删除原来创建的目录再重新创建.这时只需要执行以下命令:
adb shell这样的话就不必再在文件浏览器中寻找这个目录并删除它 .
cd
/mnt/sdcard
rm -r MyApp

Android开发中adb命令的常用方法的更多相关文章
- Android开发中Ant命令编译和APK签名的一些心得
本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...
- Android开发——常用ADB命令的使用
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备.它的功能如下: 运行设备的sh ...
- Android开发笔记---adb命令
adb命令的使用: adb shell命令:pm list packages -f:显示包名称及相应的APK文件
- 【转】Android开发中adb启动失败adb连接异常的解决办法 offline
原文网址:http://www.cnblogs.com/yejiurui/p/4173521.html 一.情况描述: 我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 ...
- Android开发中adb启动失败adb连接异常的解决办法
一.情况描述: 我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 adb connect异常 比如会出现下面这样 : [2014-12-18 16:18:26 ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
- 如何在Android开发中让你的代码更有效率
最近看了Google IO 2012年的一个视频,名字叫做Doing More With Less: Being a Good Android Citizen,主要是讲如何用少少的几句代码来改善And ...
- android开发中的5种存储数据方式
数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...
- 【转】android开发中关于模拟器emulation的常见问题
[转]android开发中关于模拟器emulation的常见问题 Trouble: 无法启动android模拟器,提示 XDM authorization key matches an existin ...
随机推荐
- SElinux测试及排错
一.修改SElinux的状态 #sestatus --查看状态 #setenforce --临时修改 #setenforce #getenforce #vim /etc/selinux/config ...
- 【Android开发经验】怎样查看android-support-v4支持包中的源代码
在support-v4包里面.加入了非常多的支持控件,比方ViewPager,Fragment等,为了解决一些问题,我们有时候想要看一下实现源代码,可是点进去之后.源代码并不会显示出来,会出现以下的情 ...
- 最常用的Java库一览(13年的文章)
来源于:http://www.importnew.com/7530.html 本文由 ImportNew - 邢 敏 翻译自 programcreek.欢迎加入翻译小组.转载请见文末要求. 写在前面: ...
- 基于Android的小巫新闻客户端开发系列教程
<ignore_js_op> 141224c6n6x7wmu1aacap7.jpg (27.51 KB, 下载次数: 0) 下载附件 保存到相册 23 秒前 上传 <ignor ...
- 关于JAVA路径 问题
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://w ...
- 实测iOS Dynamic Framework 对 App 启动时间的影响效果
最近看到的Slow App Startup Times里提到: The dynamic loader finds and reads the dependent dynamic libraries ( ...
- 【转】Kafka 之 中级
摘要: Kafka配置介绍,原理介绍及生产者,消费者Java基本使用方法. 1. 配置 Ø Broker主要配置 参数 默认值 说明(解释) broker.id =0 每一个broker在 ...
- Nginx 和 PHP 的两种部署方式比较
2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面多态服务器部署Nginx Web服务和php-fpm提供的fast cgi服务 第二种 前置1台nginx服务器做W ...
- Rust 之 cargo(项目构建和包管理工具)
如果食用cargo来进行项目构建: 1. 执行 cargo new hello_cargo --bin ,执行完上面的操作之后,我们切换到hell_cargo目录下,可以看到一个文件(Cargo.to ...
- Entity Framework之深入分析
EF虽然是一个晚生畸形的ORM框架,但功能强大又具有灵活性的,给了开发人员一定的发挥空间.因为微软出发点总是好的,让开发变得简单,但实际上不是所有的事情都这么理想.这里顺便推荐马丁大叔的书<企业 ...