用super adb提升開發效率

在日常開發過程中,adb shell的使用是非常頻繁的;但是Android內置的shell功能簡直太弱了,且不說 grep 、awk、find等命令,甚至連 cp 這種命令都不支持;我每次copy文件都只有這樣:

cat file1 > file2n

如果想編輯手機里的某個文件,我真是想撞牆。。首先得adb pull下來,本地修改之後 ,然後adb push上去。。這種效率真是不能忍,多麼希望有一個 vi 來拯救我啊!!

有童鞋說可以用busybox,這玩意兒在root手機上無可挑剔,完美滿足我的需求;但是並不是所有的手機都可以root的,這就有點捉襟見肘了。Google Play商店上有一個 BusyBox Install (No Root) 的應用,看似是解決了非root手機上的busybox使用的問題;但是它用起來極其不方便,這個shell還是手機上的terminal shell?!你特么在逗我?

這怎麼能忍?!自然是挽起袖子自己擼一個!!

為什麼非root的手機對busybox支持不好呢?因為它的那些命令需要寫入 /system/bin 這樣的目錄,而我們是沒有許可權寫的。但是。。我們僅僅是需要執行一個命令而已,為什麼需要把它放到系統的目錄裡面去呢?我們把busybox放在別的目錄,然後導出環境變數,把它添加到path裡面去不就行了么?

這樣安裝的問題就解決了,但是使用起來還是非常不方便。。由於我們的命令不在系統路徑裡面,而adb shell啟動的又不是login shell,不會讀取配置文件,我們只能在shell啟動之後,先輸入:

export PATH=/data/local/tmp/:$PATHn

才能享用busybox的強大功能;雖然已經好了很多,差強人意;但是作為一個完美主義者的我,怎麼能接受每次adb shell之後又敲這麼一段破玩意兒!!

因此接下來的問題是,能不能在啟動shell之後自動輸入一句話,然後再與我們進行交互?這不就是 expect(1) - Linux man pageexpect(1) - Linux man page 的功能么?!無奈,expect在Windows下要單獨安裝,這下就不太好了喲。。於是我上PYPI一搜,果然有個pexpect,是一個python實現,於是接下來的事情就好辦了嘛。。一不做二不休,分分鐘擼完;代碼在這裡:

GitHub - tiann/super-adb: Enhance the adb shell using busybox, No need root.

有了super-adb,你能幹啥?在Android ADB shell上面,你可以用vi編譯文件,享受grep、find、awk以及sed等等一系列方便好用的命令,甚至wget都有!!是不是迫不及待想要試試?哈哈 ^_& 最後給一張圖你們感受下:

渣乎竟然不支持gif。。。無力吐槽,去github上看吧:

GitHub - tiann/super-adb: Enhance the adb shell using busybox, No need root.

推薦閱讀:

想要提高效率,就得不公平
這些APP和服務,或許可以提高你的工作或者生活的效率
我讀泰勒的《科學管理原理》

TAG:Android开发 | 效率 | 开发工具 |