使用Android手機進行開發的嘗試

使用Android手機查看和修改Excel文件、PowerPoint文件並鏈接幻燈機進行演示等辦公方式想必你們已經有所瞭解。今天介紹一下怎樣使用Android進行軟件開發。node

Termux

使用Android進行軟件開發最重要的工具是命令行終端。Termux就是其中功能最豐富、生態最好的命令行終端。android

Termux能夠經過F-Droid直接下載apk文件進行安裝,或從Google Play Store下載。c++

Termux

Termux附帶包管理器,可以下載常見的Linux命令行工具,如openssh, wget, curl, git, clang, ninja等。git

pkg install openssh wget curl git clang ninja

Hacker's Keyboard

有了命令行,就能輸入命令了,可是好像輸入法沒有上下左右鍵、沒有Ctrl鍵,輸入命令很不方便。這個時候能夠安裝Hacker's Keyboard輸入法。這個輸入法包含PC鍵盤上的全部按鍵。github

Hacker's Keyboard

Hacker's Keyboard(2)

若是你們使用的手機正好是和筆者的BlackBerry Key²同樣擁有實體鍵盤,能夠經過修改~/.termux/termux.properties文件,在Termux中增長缺乏的符號。詳細參考這裏web

extra-keys = [ \
['~','`','$','%','^','&','=','|','BACKSLASH'], \
['ESC','<','>', '{', '}','HOME','UP','END','PGUP'], \
['TAB','CTRL','ALT', '[', ']','LEFT','DOWN','RIGHT','PGDN']]

OpenSSH

OpenSSH是Termux中必裝軟件,安裝以後能夠啓動SSH服務器,並經過SSH客戶端如PuTTY遠程控制手機,並能經過SCP客戶端如WinSCP訪問手機上的Termux內部數據和SD卡目錄。還能從手機遠程鏈接其餘開啓SSH服務器的設備。npm

安裝以後,運行sshd便可。登陸須要在~/.ssh/authorized_keys中和一般的Linux同樣配置公鑰。json

Termux能夠經過Termux:Widget來將一些用戶自定義的命令行操做變成Android Widget放在桌面上方便點擊執行。sshd應該是必備的條目。vim

micro

Termux中自帶的文本編輯器爲vi。若是你對vim和emacs不熟悉,micro是一個優良的命令行文本編輯器。安裝方法以下:api

pkg install micro

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

nnn是Termux上的命令行文件管理器,可用於進行快速文件夾跳轉。

安裝方式

pkg install nnn

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

Termux:API能夠實現一些Android功能的自動化,但其中最重要的功能是在PC和Android設備之間進行剪貼板的同步。

安裝方式:先下載apk安裝以後再在Termux中運行

pkg install termux-api

經過SSH執行下面的命令能夠在終端顯示Android剪貼板的內容

termux-clipboard-get

經過SSH執行下面的命令能夠將指定內容設置到Android剪貼板上

termux-clipboard-set <內容>

clang

clang的使用方式和正常同樣。Termux不支持gcc,通常都使用clang進行編譯。須要注意的是Termux中的系統libc++庫不支持靜態庫,只支持動態庫,標準C庫爲Bionic。雖然使用跨平臺編譯器和musl libc也能編譯出可以在Termux上運行的程序,可是存在一些問題。Termux不支持glibc。

安裝方式

pkg install clang llvm lld

Mono

mono沒有包支持。可是有社區版本,如筆者編譯的termux-mono以及一些在PRoot運行的Arch Linux和Ubuntu中運行的版本。如下爲termux-mono最新版本,不須要PRoot便可直接運行。

termux-mono

Android App開發

雖然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和以後版本的代碼會比較困難。

Wcode

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,並使其在手機上能更好地運行。

Wcode

Wcode(2)

快捷輸入

不少經常使用命令很長,輸入不變,能夠經過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再進入,便可經過簡短命令來運行程序了。

相關文章
相關標籤/搜索