1.5.0 很抱歉,所有还在用 Code FA 的用户,这个项目的维护并不积极,Code LFA 免费且开源,所有的投入都是我无偿奉献出我的时间,而且我很难从这一切中找到平衡,后续也会面临经济上的一些问题 简单了解过我的朋友可能知道,我手上的项目非常的多,也非常的忙 项目更名为 code_lfa Code LFA(Code Launcher For Android) 如名称所示,这只是一个启动器,并不是自己实现的 VS Code,在过去,它经常会带来一些歧义,更有甚者会有人辱骂我违反了开源协议 我并未使用任何 code-server 的代码,code-server 也是以压缩包的方式存在 Code LFA 中,更何况 Code LFA 本身也是开源的 后续会更新 Readme,部分朋友总是觉得安装依赖是 Code FA 的问题,所以我准备加了一些简单的说明 其实绝大部分的问题,都是大家完全不会使用 Ubuntu 导致的,也不会使用 apt 不要把在 Windows 上使用 VS Code 的习惯带到 Code LFA 上,不要问怎么安装这怎么安装那,遇到问题,请问 GPT : 如何在 Ubuntu 的 VS Code 的 Terminal 中上安装 xxx 主要更新 1.移除 termux 环境 在以往的版本中,Code LFA 其实包含了一个完整的 termux 环境,简单说是,里面内置了一个和 termux 一模一样的类 Linux 环境,而这都是需要修改包名,重新编译 termux-package 的 bootstrap,这个过程非常复杂,而我精力分散后,这部分几乎无法维护,并且会增加 26M 的 apk 体积 这部分去除后,原有的包体积增加只需要 1.6M 相关依赖来源 bash: bash-in-magisk, proot-distro 语法依赖 busybox: busybox-ndk,proot-distro 需要依赖很多安卓本身没有的命令 proot、libtalloc、loader: 这个仍然需要自编译 termux-package,但是好在动态链接很少,不需要经常更新 我也思考过,移除 bash 和 proot-distro,但其实 proot-distro 帮我们处理了很多事情,如果最后仅精简成一行 proot 命令的话,可能启动的 ubuntu 会有一些问题 2.升级 Target SDK 到35 为后续上架 Google Play 做准备 3.升级默认 code-server 到 4.96.2 目前有开发者为 Code LFA 提交了一个 PR 以实现工作流产出 Apk,但我当前没有精力测试 启动界面点击屏幕即可展示/隐藏终端 4.优化启动界面 UI 一个遗留了很久的问题,目前我尽可能让它看起来美观一点,并加了玄学的进度条 也许大家启动失败的时候,我可以根据进度条的位置和终端输出来判断问题 5.移除 Tar 依赖 在最早的版本中,Code LFA 是无法使用直接从 code-server 下载的 .gz 包的,需要先解压,再压缩,因为压缩包中有一些 hardlink,在安卓上不支持 后来改用了 Dart Tar 来处理 现在移除了这部分,尽可能减少 Code LFA 的代码和依赖 直接用 busybox tar 来解压,然后 hardlink 目前是针对这个 code-server 版本写死的,后续可能会解析 tar tvf 的结果,再动态拷贝硬链接的文件, tar tvf 'assets/code-server-4.96.2-linux-arm64.tar.gz' | grep '^hr' tar.txt hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.a link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.a hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/lib/binding/napi-v3/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/watcher.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/obj.target/watcher.node hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/node-addon-api/nothing.a link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/nothing.a hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/obj.target/kerberos.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/kerberos.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/obj.target/watchdog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/watchdog.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/winregistry.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/obj.target/winregistry.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/obj.target/windows_process_tree.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/windows_process_tree.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/obj.target/spdlog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/spdlog.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/obj.target/windows.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/windows.node 其他更新 多 Activty 切换成 Fragment,这个还没确定会保留,目前是为了兼容 AR 眼镜 升级 Ubuntu 到 22.04,版本号没变,但资源更新了一下 代码精简,优化,移除无用依赖 删除了一些 Git 历史文件,所以同步仓库源的朋友需要重新 clone 一下 1.5.0 Sorry to all users still using Code FA, the maintenance of this project is not active. Code LFA is free and open source, all the contributions are my voluntary dedication of time, and it is hard for me to find a balance in all this, and I will also face some financial issues in the future. Friends who know me a little may know that I have many projects on hand and am very busy. The project is renamed to code_lfa Code LFA (Code Launcher For Android) As the name suggests, this is just a launcher, not a self-implemented VS Code. In the past, it often caused some misunderstandings, and some even accused me of violating the open-source agreement. I did not use any code from code-server. Code-server is also included in Code LFA as a compressed package, and Code LFA itself is also open source. The Readme will be updated later. Some friends always think that installing dependencies is a problem with Code FA, so I am preparing to add some simple instructions. In fact, most of the problems are because everyone does not know how to use Ubuntu at all, nor do they know how to use apt. Do not bring the habit of using VS Code on Windows to Code LFA. Do not ask how to install this or that. If you encounter problems, please ask GPT: How to install xxx in the Terminal of VS Code on Ubuntu. Major Updates 1. Remove termux environment In previous versions, Code LFA actually included a complete termux environment. Simply put, it had a built-in Linux-like environment identical to termux, which required modifying the package name and recompiling the bootstrap of termux-package. This process is very complicated, and after my energy was dispersed, this part was almost impossible to maintain, and it would increase the apk size by 26M. After removing this part, the original package size increase only needs 1.6M. Related dependencies sources: bash: bash-in-magisk, proot-distro syntax dependency busybox: busybox-ndk, proot-distro requires many commands that Android itself does not have proot, libtalloc, loader: This still needs to be self-compiled termux-package, but fortunately, there are very few dynamic links, and it does not need to be updated frequently I also thought about removing bash and proot-distro, but in fact, proot-distro handles many things for us. If it is finally streamlined into a single proot command, there may be some problems with the Ubuntu startup. 2. Upgrade Target SDK to 35 Prepare for future listing on Google Play 3. Upgrade default code-server to 4.96.2 Currently, a developer has submitted a PR to Code LFA to produce Apk through workflow, but I do not have the energy to test it at the moment. Click the screen on the startup interface to show/hide the terminal 4. Optimize startup interface UI A long-standing issue, I am currently trying to make it look more aesthetically pleasing and added a mystical progress bar. Maybe when everyone fails to start, I can judge the problem based on the position of the progress bar and the terminal output. 5. Remove Tar dependency In the earliest versions, Code LFA could not use the .gz package downloaded directly from code-server. It needed to be decompressed and then compressed again because there were some hardlinks in the compressed package that were not supported on Android. Later, Dart Tar was used to handle it. Now this part is removed to minimize the code and dependencies of Code LFA. Use busybox tar to decompress directly, and the hardlink is currently hardcoded for this code-server version. Later, it may parse the result of tar tvf and then dynamically copy the hardlinked files. tar tvf 'assets/code-server-4.96.2-linux-arm64.tar.gz' | grep '^hr' tar.txt hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/obj.target/argon2.a link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.a hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/node_modules/argon2/lib/binding/napi-v3/argon2.node link to code-server-4.96.2-linux-arm64/node_modules/argon2/build-tmp-napi-v3/Release/argon2.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/watcher.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/obj.target/watcher.node hrw-r--r-- 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/node-addon-api/nothing.a link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@parcel/watcher/build/Release/nothing.a hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/obj.target/kerberos.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/kerberos/build/Release/kerberos.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/obj.target/watchdog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/native-watchdog/build/Release/watchdog.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/winregistry.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-registry/build/Release/obj.target/winregistry.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/obj.target/windows_process_tree.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/windows-process-tree/build/Release/windows_process_tree.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/obj.target/spdlog.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/spdlog/build/Release/spdlog.node hrwxr-xr-x 0 root root 0 Dec 21 05:39 code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/obj.target/windows.node link to code-server-4.96.2-linux-arm64/lib/vscode/node_modules/@vscode/deviceid/build/Release/windows.node Other Updates Multiple Activities switched to Fragment, this has not been confirmed to be retained, currently for compatibility with AR glasses Upgrade Ubuntu to 22.04, the version number has not changed, but the resources have been updated Code simplification, optimization, removal of unused dependencies Deleted some Git history files, so friends who synchronize the repository source need to re-clone
VS Code安卓版,非官方项目。 可以在本地使用Vs Code,拥有官方VS Code的大部分功能,写博客,写网页,编译代码,它的强大远不止于此。 列出部分功能列表 - 远程仓库:加载 git 代码,就像本地打开工程一样。 - 笔记本:笔记本是包含丰富 Markdown,可执行代码片段,和富文本的文档。 - Github 代码管理:直接从 VS Code 中协作,评论,审查和 Github 拉取请求。 - 扩展:通过扩展可以实现快速的安装与使用官方或三方插件。 - 丰富的代码导航体验:它使开发人员能够在他们编写源代码的同一地点查看源代码。 - 文件图标主题:开发者可以使用扩展下载并应用文件或文件夹的主题包。 - 集成的终端模拟器:从 dom 渲染方式到 canvas 的优化,开发者可以体验快速,方便的全新终端模拟器。 - 远程访问:开发者可以通过 “Remote” 扩展访问服务器的代码,如同打开本地项目一样简单。 ## 实现原理 使用 Linux Arm64 启动一个 code-server,然后使用 WebView 进行加载,WebView 加载的内容完全来自本地,并非套壳在线的网站。 ## 开源地址 https://github.com/nightmare-space/vscode_for_android