本文介绍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. 3DMax的OFusion插件使用问题

    使用OFusion将3D max场景导出为Ogre的Mesh是非经常常使用的方法.这里汇总一些问题方便查阅. 1.OFusion获取: http://download.csdn.net/detail/ ...

  2. 用C++语言开发Android程序 配置开发环境

    转自:http://www.cnblogs.com/yaotong/p/3622430.html 用C++语言开发Android程序 配置开发环境   如果你是一个C++语言的死忠,你喜欢C++语言到 ...

  3. windows phone (13) 样式继承

    原文:windows phone (13) 样式继承 在上一遍文章中已经介绍到可以在Resources集合中定义样式,我们也可以在一个样式上引用其他的样式,这就是继承的概念,使用方法是将引用的样式放置 ...

  4. java + memcached安装

    一:安装 (临时获取上手windows实验) 1.下载memcached.exe , 上F:\memcached\ 下 2.在CMD在输入 "F:\memcached\memcached.e ...

  5. 每天一点儿JAVA-向量的操作

    package java_prac2; import java.util.*; /** * <p>Title: 矢量操作</p> * <p>Description: ...

  6. SQL Server 性能调优培训引言

    原文:SQL Server 性能调优培训引言 大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录. 作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤 ...

  7. hdu1372 dfs搜索之国际象棋的马

    原题地址 题意 一个8x8的国际象棋棋盘,你有一个棋子"马".算出棋子"马"从某一格到还有一格子的最少步数. 与普通dfs不同的是,你能走的路线不是上下左右,四 ...

  8. 演示基于SDL2.0+FFmpeg的播放器

    SDL是一个跨平台的渲染组件,眼下已经推出到2.0.3版本号,支持Win/Linux/OSX/Android.网上非常多介绍大多是基于SDL1.2版本号的,与2.0版本号有一定的区别,本文演示怎样用S ...

  9. WPF 3D:使用变换中的TranslateTransform3D

    原文:WPF 3D:使用变换中的TranslateTransform3D 程序效果: WPF 3D中的TranslateTransform3D应该是所有3D变换中最简单的变换,使用起来非常简单,先定义 ...

  10. Shrio登陆验证实例详细解读(转)

    摘要:本文采用了Spring+SpringMVC+Mybatis+Shiro+Msql来写了一个登陆验证的实例,下面来看看过程吧!整个工程基于Mavevn来创建,运行环境为JDK1.6+WIN7+to ...