当前位置: 代码迷 >> Android >> 关于 pc程序 通过ADB 控制 android 操作系统的一些疑问,该如何处理
  详细解决方案

关于 pc程序 通过ADB 控制 android 操作系统的一些疑问,该如何处理

热度:326   发布时间:2016-05-01 21:07:01.0
关于 pc程序 通过ADB 控制 android 操作系统的一些疑问
大家好,我目前在做一个项目 用C# 写一个 Winform程序,通过调用adb 来控制 android操作系统的手机。

 目前遇到了几个无法解决的问题 ,请各位给一些帮助。谢谢。

  1. 中文支持问题。 比如 pull push命令 如果操作对象是中文文件或拥有中文路径。 我的编译环境是utf-8编码, adb 的运行环境 是 GBK 然后android 内部也是utf-8 就会出现各种乱码,或者我写进去是乱码,或者我读出来是乱码。

  请问有没有某种方法,可以直接解决这种乱码问题。


  2. Forward 命令。 也就是 端口映射 。 可以让 手机内的程序,直接通过端口映射 与pc上的软件 做到数据socket传输。
  但是我发现这种连接 极不稳定,连接上了 传输速度不可控,100k的数据 有时候是几十秒 有时候是一秒。而同样的代码,有些手机 就完全读取到数据。
  是不是我的方式有问题。请各位不吝赐教。  




  3.除了 adb 是否还有其他途径可以让 pc端程序控制android 操作系统呢。 谢谢。

------解决方案--------------------
1. 处理文件,都是自己处理socket在手机端,不用adb pull什么。
2. 是啊,没有好方法,你改用wifi吧,不要用adb了
3. wifi和蓝牙啊
------解决方案--------------------
1.只要android端的路径不是中文就没事。
2.这个没办法

感觉还是蓝牙传输稳定。
------解决方案--------------------
我们处理这种问题,首先把adb进程kill掉,然后再枚举,活着触发下即插即用设备的改变情况在win32下,不过这种可能性比较小了,因为处理USB插入事件时就考虑刷新adb除非你系统有问题,还有如果你做同步软件最好把adb的源码合并到项目,我们早期的软件也是adb外挂,但这样不稳定,毕竟跨进程的,直接分析逻辑编译到自己的exe中比较可靠。
  相关解决方案