vscode_remote在Android上运行记录
Contents
2020-11-05 更新
vscode很早之前就支持aarch64, 不需要再下载VSCode Insiders
.
初衷
自从VSCode增加了remote功能后, 可以把界面和后端分离, 而且只需要通过ssh协议连接, 最近突发奇想, 能不能在Android手机上建立一个ssh端口, 然后使用VSCode在手机上跑一个server, 出门的时候可以通过连接Android来编写和阅读代码, 毕竟手机性能也不差.
我的手机是OnePlus7 Pro 官方系统, 没有root.
Android sshd准备 - Termux
Termux我已经在DevOps的苦楚与Termux的使用这篇博客中介绍过了, 在了解过termux 的功能后, 我了解到了可以使用termux开启一个ssh服务器, 具体的方法就就是:
1 | $ pkg install openssh-server |
你可以使用telnet来检查ssh服务的开启情况.
而后, 我们需要创建一个ssh密钥对, 或是使用原有的ssh密钥, 将公钥拷贝到手机上,
可以通过adb push
将密钥传递至手机, 以下命令第一次运行需要手打, 注意不要写错.
1 | $ termux-setup-storage |
然后, 你就可以在自己的机器中连接了:
1 | ~ ❤ ssh u0_a177@10.249.131.26 -p 8022 -i ~/.ssh/id_rsa_raspberry |
我也保存了一份ssh的配置文件, 大致如下
1 | Host oneplus |
VSCode第一次试连接
注意看下面的错误, aarch64仅在 VS Code Insiders 中支持,
大家可以在这里下载https://code.visualstudio.com/insiders/.
VSCode Insiders第一次试连接
这次的错误是node没有办法跑起来:
我直接跑node程序, 发现也无法运行.
这次猜想应该是Android运行时库缺少了某些文件, 我没有死心, 转而想要寻找Android上的容器.
Android容器使用
我找到一个可以跑的Android容器https://github.com/nmilosev/anyfed 原理的话, 是利用proot, 用户空间的chroot, 没有root权限也可以.
可以看到它下载了一个Fedora镜像.
- 设置cpu
- 下载完成
- 配置sudo与proot
直接启动会有报错,
需要:
1 | $ unset LD_PRELOAD |
在anyfed中直接启动sshd会提示没有这条命令, 因此需要安装openssh-server
1 | [root@anyfed home]$ sshd |
创建好相应的ssh config文件就可以登录了, 注意, 这里是root用户:
1 | Host oneplus2 |
1 | ~ ❤ ssh oneplus2 |
VSCode Insiders第二次试连接
这次再运行就成功了
我直接clone一份代码, 用VSCode打开
会提示我们安装Python插件
我觉得编码体验还是可以的, 相比于我的8G x1c, 手机的硬件配置可以说相当不错了.
总结
这篇文章其实就是探索了一下VSCode Remote在手机上运行的情况, 虽然不能直接运行, 但是我们可以在手机上起一个容器, 通过容器中的Linux运行node, 目前来看, 运行VSCode Remote的后端 是完全没有问题的.