快捷-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能夠直接拿到進度,不過也就簡單實用,問題不大 ^_^#。

效果展示 example

項目地址:macos_adb_helper

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章