【Android】你应该知道的调试神器----adb
最近跟着一个前辈在做TV应用,因为不能通过usb连接调试,接触到了adb,突然间觉得自己似乎发现了另外一个世界,借助adb shell命令对应用进行调试,简直方便得不行。更重要的是,这是命令行操作啊!!!装逼神器啊,还没学的赶紧来试试看吧。
效果
老规矩,先上几张截图看看效果,这是查看xml文件数据,和sqlite数据库数据的效果


介绍
adb,网上介绍其实很多,就是用来对安卓系统进行一些命令操作的工具。如果你的应用需要经常查看 sharePreference文件数据、Sqlite 数据库数据,以及本地的各种数据的话,那么使用adb将会非常方便。
如果你需要从电脑上发送一些文件到手机里,或者从手机获取一些文件到电脑上(比如视频之类的应用,需要经常把应用存在手机里的视频文件发送到电脑),那么借助adb也可以很方便实现。
如果你想做一些TV应用的话,那么就应该要学学ADB了,学学如何通过wifi连接调试,如果pull,push文件等等了。
使用
好了,现在就来看看一些常用的命令了,adb 的命令其实很多,不用特意去记,平常要用时上网搜下,等用熟悉了,自然就把一些常用的命令给记住了。下面,稍微介绍一些我经常使用到的命令:
基本命令:ls、cd、cat、rm、cp、mkdir
这些命令是linux系统上的一些基本命令,至少要对 ls、cd、cat这几个命令熟悉点,才能很流畅的使用adb工具,如果你还不熟悉,建议先去了解下这几个命令吧。
①adb shell
这个是进入手机shell操作的一个命令。通常情况下,你调试用的模拟器或者手机通过usb连接电脑后,在win上通过Ctrl + R,输入cmd,在dos窗口内执行该命令即可进入手机的shell操作。
如果你连接当前电脑的手机不止一部时,这时就需要借助参数来进行选择指定的设备了。如下图:

②借助ls、cd命令进入应用数据地址:/data/data/{包名如:coder.dasu.meizi}/
该目录下就是存放该应用的 xml数据,cache数据,file数据,以及sqlite数据库数据了,如下:

③cat命令查看SharePreference的xml数据
xml中经常保存一些应用的配置数据,比如用户是否首次启动app,用户账户,用户对应用操作的一些设置啊,比如关闭消息推送等等。
这些数据在开发时,都可以通过log方式打印出来,查看效果是否正确。但有时,如果想要查看较多的xml数据时,又懒得一个个的敲代码,或者log信息太杂,忘记以前写的过滤条件时,这时就可以借助adb来实现了。

④神器: sqlite3 ***.db命令查看数据库
以上介绍的一些功能其实就算不借助adb,也可以使用打印log等方式实现。但如果我们开发过程中,需要经常查看一些数据库内的数据时,也可以使用ddms,把db文件导出来借助工具查看,但这样总会麻烦了点,需要每次都进行导出db文件。所以,这时候,如果借助 sqlite3这个命令,将会非常方便。
执行完 sqlite3 meizi.db 后,会进入一个sqlite命令状态,在这里可以使用sql语言来进行查询,也可以使用.help来查看sqlite3提供的一些快速命令.

如,执行 .table 可以查看当前数据库所有的表,执行 .schema 可以查看创建数据库的sql命令

上面那图中有两张表,我们看看USER表中有什么数据,可以使用sql命令查询

ps:查询结果默认是一个记录一行的,也可以设置成list、或上图等各种显示方式,通过.mode  .header命令来执行,这些命令都可以通过.help来查看说明。
虽然需要执行sql命令才能查询,但其实也就select一下,并不会很复杂,而且还可以借机多接触一下sql语言,学习一下。更重要的是,这很装逼,有没有O(∩_∩)O。不管在同学面前操作,还是操作给不懂这个的老板看,都会让对方觉得你很吊的。
哈哈,反正我是喜欢上用这个工具就是了,因为最近开发负责的部分很多跟数据库操作相关,而且还经常出现一些bug,需要经常查看数据库内容来定位以及解决bug,所以这个用着是特别方便,相比于以前用导出db文件的方式来的话。
如果你也有调试数据库这方面的需求,建议你也可以使用这个工具试试看。
其他功能
我使用adb工具更多的是用它来查看应用的一些数据。但其实,它还是有很多其他实用的功能的。
wifi连接调试 adb connect {ip}
如果你不想用usb连接调试,可以选择使用adb 连接调试,命令是 adb connect {ip} ,需要在同一个局域网内。这个功能也比较实用,但首次连接时,需要另外一些配置,建议可以网上搜索下adb wifi连接手机等关键字看看。
屏幕截屏 screencap -p {图片存储地址}
这个其实直接通过手机截屏再发送到电脑就可以了,但我开发的是TV应用,在盒子上没法截屏,所以这个命令对我来说还是较实用的。
获取或推送文件 adb pull/push
这个也挺实用的,获取手机指定位置的文件到电脑上,或者从电脑发送文件到手机上
如果上面有什么错误,欢迎指正一下。如果你还知道其他更实用的功能,也欢迎告知一下,题主也是个新手,一起好好学习学习。
【Android】你应该知道的调试神器----adb的更多相关文章
- 转:Android 调试桥(adb)是多种用途的工具
		转自:http://my.oschina.net/xuwa/blog/1574 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入 ... 
