Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alternative of pyatool: adbutils #2

Closed
codeskyblue opened this issue May 14, 2019 · 10 comments
Closed

Alternative of pyatool: adbutils #2

codeskyblue opened this issue May 14, 2019 · 10 comments

Comments

@codeskyblue
Copy link

codeskyblue commented May 14, 2019

很高兴看到你的项目,最近在用你写的findit,正好也看到了这个库。
有没有兴趣看下这个库 https://github.com/openatx/adbutils
我前段时间基于adb protocol实现的一个adb client库。
基于协议的好处可能就是不用管客户端的adb冲突问题了。另外也可以实现边下载边push的功能。

非常期待你的参与

@codeskyblue codeskyblue changed the title Alternative of pyatools: adbutils Alternative of pyatool: adbutils May 14, 2019
@williamfzc
Copy link
Owner

williamfzc commented May 14, 2019

谢谢~ 我之前有看过 https://github.com/Swind/pure-python-adb ,感觉是很好的思路。

我比较关心的是,adbutils的预期定位是什么样的呢?之前我有跟 Swind 那边沟通过:Swind/pure-python-adb#3 ,他的想法是只想做一个干净的adb客户端,所以合入类似pyatool的功能不是很合适。

@codeskyblue
Copy link
Author

pure-python-adb 我之前放到atx中用过一段时间,有socket无法关闭的问题,我之前提过issue给他,还有一些其他问题我暂时想不起来了,反正没这么好修。后来我突然意思到但是这个库是port的adbkit, 而adbkit是nodejs这种风格写的,直接port肯定是写不好的。所以借鉴了其中的一些代码,再起炉灶。目前在atx项目中用的还挺好的。

@codeskyblue
Copy link
Author

adbutils的目标其实跟你这个文档写的差不多,提供基础的adb功能,加一些常用的功能,比如list package

@codeskyblue
Copy link
Author

subprocess我之前也用过一段时间,经常被吐槽电脑adb没找到,或者经常这个adb把那个adb杀了

@codeskyblue
Copy link
Author

感觉pure-python-adb的库的坑已经快被我填完了

@codeskyblue
Copy link
Author

非常期待你的参与,应该可以给你直接push代码的权限

@williamfzc
Copy link
Owner

好的,我明白了。其实在pyatool完成之后我就在想换成python client的事情,但是觉得吃力不讨好就一直没做哈哈哈。这个项目倒是挺符合我的预期的。
后面我会看看这个项目的设计风格,看看怎么接入比较好。

@williamfzc
Copy link
Owner

williamfzc commented May 15, 2019

我的想法可能更偏向于,所有非adb原生的、我们自己定制的方法独立出来作为一个模块。这样的代码结构比较干净,与adb原生的功能隔离开,另外也方便其他人的参与(运营项目这一块我不是很擅长,pyatool并没有达到我的预期哈哈)。

python调用:

d = adb.device(serial="33ff22xx")
d.ext.install_from('www.abcd.com/def.apk')

命令行这边的调用,其实我并不是很看好这种方式。我在实践上遇到两个问题:

  • 要支持丰富的参数化势必会让调用过程变得复杂,而复杂的功能别人不会选择通过命令行来用。毕竟直接新建一个python脚本或者在python console里做这个事情并不困难;
  • 对于自定义方法而言,后面涉及到的奇怪操作可能会很多(例如,很多个参数、参数类型奇特等等),需要考虑的设计问题很多;

所以我比较担心的是,这种方式其实是伪需求。当然,像从url安装应用之类的简单功能通过命令行调用是没什么问题。

另外,我感觉加入logger还是有必要的,否则调试还是有点麻烦。加上然后默认关闭就行~

@codeskyblue
Copy link
Author

我觉得你说的那些扩展,他们为什么不自己定义个函数呢,更方便

@williamfzc
Copy link
Owner

merged: openatx/adbutils#5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants