<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mobile Apps on Ivon's Blog</title><link>https://ivonblog.com/en-us/categories/mobile-apps/</link><description>Recent content in Mobile Apps on Ivon's Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</managingEditor><webMaster>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</webMaster><copyright>You are welcome to share articles of Ivon's Blog (ivonblog.com). Please include the original URL when citing articles, and abide by CC BY-NC-ND 4.0 license. For commercial use, please write an e-mail to me.</copyright><lastBuildDate>Sun, 25 Aug 2024 21:00:00 +0800</lastBuildDate><atom:link href="https://ivonblog.com/en-us/categories/mobile-apps/index.xml" rel="self" type="application/rss+xml"/><item><title>Running Scrcpy client on an Android phone with Termux to remotely control another Android phone</title><link>https://ivonblog.com/en-us/posts/termux-scrcpy/</link><pubDate>Sun, 25 Aug 2024 21:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/termux-scrcpy/</guid><description>&lt;p&gt;&lt;a href="https://ivonblog.com/posts/termux-scrcpy" target="_blank" rel="noreferrer"&gt;中文版本&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ivonblog.com/posts/scrcpy-usage/" target="_blank" rel="noreferrer"&gt;Scrcpy&lt;/a&gt; is a software that mirror the screen of an Android phone to your PC, and you can control the phone from your PC. Currently, Scrcpy is only available on Linux/Windows/macOS. Can we run Scrcpy client directly on an Android phone to control another Android phone?&lt;/p&gt;
&lt;p&gt;Yes, but I&amp;rsquo;m not happy with the current solutions, there is no working open source app for Scrcpy for Android (the ones I found on Github are all abandoned), but there are third-party apps that integrate Scrcpy, for example: &lt;a href="https://play.google.com/store/apps/details?id=com.duplila.screenshare" target="_blank" rel="noreferrer"&gt;Duplila&lt;/a&gt;, &lt;a href="https://github.com/didjdk/adbhelper" target="_blank" rel="noreferrer"&gt;甲壳虫ADB助手&lt;/a&gt;, &lt;a href="https://nightmare.press/home.html" target="_blank" rel="noreferrer"&gt;魇·无界投屏&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update: Finally we got real open-source Scrcpy for Android! Check out this: &lt;a href="https://github.com/zwc456baby/ScrcpyForAndroid" target="_blank" rel="noreferrer"&gt;https://github.com/zwc456baby/ScrcpyForAndroid&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Although they are free to use, they are all proprietary software, and Duplila&amp;rsquo;s advanced features charge a monthly fee for $2? 甲壳虫ADB助手 only costs $1.&lt;/p&gt;
&lt;p&gt;So I decided to use my open source solution: Using Termux X11 to run Scrcpy. There are ADB and Scrcpy packages in Termux&amp;rsquo;s official repository, so there&amp;rsquo;s no need to install a proot-distro to run Scrcpy.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-scrcpy/images/Screenshot_20240825-205008.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 width="308"
 height="720"&gt;&lt;figcaption&gt;Running Scrcpy in Termux X11 on an Android phone to remotely control another Android phone.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://ivonblog.com/posts/termux-desktop-environment/" target="_blank" rel="noreferrer"&gt;Setup XFCE4 Desktop for Termux&lt;/a&gt; and install Termux X11.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install the following packages&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pkg install scrcpy android-tools&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Pair with another Android phone via wireless ADB&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Enable wireless debugging in Developer Settings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb pair &amp;lt;IP&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;adb connect &amp;lt;IP&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;
&lt;p&gt;Launch XFCE4 in Termux.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start Scrcpy from Termux terminal:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;GALLIUM_DRIVER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;virpipe scrcpy -m &lt;span class="m"&gt;1080&lt;/span&gt; -b 5M --audio-codec&lt;span class="o"&gt;=&lt;/span&gt;aac --fullscreen&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="6"&gt;
&lt;li&gt;The Scrcpy window will now appear in Termux X11! For better touch control, go to Termux X11 settings and enable Direct Touch mode.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-scrcpy/images/Screenshot_20240825-202930.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 width="308"
 height="720"&gt;&lt;/figure&gt;&lt;/li&gt;
&lt;/ol&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/termux-scrcpy/featured.webp"/></item><item><title>Using KDE Connect without Wifi. Control your computer and transfer files wirelessly from your mobile phone</title><link>https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/</link><pubDate>Wed, 15 Nov 2023 10:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/</guid><description>&lt;p&gt;&lt;a href="https://ivonblog.com/posts/use-kde-connect-without-wifi" target="_blank" rel="noreferrer"&gt;中文版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;KDE Connect is a cross-platform file transfer software that allows you to control your computer in addition to transferring files. For more information on how to use KDE Connect, see &lt;a href="https://ivonblog.com/posts/how-to-use-kde-connect" &gt;my previous post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By default, KDE Connect requires Wifi to connect to other devices, but what if Wifi doesn&amp;rsquo;t work?&lt;/p&gt;
&lt;p&gt;For example, you want to use KDE Connect APP&amp;rsquo;s slidershow pointer to control your computer, but they are in different networks, the computer doesn&amp;rsquo;t have Wifi, and the hotspot of your mobile phone can&amp;rsquo;t be used, how to connect?&lt;/p&gt;
&lt;p&gt;Or you want to transfer files between your phones and computer without connecting to Wifi.&lt;/p&gt;
&lt;p&gt;This could be solved by using the virtual lan software. The KDE Wiki recommends OpenVPN, but I use a virtual lan as a solution.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://ivonblog.com/posts/setup-tailscale/" target="_blank" rel="noreferrer"&gt;TailScale&lt;/a&gt; or &lt;a href="https://ivonblog.com/posts/setup-zerotier/" target="_blank" rel="noreferrer"&gt;ZeroTier&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the computer is yours, install TailScale to log in your account.&lt;/p&gt;
&lt;p&gt;For public computers, you can install ZeroTier and anonymously add your device to the ZeroTier Network with Network id.&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;
&lt;p&gt;Connect your phone and computer to the virtual LAN.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the firewall on your computer to allow KDE Connect to pass through, following the instructions in the &lt;a href="https://userbase.kde.org/KDEConnect" target="_blank" rel="noreferrer"&gt;KDE Wiki&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open KDE Connect APP, tap Add Device by IP.
&lt;img src="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/images/Screenshot_20231115-141816.png" width=600 alt=""&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter your computer&amp;rsquo;s virtual lan IP (assinged by ZeroTier or TailScale) to connect&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;img src="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/images/Screenshot_20231115-141841.png" width=600 alt=""&gt;
&lt;img src="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/images/Screenshot_20231115-141900.png" width=600 alt=""&gt;
&lt;ol start="7"&gt;
&lt;li&gt;TailScale or ZeroTier on the computer can always be connected to the VPN and it will not interfere with the computer&amp;rsquo;s external connection.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Since KDE Connect APP will always stay awake in the Android background, KDE Connect will automatically connect to the computer when you connect your phone to the VPN.
&lt;img src="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/images/Screenshot_20231115-143054.png" width=600 alt=""&gt;&lt;/p&gt;
&lt;p&gt;When transferring files using a virtual LAN, the speed of KDE Connect depends on the speed of the uploading network on the sending side.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/images/Screenshot_20231115_142614.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/use-kde-connect-without-wifi/featured.webp"/></item><item><title>I run Kdenlive on my phone because there is no FOSS video editing apps on Android</title><link>https://ivonblog.com/en-us/posts/termux-kdenlive/</link><pubDate>Tue, 14 Nov 2023 16:00:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/termux-kdenlive/</guid><description>&lt;p&gt;&lt;a href="https://ivonblog.com/en-us/posts/termux-kdenlive/" &gt;中文版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The only open source, free, and multi-functional video editing APP for Android phones: &lt;strong&gt;Kdenlive in proot Linux in Termux.&lt;/strong&gt; (What a exaggerated title)
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-kdenlive/images/Screenshot_20231114-152053.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I like to use the open source &lt;code&gt;Kdenlive&lt;/code&gt; to edit videos on Linux PC. Although its functions are not as good as Adobe Premiere, it can compete with the computer version of PowerDirector, which is enough to replace some functions of commercial software.&lt;/p&gt;
&lt;p&gt;Although KDE does not officially support it, it is feasible to run Kdenlive on Android without root permissions. It can directly import videos from Android and then output it.&lt;/p&gt;
&lt;p&gt;It looks like this when running




&lt;div style="position: relative; padding-bottom: 56.25%; overflow: hidden;"&gt;
 &lt;iframe style="position: absolute; width: 100%; height: 100%;"
 src="http://www.youtube.com/embed/JBoV5Wki3Vk" allowfullscreen frameborder="0" loading="lazy"&gt;
 &lt;/iframe&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;This article introduces how to run Kdenlive on Android phones/tablets.&lt;/p&gt;

&lt;h2 class="relative group"&gt;1. Why do I do this?
 &lt;div id="1-why-do-i-do-this" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-why-do-i-do-this" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s an attempt to get rid of closed-source apps.&lt;/p&gt;
&lt;p&gt;It seems silly to use a mobile device to edit videos, at least use a tablet instead. But when I was keen on making Minecraft PE modding videos 5 years ago, I often used mobile apps to edit videos, such as Xiaoying, KineMaster, Adobe Premiere, PowerDirector, etc. How convenient, after processing the video on your phone, you can upload it to YouTube channel.&lt;/p&gt;
&lt;p&gt;However, most of them are paid closed-source apps. If you use the free version, either the video quality will be compressed, or a bunch of ads will pop up and annoy you to death.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-kdenlive/images/Screenshot_20231114_150703.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;When I wanted to get rid of the above closed source apps, I discovered a problem. Why is there no open source (FOSS) video editing APP? Even on Android?&lt;/p&gt;
&lt;p&gt;This question is very complicated and has been asked by many people on Reddit. &lt;a href="https://ivonblog.com/posts/f-droid-recommended-applications/" target="_blank" rel="noreferrer"&gt;Look at the list of F-Droid open source apps I made&lt;/a&gt;, let alone video editing, open source photo editing APPs are only a few, not to mention the video editing apps which has high development cost. FOSS video editing apps are almost non-existent on Android.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-kdenlive/images/zero.png"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;At present, the closest thing to an open source editing APP is &lt;a href="https://f-droid.org/zh_Hant/packages/protect.videoeditor/" target="_blank" rel="noreferrer"&gt;Video Transcoder&lt;/a&gt;, which simply adjusts the time. That is all we got.&lt;/p&gt;
&lt;p&gt;What about web video editors? There are also not many open source ones, and I don’t want to be exploited by using close-sourced products from companies like Canva. I think we have to wait until &lt;a href="https://github.com/ffmpegwasm/ffmpeg.wasm" target="_blank" rel="noreferrer"&gt;ffmpeg.wasm&lt;/a&gt; matures before there is hope for web video editing!&lt;/p&gt;
&lt;p&gt;In this case, we can only rely on the open source editing software on Linux. &lt;code&gt;OpenShot&lt;/code&gt; is too basic. The video editors with lots of functions include &lt;code&gt;Kdenlive&lt;/code&gt;, &lt;code&gt;Blender&lt;/code&gt;, and &lt;code&gt;Shotcut&lt;/code&gt;; those who master commandlines can use &lt;code&gt;ffmpeg&lt;/code&gt;. Here I choose Kdenlive.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/termux-kdenlive/images/kdenlive-logo-hori.png"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Eh? This is obviously running a computer program! Why did you tell me it was an APP? Come on, the abbreviation of Application is also APP.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;By the way, those who need open source photo editing software can also use the method described in this article to run GIMP, Inkscape, and Krita on Android.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/termux-kdenlive/featured.webp"/></item><item><title>Tutorial on running full Visual Studio Code on Android phone (Termux)</title><link>https://ivonblog.com/en-us/posts/visual-studio-code-termux/</link><pubDate>Mon, 13 Nov 2023 21:30:00 +0800</pubDate><author>infoivonblog.nkfjt@aleeas.com (Ivon Huang)</author><guid>https://ivonblog.com/en-us/posts/visual-studio-code-termux/</guid><description>&lt;p&gt;&lt;a href="https://ivonblog.com/en-us/posts/visual-studio-code-termux/" &gt;中文版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This article describes how to run the code editor Visual Studio Code (VSCode) on Android system without root permissions.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113-192321.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Developed by Microsoft, VSCode is a multifunctional code editor which supports a variety of programming languages ​​through many extensions. This could turning it into a small IDE.&lt;/p&gt;
&lt;p&gt;What we are gonna installed here is not the &lt;code&gt;code-server&lt;/code&gt;, but the full &lt;code&gt;code&lt;/code&gt; main program, which can install almost all extensions.&lt;/p&gt;
&lt;p&gt;So you can manage git projects and develop web programs
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113-194043.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Or creating a Anaconda envrinonment to write a Python program
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113-205359.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Or even modify the Linux kernel source code of Android
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113-195347.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;We will install the ARM64 version of Ubuntu environment through Termux, and then install VSCode in it.&lt;/p&gt;