- 使用WIFI连接android进行调试和adb操作
		本人需要wifi连接android进行调试的原因主要是要经常用到IDA pro进行调试,但手头有的IDA Pro版本只是windows的,开发可能更多用Mac OS X了,来回拔插.调试很不方便,所以 ... 
- android调试之adb
		ADB 其实大部分的PC开发机与Android设备的操作都是通过adb(android debug bridge)技术完成的,这是一个C/S架构的命令行工具,主要由三个部分组成 运行在PC开发机上的命 ... 
- Android 调试桥(adb)是多种用途的工具
		Android 调试桥 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理 ... 
- Android调试桥  adb安装详解
		Android调试桥(adb) 一.简介 Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Uni ... 
- Android 调试桥 (adb) 是  命令行命令--官方拷贝过来的,留作自己查看
		Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信.adb 命令便于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令 ... 
- android模拟器使用PC串口调试
		android模拟器使用PC串口调试1.模拟器可以使用PC的串口 启动模拟器并加载PC串口 命令如下: 运行 emulator @模拟器名称 -qemu -serial COM12.查看串口是否被 ... 
- 【Android测试】【第一节】ADB——初识和用法
		◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4630046.html 写在前面的话 感觉自己进入Andr ... 
- 移动端调试神器vconsole,手机端网页的调试工具Eruda
		移动端调试神器vconsole,手机端网页的调试工具Eruda 移动端中使用 vConsole调试 移动端调试工具vconsole安装Git地址:https://github.com/WechatFE ... 
随机推荐
- 使用XmlDataDocument将数据存储到XML文档
			string str = "Data Source=192.168.1.20;Initial Catalog=WebTest;User ID=sa;Password="; SqlC ... 
- 使用 Productivity Power Tools 高级扩展 来帮助你提高 VS2012 的工作效率
			Productivity Power Tools 高级工具是帮助开发者提高工作效率的, 用于 Visual Studio 2012 专业版(及以上) 的一组免费扩展. 本文大多数内容译自MSDN:ht ... 
- 淘宝UWP桌面版公测-谁需要邀请码?
			今天taobaoUWP桌面版上线beta测试了.哪位朋友需要邀请码的,请与我联系. 前提是,您的PC已经升级到Windows 10 10586版本了,否则无法使用. 邀请码数量有限,一人一枚,共20枚 ... 
- AMD加载器实现笔记(二)
			AMD加载器实现笔记(一)中,我们实现了一个简易的模块加载器.但到目前为止这个加载器还并不能称为AMD加载器,原因很简单,我们还不支持AMD规范中的config配置.这篇文章中我们来添加对config ... 
- ECMAScript 6 简介
			ECMAScript 6 是JavaScript的下一个标准,正处在快速开发之中,大部分已经完成了,预计将在2014年正式发布.Mozilla将在这个标准的基础上,推出JavaScript 2.0. ... 
- 免费打造自己的个人网站,免费域名、免费空间、FTP、数据库什么的,一个不能少,没钱,也可以这么任性
			作为一名程序猿,拥有自己的个人网站,是一件多么有逼格的事~~至于个人网站的好处嘛?那是多的说都说不完啊~~例如我们可以放自己的作品,展示自己的风采,放自己女神的照片(女神看到后会怎么样,自己想吧,哈哈 ... 
- json-smart 使用示例(推荐fastjson)
			关于json库,请使用fastjson,这是我用过的最好用的json库! 地址:https://github.com/alibaba/fastjson ======================== ... 
- 用Python编写博客导出工具
			用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处 写在前面的话 我在 github 上用 octopress 搭建了个人博 ... 
- 透析Express.js
			前言 最近,本屌在试用Node.js,在寻找靠谱web框架时发现了Express.js.Express.js在Node.js社区中是比较出名web框架,而它的定位是“minimal and flexi ... 
- Spring Trasnaction管理(3)- 事务嵌套
			问题导读 Spring 如何管理嵌套的事务 Spring事务传播机制 Nested 和 RequireNew 有何区别 事务传播机制 事务的传播机制应该都比较熟悉 在日常开发中会遇到需要事务嵌套的情况 ... 
