当前位置: 首页 > news >正文

Android 运行 deno 的新方法 (3): Termux 胖喵安初

梅开 3 度 !! 这是第 3 篇在 Android 运行 deno 的文章了, 之前的两篇是 《在 Android 运行 deno (aarch64) 的新方法 (glibc-runner)》 《在 Android 运行 GNU/Linux 二进制程序 (proot)》

deno 是个好东西, 可以很方便的编写和运行 js 程序. 感谢 Termux ! 不久前 deno 终于直接编译到 Android 成功了 !! 现在可以直接在 Termux 中安装并运行 deno 啦 ~

但是, 如何在自己的 app 中使用 (运行) deno 呢 ? 胖喵拼音 (pmim) 依赖 deno, 当时 deno 还只是 1.x 版本, 如今 deno 已经升级到 2.x 版本了, 情况发生了变化. 直接编译 deno 超级麻烦 (Android), 窝尝试过, 但是失败了. 所以, 换一种方法, 把 Termux 中编译好的 deno 直接拿过来运行 !

胖喵安初 (azi) 是一个方便在 app 中建立类似 Termux 环境的库, 所以就用胖喵安初来测试运行啦 ~

这里是 穷人小水滴, 专注于 穷人友好型 低成本技术. (本文为 78 号作品. )


相关文章:

  • 《小水滴系列文章目录 (整理)》 https://blog.csdn.net/secext2022/article/details/148834199
  • 《在 Android 设备上写代码 (Termux, code-server)》 https://blog.csdn.net/secext2022/article/details/148369561
  • 《胖喵安初 (azi) Android 应用初始化库 (类似 Termux)》 https://blog.csdn.net/secext2022/article/details/149056417
  • 《在 Android 运行 deno (aarch64) 的新方法 (glibc-runner)》 https://blog.csdn.net/secext2022/article/details/139013270
  • 《在 Android 运行 GNU/Linux 二进制程序 (proot)》 https://blog.csdn.net/secext2022/article/details/136333781
  • 《高版本 Android 如何访问 sdcard/Android/data 目录中的文件 (翻译)》 https://blog.csdn.net/secext2022/article/details/136335220

目录

  • 1 打包 deno (Termux)
  • 2 测试运行 (胖喵安初 azi)
  • 3 总结与展望

1 打包 deno (Termux)

首先, 打开 Termux.

关于如何安装 Termux 请见文章 《在 Android 设备上写代码 (Termux, code-server)》.

在这里插入图片描述

安装 deno 和 ldd, 命令:

pkg install deno ldd

在这里插入图片描述

尝试运行一下 deno:

deno --version

在这里插入图片描述

然后列出 deno 依赖的库文件 (.so):

ldd /data/data/com.termux/files/usr/bin/deno | grep termux

在这里插入图片描述

复制相关文件到 sdcard:

mkdir -p /sdcard/test-deno2
cp /data/data/com.termux/files/usr/bin/deno /sdcard/test-deno2
cp /data/data/com.termux/files/usr/lib/libz.so.1 /sdcard/test-deno2
cp /data/data/com.termux/files/usr/lib/libsqlite3.so /sdcard/test-deno2
touch /sdcard/test-deno2/azi_init.sh

在这里插入图片描述

然后编辑文件 /sdcard/test-deno2/azi_init.sh:

# test deno2 azi_init.sh# 复制 deno
cp $AZI_DIR_SDCARD_DATA/demo/deno $AZI_DIR_APP_DATA
cp $AZI_DIR_SDCARD_DATA/demo/libz.so.1 $AZI_DIR_APP_DATA
cp $AZI_DIR_SDCARD_DATA/demo/libsqlite3.so $AZI_DIR_APP_DATA# 运行 deno
export LD_LIBRARY_PATH=$AZI_DIR_APP_DATA/system/bin/linker64 $AZI_DIR_APP_DATA/deno --version

