在安卓手机上通过 Termux 运行编译/运行 .NET 应用
在安卓手机上通过 Termux 运行编译/运行 .NET 应用
Termux 简介
Termux 可谓安卓上的开发神器, 注意, 不是开发安卓应用, 是在安卓手机上做开发的神器, 它的官方简介如下:
Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.
简单说它就是一个带有最小化 Linux 系统环境的终端模拟器, 支持 APT 包管理器, 可以通过 apt
命令安装自己需要的 Linux 应用。
如果还没有接触过 Termux ,可以看一下这篇 《Termux 学习笔记》 , 介绍的非常全面。
Termux 自带了很多常用的应用, 不仅包括 git
, wget
, curl
等常用的工具软件, 而且也有 nodejs
, phtyon
, perl
, cmake
, clang
等开发软件, 如果要在手机上运行 nodejs 进行前端开发的话, 只需要在 Termux 中输入 apt install nodejs
即可。
安装 Mono 环境
作为一名 .NET 开发者, 也希望能够在安卓手机上运行 .NET 应用, 不过目前 Termux 并没有自带相关的程序包, 所以安装起来稍微有一些麻烦。 安卓系统是基于 Linux 系统的, 而 Linux 系统上的 .NET 实现是 Mono 。 已经有热心网友 IanusInferus 成功在 Termux 上编译安装 mono 了, 并且提供了编译好的 termux-mono 下载。
在手机上安装编译好的 termux-mono
, 只需要在手机上输入如下命令:
cd $PREFIX
wget https://github.com/IanusInferus/termux-mono/releases/download/v20191019/mono-termux.6.4.0.198.tar.xz
tar Jxf mono-termux.6.4.0.198.tar.xz
rm mono-termux.6.4.0.198.tar.xz
然后在 ~/.bash_profile
文件中添加一行, 将 mono 添加到 $PATH
变量:
export PATH=$PREFIX/local/bin:$PREFIX/bin:$PREFIX/bin/applets:$PATH
完成之后,可以退出 termux 再打开, 分别输入 mono --version
验证一下, 在手机上的截图如下所示:
编译运行 .NET 应用
在手机上编译一个 Hello world
应用试一下, 截图如下:
其它扩展
Termux 有很强的扩展性, 比如可以安装 htop
来查看系统资源, 如下图所示:
- 从Android短信漏洞到手机钓鱼木马
- 老外手把手带你搭建DMZ渗透测试实验室(Part 1,2)
- 与机器学习算法有关的数据结构
- 32764端口后门重出江湖,影响多款路由器
- 安全科普:SQLi Labs 指南 Part 1
- Do You Kown Asp.Net Core - 根据实体类自动创建Razor Page CURD页面模板
- 2014上半年国内安卓银行应用隐私泄露和安全隐患研究报告
- Do You Kown Asp.Net Core -- Asp.Net Core 2.0 未来web开发新趋势 Razor Page
- Metasploitable2使用指南
- 在渗透测试中使用fuzz技术(附windows安装指南)
- 黑了记者:写个恶意软件玩玩(二)
- 开源BUG跟踪平台JIRA目录遍历漏洞分析
- 黑了记者:写个恶意软件玩玩(一)
- 使用 Python 工具 Locust 进行负载测试
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 整数拆分
- Android Drawerlayout实现侧滑菜单效果
- 分割等和子集
- LeetCode--打家劫舍问题
- Android 中ListView和GridView赋值错位
- 谈谈类加载器
- Android中AlarmManager+Notification实现定时通知提醒功能
- Java垃圾回收相关面试题
- Android中backgroundDimEnabled的作用
- 甲基化相关的习题背景补充
- Android 完全退出的实例详解
- Android 双击Back键退出应用的实现方法
- 2020最全Java面试题--基础篇
- Android开发之背景动画简单实现方法
- 15.深入k8s:Event事件处理及其源码分析