adb这点小事——远程adb调试
欢迎转载。转载请注明:http://blog.csdn.net/zhgxhuaa
1. 前言
1.1. 写在前面的话
在之前的一篇文章《360电视助手实现研究》中介绍了在局域网内直接通过adb安装应用,本文接下来继续介绍adb一点有意思的小东东。本系列之所以取名《adb的那点小事》是由于,仅仅想介绍一些有意思的并且平时大多数人关注不多的方面,类似于“adb原理”、“adb怎样使用”之类的老生常谈不在本文的介绍范围内。
言归正传,本文介绍的内容是:在局域网内,假设进行adb远程调试,即:在没有数据线的情况下。怎样在局域网内使用adb开发。
1.2. 本文的背景
作为一名Android程序猿。每天接触最多的就是eclipse和adb了。
在开发的过程中,这几种场景我们应该并不陌生:
A. 手机正在測试同学手中,可是我们想要抓log。那么接下来会有两种选择:
a) 让測试的同学帮忙抓log。但可能抓不到自己想要的;
b) 让測试同学把手机送过来,或者自己去取,但须要浪费至少10几分钟。
B. 电脑连接一台刚才其它同学(开发或測试)手机拿过来的机器。那么接下来可能须要等待几分钟的时间来安装手机驱动。
C. 长时间的使用,adb数据线损坏或者不太灵敏。
那么有没有一种好的办法能够解决上述问题呢?本文接下来将做一个探讨。
2. 技术实现研究
2.1. 远程调试的原理
要了解为什么能够远程调试,首先还是要简单的说一下adb的原理。我们平时所说的adb在Android中是被实现为一种C/S结构的。当中Server端被称为adbd,也即adb守护进程,该进程执行在手机中。对于C/S结构的命令的执行响应过程。大家应该都比較熟悉。不再做介绍。这里继续说一下adbd,adbd提供了两种监听client请求的方式:USB和TCP/IP。当中USB方式是系统的默认监听方式。
所以,结合《360电视助手实现研究》中的介绍,接下来我们应该怎么做就比較明显了:
1. 首先,设置手机的adbd为TCP/IP方式;
2. 其次,设置adbd监听某一特定的port;
3. 最后,在远程(电脑上)通过adb connect连接到手机。
通过以上三部。我们就能够远程adb调试和打印log了。
接下来将介绍详细的实现,及须要注意的一些问题。
2.2. 详细技术实现
要实现adb远程调试,首先须要手机具有root权限。能够通过以下的代码进行简单的推断:

在推断手机具有暂时root权限后,接下来就是设置adbd监听的port和重新启动adbd使port生效了,代码例如以下:
在默认情况下adbd监听的port为“5555”。这里能够依据须要(比方5555是否被占用)进行改动。

在完毕上一部的操作后,能够到手机“设置->WLAN->当前正在使用的wifi热点的信息”中查看IP信息。也能够通过以下的方法获取:

接下来就能够在电脑上的cmd下通过“adb connect”连接刚才的IP。进行远程adb的调试了,假设成功会显示“connected
to xxxxx”;连接失败则提示”unable to connect to xxxxx”,以下是我电脑操作的截图:

最后,在远程调试完毕后,记得将手机adb恢复到usb模式:

行,在这里,本文介绍了,有环境问题的讨论和交流。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
adb这点小事——远程adb调试的更多相关文章
- windows下远程adb
Android 使用 adb命令 远程安装apk cmd下到你的adb文件夹,一般在platform-tools下. adb devices 列出全部设备 adb connect xxx.xxx.xx ...
- adb 连接小米1S真机调试
Ubuntu13.04 adb连接小米1S真机调试 搭好Android开发环境后,新建了一个Android Application工程.准备运行,问题来了,模拟器太慢了,怎么在真机上调试呢?百度之,G ...
- adb正常,手机启动usb调试,adb devices下没有改设备
手机开启开发者模式,adb正常时adb devices下没有设备: 1.进入设备管理器--查找adb的硬件id
- adb 相关命令 以及无法adb识别设备的解决方法
[自己解决方法] 在-/.android/文件夹下面新建adb_usb.ini文件.里面写入设备的idVendor号(0x加上四位数字),然后输入 adb kill-server, 然后adb dev ...
- adb shell 运行时报错"adb server version (26) doesn't match this client (39); killing..."的解决方案
adb即 Android Debug Bridge 是一个通用的命令行工具,可用于通过PC端对连接的Android模拟器设备或连接至电脑的真实物理设备进行命令行操作.目前,许多软件均会借助 adb 工 ...
- 远程debug调试java代码
远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...
- idea导入maven项目,web browser远程单步调试
问题:之前用idea14.1.3导入maven项目后,maven的dependencies不能自动解决依赖,到处都是红色的红线,看着就受不了.虽然不影响命令行编译,但是看着实在是不爽.总结下面几小步: ...
- 远程开发调试与hot-update | (R "think-of-lisper" 'Albertlee)
远程开发调试与hot-update | (R "think-of-lisper" 'Albertlee) 远程开发调试与hot-update
- pycharm安装,svn使用,远程开发调试,接口测试,连接服务器
磨刀不误砍柴工,配置完美的编辑器,在开发时,能帮助我们节约大量的时间成本,从而是我们的精力放在业务逻辑实现上面! 接下来将介绍 使用pyhcarm如何使用svn,远程开发调试,接口测试,已经连接远程服 ...
随机推荐
- elasticsearch2.2
elasticsearch2.2 集群搭建各种坑 目前生产环境的es版本是1.0版本,需要升级到最新的2.2版本,于是在测试环境进行部署集群测试,在测试过程中遇到的坑相当多,下面详细介绍下. ...
- Code-Based Configuration (EF6 onwards)
https://msdn.microsoft.com/en-us/data/jj680699#Using
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- 【POJ1741】Tree 树分而治之 模板略?
做广告: #include <stdio.h> int main() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog. ...
- libpomelo 增加编译静态库cocos2d-x xcode 工程
离 https://github.com/NetEase/libpomelo 下载最新版本.拉开拉链,静态库 ./pomelo_gyp -DTO=ios ./build_ios ./build_ios ...
- 成都传智职工high翻竞赛场
日前,由石羊街道总工会.天府新谷园区党委联合主办的“2013年职工趣味竞赛”盛大开幕.传智播客成都java培训中心员工积极参与,活跃在各大项目的比赛中,员工们用笑脸.身影告诉大家:竞赛场上,我们hig ...
- AWR报告生成
ORACLE数据库两个比較重要的问题查看报告:awrrpt.sql,ashrpt.sql 生成报告的脚本一般存放在例如以下路径: /home/TEST/db/tech_st/11.2.0/rdbms/ ...
- 我理解设计模式C++实现观察者模式Observer Pattern
概述: 近期中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑client上,网页上,手机上,iPad上都能够查看到该证券的实时行情,这样的情况下我们应该怎么设 ...
- 水声通信(传声)于iOS、Android在情景-depth分析(包括一些声通信源)
最近的水声通信非常热,特别是,非常嵌入式设备备受瞩目使用,前段时间公布了声通信部分源代码(iOS和Android版本号.下载源的最新版本:点击打开链接 http://download.csdn.net ...
- 使用SVM对于许多类型的多维数据分类
最近,我做了一件小事,使用SVM正确8三维级数据分类,在线搜索,我们发现二分的问题大家都在讨论二维数据,一些决定自己的研究.我首先参考opencvtutorial.这也是二维数据的二分类问题.然后通过 ...