可以看到, 只有 5 行简单的代码 (shell 脚本).

在这里插入图片描述

最后把这些文件压缩成一个 zip 压缩包:

在这里插入图片描述

获得文件 test-init.azi.zip, 撒花 ~

2 测试运行 (胖喵安初 azi)

然后使用 胖喵安初 进行测试. 关于胖喵安初详见文章 《胖喵安初 (azi) Android 应用初始化库 (类似 Termux)》.

在这里插入图片描述

将上面的压缩包文件复制到 /sdcard/Android/data/io.github.fm_elpac.azi_demo/cache/test-init.azi.zip.

关于如何访问 Android/data 目录请见文章 《高版本 Android 如何访问 sdcard/Android/data 目录中的文件 (翻译)》.

在这里插入图片描述

然后删除 /sdcard/Android/data/io.github.fm_elpac.azi_demo/files 中的文件.


准备完毕, 然后关闭 胖喵安初 (azi demo), 并重新打开.

然后上面写的 azi_init.sh 脚本就会运行 !

在这里插入图片描述

运行成功后就会创建 azi/azi_ok 文件.

在这里插入图片描述

其中 cache/azi_log 是运行日志:

在这里插入图片描述

在这里插入图片描述

打开 -o.txt 文件:

在这里插入图片描述

deno 已经成功运行:

deno 2.2.13 (stable, release, aarch64-linux-android)
v8 13.5.212.10-rusty
typescript 5.7.3

撒花 ~

3 总结与展望

在 Android 上不仅可以在 Termux 中安装运行 deno, 还可以把 deno 拿出来, 在自己的 app 中运行. 使用 胖喵安初 (azi) 可以方便的进行测试.

更有趣的是, 上述操作可以全部在一只手机上完成 !! 距离我们在手机上写代码的 “伟大” 计划, 又近了一步 (狗头)

可爱的 deno 已经在小巧的 Android 手机上跑起来了, 带来了更多可能 ~


本文使用 CC-BY-SA 4.0 许可发布.

http://www.dtcms.com/a/311370.html

相关文章:

  • Flutter镜像替换
  • 【Android】通知
  • 历史数据分析——中青旅
  • 【Linux网络】:UDP(传输层协议)
  • 大数据之路:阿里巴巴大数据实践——OneData数据中台体系
  • python测试总结
  • AIDL当Parcelable序列化的数据类通信时报“Class not found when unmarshalling“找不到该类时的解决方案
  • 【一天一个知识点】RAG遇见推理
  • Linux内核进程管理子系统有什么第十六回 —— 进程主结构详解(12)
  • AIGC系列:本地部署大模型
  • appium中urllib3.exceptions.LocationValueError: No host specified. 的错误解决办法
  • 第15届蓝桥杯Pthon青少组_国赛_中/高级组_2024年9月7日真题
  • 【Linux】多路转接之epoll
  • 使用AWS免费EC2自建RustDesk远程桌面连接服务
  • 什么是AWS Region和AWS Availability Zones
  • 全球化 2.0 | 中国香港教育机构通过云轴科技ZStack实现VMware替代
  • AWS上部署Spring Boot应用的完整指南
  • Allegro-导入网表的两种方式
  • GaussDB having 的用法
  • Ubuntu系统VScode实现opencv(c++)图像翻转和旋转
  • 电力系统分析笔记:发电机与变压器的数学建模与运行状态详解
  • Python打卡Day30 模块和库的导入
  • react 和 react native 的开发过程区别
  • 【相机】曝光时间长-->拖影
  • 【学习笔记】MySQL技术内幕InnoDB存储引擎——第7章 事务
  • openwrt下安装istore(基于pve)
  • Ollama前端:open-webui
  • [Linux入门] Ubuntu 系统中 iptables 的配置与使用
  • JavaScript:Ajax(异步通信技术)
  • 学习模板元编程(2)std::true_type/false_type