使用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再进入,便可经过简短命令来运行程序了。