使用Android手機查看和修改Excel文件、PowerPoint文件並鏈接幻燈機進行演示等辦公方式想必你們已經有所瞭解。今天介紹一下怎樣使用Android進行軟件開發。node
使用Android進行軟件開發最重要的工具是命令行終端。Termux就是其中功能最豐富、生態最好的命令行終端。android
Termux能夠經過F-Droid直接下載apk文件進行安裝,或從Google Play Store下載。c++
Termux附帶包管理器,可以下載常見的Linux命令行工具,如openssh, wget, curl, git, clang, ninja等。git
pkg install openssh wget curl git clang ninja
有了命令行,就能輸入命令了,可是好像輸入法沒有上下左右鍵、沒有Ctrl鍵,輸入命令很不方便。這個時候能夠安裝Hacker's Keyboard輸入法。這個輸入法包含PC鍵盤上的全部按鍵。github
若是你們使用的手機正好是和筆者的BlackBerry Key²同樣擁有實體鍵盤,能夠經過修改~/.termux/termux.properties文件,在Termux中增長缺乏的符號。詳細參考這裏。web
extra-keys = [ \ ['~','`','$','%','^','&','=','|','BACKSLASH'], \ ['ESC','<','>', '{', '}','HOME','UP','END','PGUP'], \ ['TAB','CTRL','ALT', '[', ']','LEFT','DOWN','RIGHT','PGDN']]
OpenSSH是Termux中必裝軟件,安裝以後能夠啓動SSH服務器,並經過SSH客戶端如PuTTY遠程控制手機,並能經過SCP客戶端如WinSCP訪問手機上的Termux內部數據和SD卡目錄。還能從手機遠程鏈接其餘開啓SSH服務器的設備。npm
安裝以後,運行sshd便可。登陸須要在~/.ssh/authorized_keys中和一般的Linux同樣配置公鑰。json
Termux能夠經過Termux:Widget來將一些用戶自定義的命令行操做變成Android Widget放在桌面上方便點擊執行。sshd應該是必備的條目。vim
Termux中自帶的文本編輯器爲vi。若是你對vim和emacs不熟悉,micro是一個優良的命令行文本編輯器。安裝方法以下:api
pkg install micro
使用方法很是簡單,手指點擊便可將光標移動到指定位置,Ctrl+S保存,Ctrl+Q退出,Alt+G顯示經常使用命令,Ctrl+G顯示幫助。
須要注意的是,默認模式下是不會軟換行的。另外就是輸入'"([等字符會自動輸入配對的符號。建議修改這些配置。修改地址爲~/.config/micro/settings.json,能夠修改下列對應行的內容:
"autoclose": false, "softwrap": true,
此外,在SSH鏈接時micro默認沒法複製粘貼,由於光標被micro佔用。此時能夠按住Shift鍵再進行復制粘貼,如在PuTTY中按住Shift鍵鼠標選擇複製,按住Shift鍵鼠標右鍵粘貼。
nnn是Termux上的命令行文件管理器,可用於進行快速文件夾跳轉。
安裝方式
pkg install nnn
常見的操做包括上下箭頭切換光標,左箭頭進入上級文件夾,右箭頭或回車進入當前光標所在文件夾或打開文件,Q退出,Ctrl+G退出並進入到當前文件夾。注意Ctrl+G的功能須要配置。須要在~/.bash_profile中加入以下函數:
n() { export NNN_TMPFILE=${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd nnn "$@" if [ -f $NNN_TMPFILE ]; then . $NNN_TMPFILE rm -f $NNN_TMPFILE > /dev/null pwd >&2 fi }
Termux:API能夠實現一些Android功能的自動化,但其中最重要的功能是在PC和Android設備之間進行剪貼板的同步。
安裝方式:先下載apk安裝以後再在Termux中運行
pkg install termux-api
經過SSH執行下面的命令能夠在終端顯示Android剪貼板的內容
termux-clipboard-get
經過SSH執行下面的命令能夠將指定內容設置到Android剪貼板上
termux-clipboard-set <內容>
clang的使用方式和正常同樣。Termux不支持gcc,通常都使用clang進行編譯。須要注意的是Termux中的系統libc++庫不支持靜態庫,只支持動態庫,標準C庫爲Bionic。雖然使用跨平臺編譯器和musl libc也能編譯出可以在Termux上運行的程序,可是存在一些問題。Termux不支持glibc。
安裝方式
pkg install clang llvm lld
mono沒有包支持。可是有社區版本,如筆者編譯的termux-mono以及一些在PRoot運行的Arch Linux和Ubuntu中運行的版本。如下爲termux-mono最新版本,不須要PRoot便可直接運行。
雖然Termux中沒有JDK, Android SDK和Android NDK,可是仍然能夠進行Android App開發。其中JDK可使用ecj代替,Android SDK可使用獨立的dx, aapt和apksigner代替,Android NDK可使用clang代替。使用這些軟件經過調用命令行就能生成.so文件, .dex文件和.apk文件。
安裝方式
pkg install ecj dx aapt apksigner
須要注意的是,Android SDK API 28引入的d8如今還不支持,因此編譯Java 8和以後版本的代碼會比較困難。
Termux內部查看和編輯代碼不方便;Termux中的文件沒法被外部的App所查看和編輯;SDCard模擬分區一般是FAT32格式的不支持執行權限,代碼放在其中很是不方便。
因而有人想到經過在Termux中運行一個服務器,而後在外部鏈接服務器進行文件編輯的方法。爲了實現相似於Visual Studio Code的編輯體驗,他直接使用了Visual Studio Code的Monaco Editor,在Termux中經過nodejs運行一個HTTP服務器,並在瀏覽器中進行訪問。他的代碼在這裏。可是效果比較差,只適合在平板上運行。
後面又有人又作了一個相似的程序,就是Wcode。
安裝方式
pkg install nodejs npm install -g wcode
筆者對Wcode進行了一些修改,修正了一些bug,並使其在手機上能更好地運行。
不少經常使用命令很長,輸入不變,能夠經過bash alias來進行簡記。
打開~/.bash_profile,便可增長alias指令。筆者的alias指令以下:
alias cg=termux-clipboard-get alias cs=termux-clipboard-set alias m=micro alias i='ifconfig | grep '\''inet '\'' | sed '\''s/ *inet//g'\'' | cut -d'\'' '\'' -f2' alias p='ping www.bing.com' alias w=wcode
其中i爲顯示當前IP地址。
以後退出Termux再進入,便可經過簡短命令來運行程序了。