本文介绍windows 在程序中使用adb 方法。没有引进adb 该命令。

1) 启动adb 流程。获得输出从管道。

这样的方式的弊端有多少,我也不知道。反正就是各种问题吧。可是眼下我问过非常多朋友。他们都是这么做的,由于这样的方法最简单。弊端我列举一下

1) 每次运行一个adb 命令都要启动一个adb 进程,速度太慢,好像就是非常不爽

2)  偶尔发现进程管理器中有N 多个adb 进程,然后就卡了。

3)  从管道获取输出,在非常多情况下会发现adb 卡死了,进程退不出来。

4)  以前发现 adb 进程正常启动退出,可是管道就是没有数据。详细原因我如今还不知道。

2) 市面上手机助手使用方式

如今的手机助手不管你怎么搞,在正常情况下都不会出现多个adb 进程,仅仅会有一个adb 的服务进程。我大胆推測一下,应该是应用程序直接和adb 的服务进程通信。然后直接通过socket 接收数据。

第一种方式启动一个adb 进程,这个adb 进程通过socket 和服务进程通信,把命令发送给服务进程,服务进程接收到命令并且运行。之后把结果通过socket 返回给adb 进程,adb 进程把结果写入管道。然后自己退出了。

因此我们自己能够直接和adb 的服务进程通信,自己的应用程序里面通过socket 给服务进程发送消息。这样速度非常快并且也能够避免第一种方式的弊端。可是这样的方式也是比較困难。须要自己实现socket 通信

我自己改动了adb 进程。做了非常大的优化,而且写了一个lib,这个库封装了和adb 服务进程通信,这个库有一个函数直接调用就能够运行adb 命令。程序仅仅须要静态链接这个库,然后调用一个函数就能够了。

ExecuteADBCommand("devices",strOut);

具体能够了解qq: 2506314894

版权声明:本文博主原创文章,博客,未经同意不得转载。

android adb 不同的方式使用特定的解释的更多相关文章

  1. Android ADB 实用总结

    一.背景 从系统架构上来说,Android是基于Linux系统基础上,做了进一步的定制与修改,并融入了自身的特有功能,且向应用层提供应用程序接口,供开发者使用.系统内核层面,主体依然是Linux内核. ...

  2. Android adb命令 一

    adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具.adb的工作方式比 ...

  3. Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...

    下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...

  4. Android ADB命令教程二——ADB命令详解

    Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面 ...

  5. MacBook下配置android adb命令使用环境

    想在Mac下使用android adb命令,常用的两种配置方式: 在MacBook下配置adb命令环境(方法一) 1.下载并安装IDE (android studio) 人性化的安装,直接点击下一步下 ...

  6. Android 进程间通讯方式

    Android 进程间通讯方式 1.通过单向数据管道传递数据 管道(使用PipedWriter/ 创建PipedReader)是java.io包的一部分.也就是说,它们是一般的Java功能,而不是An ...

  7. android adb常用命令

    android adb命令: adb root --获取root.adb remount --获取文件操作权限(push)adb shell pm list package 获取包名列表com.mqt ...

  8. Android adb push 和 pull操作

    由于安卓真机本地调试时,每次启动并生成apk然后安装到设备比较费时,而很多情况是仅仅修改了hot 脚本文件(cocos2dx + lua). 所以,使用热更机制把修改后的lua文件push到热更目录( ...

  9. android 三种定位方式

    http://www.cnblogs.com/oudi/archive/2012/03/22/2411509.html 最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了 ...

随机推荐

  1. POJ 1838 Banana (并查集)

    Description Consider a tropical forrest, represented as a matrix. The cell from the right top corner ...

  2. STL源代码剖析 容器 stl_hashtable.h

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie hashtable ------------------------------------ ...

  3. 共同发展一个以上的开发者账户多台电脑 证书 p12 型材 进出口

    1:导出相应的开发人员证书的配置文件. 2:依据相应的app id 创建配置文件. 3:打开钥匙串,把你的公布证书导出p12文件. 4:用开发人员账号导出developerprofile文件. 5:把 ...

  4. Ajax—初识

    看DRP的过程.又一次学习了一遍Ajax.更深刻的体会到了Ajax所具有的魅力.Ajax是一种技术或者方法,更是一 种艺术.它让我们的程序以一种更完美的姿态呈如今用户面前.以下就让我们一起走进Ajax ...

  5. Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,相似图片浏览器

    MAC : XCode -> Scroll View 控件以Thumbnail的方式显示一个目录的全部图片,类似图片浏览器 STEP1:将两个目录复制到project里面ImageBrowser ...

  6. 黑马day07 注册案例(二)

    1依据index.jsp我们首先制定了注册的功能,当点击注册button什么时候.超链接到注册页面.下面是一个注册jsp页 <%@ page language="java" ...

  7. Netty In Action中国版 - 第二章:第一Netty程序

    本章介绍 获得Netty4最新的版本号 设置执行环境,以构建和执行netty程序 创建一个基于Netty的server和client 拦截和处理异常 编制和执行Nettyserver和client 本 ...

  8. POJ 1475 Pushing Boxes 搜索- 两重BFS

    题目地址: http://poj.org/problem?id=1475 两重BFS就行了,第一重是搜索箱子,第二重搜索人能不能到达推箱子的地方. AC代码: #include <iostrea ...

  9. [置顶] 最优间隔分类器、原始/对偶问题、SVM的对偶问题——斯坦福ML公开课笔记7

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9774135 本篇笔记针对ML公开课的第七个视频,主要内容包括最优间隔分类器( ...

  10. Effective C++:条款25:考虑写出一个不抛异常的swap函数

    (一) 缺省情况下swap动作可由标准程序库提供的swap算法完毕: namespace std { template<typename T> void swap(T& a, T& ...