快捷-Mac桌面adb push小工具

最近在Android开发过程中会遇到很多传文件的操作,市面上也有比较多的“文件管理器”,例如锤子的HandShaker,或者谷歌官方的filetransfer,但他们都需要打开“传输文件”这个行为,个人感觉比较繁琐。作为Android开发,使用adb命令行去传输文件是不错的,但每次输入adb push xxx还是挺麻烦,而且必须打开 Terminal 才能运行。为了让所有操作更简化,我做了一个简单的桌面工具,只需要连上手机,正常打开adb,拖到文件到对应区域,则可以实现文件传输。

Macos Adb Helper

由于自己主要是从事Android相关的开发,对于Mac桌面端的开发不太熟悉,但是 Flutter 这个神奇的跨平台框架可以让你稍微消除这个平衡。

实现一键拖拽文件发送到Android手机,主要需要实现的功能有两个:

1、文件拖动功能

2、发送功能

文件拖动功能

拖动功能也不需要自己去写,已经有现成的库 desktop_drop 实现好了该功能。看了下源码与大多数 plugin 一样,通过methed channel进行mac os进行通信,对桌面开发相关Api不太熟,实现原理没有太深究。

发送功能

发送功能主要使用 adb 功能提供的 push命令实现。不过要在 Flutter 上面实现执行命令的功能还是比较简单,只要使用 Process.start('adb', ['push', ...])即可,但是中间会遇到权限不足的问题,报错:ProcessException (ProcessException: Operation not permitted)
需要关闭沙盒权限才行,将com.apple.security.app-sandbox之设为false。 那咱们这个程序就不太安全咯?不知道还有没有更好的办法?个人感觉不大行……

在这里还遇到个比较蛋疼的问题,对于实现大文件的发送,通常时间比较久,使用Process.start没有找到相关的api能够直接拿到进度,不过也就简单实用,问题不大 _#。

效果展示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

项目地址:macos_adb_helper

你可能感兴趣的:(Flutter,macos,android,flutter)