&lt;h2 class="relative group"&gt;1. Set up Linux environment
 &lt;div id="1-set-up-linux-environment" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#1-set-up-linux-environment" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;It is recommended to use the phone or tablet that has RAM &amp;gt;= 8GB, storage space &amp;gt; 10 GB, and a processor of Qualcomm Snapdragon 845 or above. Ideally having an external keyboard and mouse connceted would be better.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Install &lt;a href="https://ivonblog.com/en-us/posts/how-to-use-termux/" target="_blank" rel="noreferrer"&gt;Termux&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set up &lt;a href="https://ivonblog.com/en-us/posts/termux-x11/" target="_blank" rel="noreferrer"&gt;Termux X11&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then install a Linux distribution:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro-ubuntu/" target="_blank" rel="noreferrer"&gt;proot Ubuntu&lt;/a&gt; or &lt;a href="https://ivonblog.com/en-us/posts/termux-proot-distro-debian/" target="_blank" rel="noreferrer"&gt;proot Debian&lt;/a&gt;: No need for root permissions, relatively slow.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ivonblog.com/en-us/posts/termux-chroot-ubuntu/" target="_blank" rel="noreferrer"&gt;chroot Ubuntu&lt;/a&gt;: Requires root permissions, relatively fast.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;2. Install Visual Studio Code
 &lt;div id="2-install-visual-studio-code" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#2-install-visual-studio-code" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Go to &lt;a href="https://code.visualstudio.com/download" target="_blank" rel="noreferrer"&gt;Visual Studio Code official website&lt;/a&gt; to download the deb file of the ARM64 version.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113_212259.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;code&gt;apt&lt;/code&gt; command to install the deb file, followed by the path to the deb file. If you download it using the browser on Android, the path will become &lt;code&gt;/sdcard/Download/code*.deb&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install ~/Downloads/code*.deb&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="3"&gt;
&lt;li&gt;After that, use vim to edit the Desktop Entry of VSCode&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vim /usr/share/applications/code.desktop&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="4"&gt;
&lt;li&gt;Add &lt;code&gt;--no-sandbox&lt;/code&gt; after the &lt;code&gt;Exec=&lt;/code&gt; line&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;Exec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/bin/code --unity-launch %F --no-sandbox&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;ol start="5"&gt;
&lt;li&gt;
&lt;p&gt;Click VSCode in the application list and try to start the program.
&lt;figure&gt;
 &lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt=""
 src="https://ivonblog.com/en-us/posts/visual-studio-code-termux/images/Screenshot_20231113-211951.webp"
 onerror="this.onerror=null;this.src='https://ivonblog.com/images/cannotloadimage.avif'"
 &gt;&lt;/figure&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you want to see the error message, you can start it from the terminal:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;code --verbose&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 class="relative group"&gt;3. Setting up the developing environment
 &lt;div id="3-setting-up-the-developing-environment" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#3-setting-up-the-developing-environment" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;I won’t go into details about the setup of developing environment here. There are many &lt;code&gt;Ubuntu + VSCode&lt;/code&gt; tutorials on the Internet. Note that you should search for &amp;ldquo;Develop with VSCode on Ubuntu&amp;rdquo; rather than &amp;ldquo;Connect VSCode to remote Ubuntu for developing&amp;rdquo;&lt;/p&gt;
&lt;p&gt;You could directly open terminal in the VSCode panel and execute commands there.&lt;/p&gt;
&lt;p&gt;For example, if you want to compile C language programs, install GCC:&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install build-essential&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If you want to have a Python Anaconda environment, you can refer to this article: &lt;a href="https://ivonblog.com/en-us/posts/android-termux-anaconda/" target="_blank" rel="noreferrer"&gt;Termux install Anaconda environment (miniforge)&lt;/a&gt;&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://ivonblog.com/en-us/posts/visual-studio-code-termux/featured.webp"/></item></channel></rss>