cari
Rumahalat pembangunanVSCodeBagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Artikel ini akan memberitahu anda tentang VSCodeBagaimana untuk membangunkan Android? Semoga ia membantu mereka yang memerlukan!

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Kod VS kebanyakannya ditulis dalam ts UI lapisan atas boleh dijalankan dalam penyemak imbas setiap sistem, tetapi kod vs adalah berdasarkan rangka kerja elektron, yang menyediakan akses. kepada nod. Menyokong beberapa API yang tidak dimiliki oleh enjin js dalam kernel penyemak imbas, seperti I/O, beberapa interaksi dengan kernel sistem, dsb. Dan pelayan kod menyelesaikan masalah pemisahan daripada elektron. Pada masa ini, terdapat perisian yang dipanggil aid learing pada Android, yang disertakan dengan VS Code Selepas melihatnya, prinsipnya adalah serupa bukan VS Code yang dibuka oleh antara muka grafik Linux, tetapi juga dibuka webview untuk menyambung ke perkhidmatan tempatan, tetapi Perkara ini menduduki terlalu banyak memori cakera Seluruh muat turun dan pemasangan akan mengambil masa 6 gigabait. [Pembelajaran yang disyorkan: "tutorial pengenalan vscode"]

Rangka kerja klien

Pelanggan dibangunkan menggunakan Flutter, dan rangka kerja ini Pilihannya bukan untuk hujung silang, tetapi hanya untuk percubaan pantas dan penggunaan keupayaan asas.

Analisis kaedah pelaksanaan

pelayan kod mempunyai seni bina arm64 dalam versi yang dikeluarkan pada github Selepas keseluruhan muat turun, pelaksanaan penyahmampatan terminal digantung arm64 dan dilengkapi dengan nod arm64, tetapi ia disediakan untuk linux penuh. Dalam erti kata lain, laluan seperti /usr /lib dikodkan keras dalam nod, dan node_modules yang disertakan juga mengandungi sejumlah besar laluan ke nod khusus Linux, yang tidak tersedia pada Android. Kemudian saya memikirkannya, persekitaran yang disertakan dengan termux juga mempunyai libllvm gcc nodejs Hanya padamkan keseluruhan node_mudules dan pasangkannya secara manual. Jadi keseluruhan proses boleh dibahagikan secara kasar kepada dua kategori.

Percubaan awal: Linux tidak lengkap

  • Mulakan persekitaran termux

  • Pasang nod, python , libllvm, clang

  • Muat turun pelayan kod arm64, nyahzip

  • untuk keserasian, padam node_modules dan pasang semula benang

  • Laksanakan bin/pelayan-kod untuk memulakan perkhidmatan

Selepas beberapa ujian, didapati bahawa mod ini mempunyai beberapa masalah.

  • Muat turun mempunyai terlalu banyak kebergantungan Memandangkan semua sumber berada pada pelayan peribadi saya, ia akan mengambil masa yang lama untuk memuat turun.
  • Ia mengambil masa terlalu lama untuk menyusun gcc dipanggil semasa pemasangan benang Seluruh proses memakan masa.
  • Kod mula vs tidak boleh menggunakan kod carian(Fungsi ini boleh disokong dalam keadaan biasa)
  • Penggunaan cakera terlalu besar selepas beberapa lama beroperasi. 1.6g ruang cakera tidak digunakan lagi, terutamanya kerana npm install menarik banyak perkara dan menghasilkan sekumpulan cache, node_modules, yang lebih berat daripada lubang hitam.

Walau bagaimanapun, selepas mengikuti proses di atas, node_modules dalam code-server sudah pun tersedia untuk Android arm64 Apabila membungkus pelayan kod untuk kali kedua, prosesnya boleh dipermudahkan seperti berikut

  • Mulakan persekitaran termux

  • Pasang nod

  • Muat turun pelayan kod arm64, nyahzip

  • Execute bin/code-server

Tetapi masih terdapat pepijat yang editor tidak boleh mencari kod node cuma 20m, masih ada Personal server, downlink bandwidth 5mb, lebih kurang 700kb/s, emmm, kalau nak integrate ke apk, kena integrate deb, adjust dpkg untuk install, give up.

Pelan penggunaan akhir: Lengkapkan Linux

  • Mulakan persekitaran termux

  • Muat turun dan pasang Linux lengkap (30m)

  • Muat turun pelayan kod arm64 (ia disertakan dengan nod dan boleh digunakan)

  • Laksanakan bin/pelayan kod ke mulakan perkhidmatan

Pada akhirnya, saya memilih kaedah Linux yang lengkap sebagai tambahan kepada saiz pemasangan yang lebih kecil, ia juga mempunyai sokongan sumber yang lengkap, mengelakkan pepijat yang tidak normal, dsb. Memandangkan 130mb memori yang diperlukan untuk memulakan keseluruhan Kod VS diperlukan buat kali pertama, tidak masuk akal untuk meletakkan pekerjaan memori ini pada pelayan, mulakannya dari aplikasi dan kemudian muat turunnya semua disepadukan sebagai fail sumber.

Pelaksanaan khusus

Mulakan persekitaran termux

Terdapat roda siap sedia untuk proses ini, ikut sahaja termux -pakej Skrip kompilasi menyusun bootstrap dan menyepadukannya ke dalam apk Apl mula dinyahmampatkan, dan kemudian dipulihkan mengikut format pautan simbolik. Terminal ialah termare_view.

bootstrap ialah persekitaran linux dengan kebergantungan minimum, termasuk bash, apt, dsb.

具体实现代码

function initApp(){
  cd ${RuntimeEnvir.usrPath}/
  echo 准备符号链接...
  for line in `cat SYMLINKS.txt`
  do
    OLD_IFS="\$IFS"
    IFS="←"
    arr=(\$line)
    IFS="\$OLD_IFS"
    ln -s \${arr[0]} \${arr[3]}
  done
  rm -rf SYMLINKS.txt
  TMPDIR=/data/data/com.nightmare.termare/files/usr/tmp
  filename=bootstrap
  rm -rf "\$TMPDIR/\$filename*"
  rm -rf "\$TMPDIR/*"
  chmod -R 0777 ${RuntimeEnvir.binPath}/*
  chmod -R 0777 ${RuntimeEnvir.usrPath}/lib/* 2>/dev/null
  chmod -R 0777 ${RuntimeEnvir.usrPath}/libexec/* 2>/dev/null
  apt update
  rm -rf $lockFile
  export LD_PRELOAD=${RuntimeEnvir.usrPath}/lib/libtermux-exec.so
  install_vs_code
  start_vs_code
  bash
}

RuntimeEnvir.usrPath 是 /data/data/$package/files/usr/bin

安装完整 Linux 和 code-server

这个我从好几个方案进行了筛选,起初用的 atlio 这个开源,整个开源依赖 python,并且有一个requirement.txt ,需要执行 python -r requirement.txt,依赖就是一大堆,后来换了 proot-distro,纯 shell,所以只需要直接集成到 apk 内就行。

1.安装 ubuntu

install_ubuntu(){
  cd ~
  colorEcho - 安装Ubuntu Linux
  unzip proot-distro.zip >/dev/null
  #cd ~/proot-distro
  bash ./install.sh
  apt-get install -y proot
  proot-distro install ubuntu
  echo '$source' > $ubuntuPath/etc/apt/sources.list
}

2.安装 code-server

install_vs_code(){
  if [ ! -d "$ubuntuPath/home/code-server-$version-linux-arm64" ];then
    cd $ubuntuPath/home
    colorEcho - 解压 Vs Code Arm64
    tar zxvf ~/code-server-$version-linux-arm64.tar.gz >/dev/null
    cd code-server-$version-linux-arm64
  fi
}

启动 code-server

直接用 proot-distro 启动就行,非常方便

--termux-home 参数:开启 app 沙盒的 home 挂载到 ubuntu 的 /root 下,这样 ubuntu 就能用 app 里面的文件夹了。

start_vs_code(){
  install_vs_code
  mkdir -p $ubuntuPath/root/.config/code-server 2>/dev/null
  echo '
  bind-addr: 0.0.0.0:8080
  auth: none
  password: none
  cert: false
  ' > $ubuntuPath/root/.config/code-server/config.yaml
  echo -e "\x1b[31m- 启动中..\x1b[0m"
  proot-distro login ubuntu -- /home/code-server-$version-linux-arm64/bin/code-server
}

其实整个实现其实是没啥难度的,全都是一些 shell 脚本,也是得益于之前的 Termare 系列的支持,有兴趣的可以看下这个组织。 然后就是打开 webview 的过程了,如果觉得性能不好,你可以用局域网的电脑来进行连接。 看一下非首次的启动过程

WebView 实现方案

首先去 pub 看了一下 webview 的插件,官方目前正在维护的 webview 有这样的提示

  • Hybrid composition mode has a built-in keyboard support while Virtual displays mode has multiple keyboard issues
  • Hybrid composition mode requires Android SKD 19+ while Virtual displays mode requires Android SDK 20+
  • Hybrid composition mode has performence limitations when working on Android versions prior to Android 10 while Virtual displays is performant on all supported Android versions

也就是说开启 hybird 后,安卓10以下有性能限制,而使用虚拟显示器的话,键盘问题会很多。

实际尝试的时候,OTG 连接的键盘基本是没法用的。

再分析了下这个场景,最后还是用的原生 WebView,这里有些小坑。

必须启用项

        WebSettings mWebSettings = mWebView.getSettings();        //允许使用JS
        mWebSettings.setJavaScriptEnabled(true);
        mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        mWebSettings.setUseWideViewPort(true);
        mWebSettings.setAllowFileAccess(true);        // 下面这行不写不得行
        mWebSettings.setDomStorageEnabled(true);
        mWebSettings.setDatabaseEnabled(true);
        mWebSettings.setAppCacheEnabled(true);
        mWebSettings.setLoadWithOverviewMode(true);
        mWebSettings.setDefaultTextEncodingName("utf-8");
        mWebSettings.setLoadsImagesAutomatically(true);
        mWebSettings.setSupportMultipleWindows(true);

路由重定向

有些场景 VS Code 会打开一个新的窗口,例如点击 file -> new window 的时候,不做处理,webview 会调起系统的浏览器。

        //系统默认会通过手机浏览器打开网页,为了能够直接通过WebView显示网页,必须设置
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                //使用WebView加载显示url
                view.loadUrl(url);
                //返回true
                return true;
            }
        });

浏览器正常跳转

例如终端输出了 xxx.xxx,ctrl + 鼠标点击,预期是会打开浏览器的。

mWebView.setWebChromeClient(webChromeClient);
WebChromeClient webChromeClient = new WebChromeClient() {

        @Override
        public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
            WebView childView = new WebView(context);//Parent WebView cannot host it's own popup window.
            childView.setBackgroundColor(Color.GREEN);
            childView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                    return true;
                }
            });
            WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
            transport.setWebView(childView);//setWebView和getWebView两个方法
            resultMsg.sendToTarget();
            return true;
        }
    };

可行性探索

这个能干嘛?安卓屏幕那么小,电脑能本地用 VsCode 干嘛要连安卓的?

  • 有一个 vs code 加一个完整的 linux 环境,能 cover 住一些场景的开发了,安卓开发等除外。
  • 开发程序到 arm 板子的同学,PC 上还得弄一堆交叉编译工具链,并且每次编译调试过程也很繁琐,现在就能本地写本地编译。

正巧,买了一个平板,爱奇艺之余,也能作为程序员的一波生产力了。

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

编译 C 语言

选了一个一直在学习的项目,scrcpy,一堆 c 源码,最后很顺利的编译下来了。

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Web 开发

移动端的网页调试一直都是问题,作为野路子前端的我也很无奈,一般会加一些 vconsole 的组件来获取调试日志。

之前个人项目速享适配移动端 web 就是这么干的

现在,我们可以本地开发,本地调试,有 node 整个前端大部分项目都能拉下来了,真实的移动端物理环境。 试试Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

写博客

本篇文章完全是在这个安卓版的 VS Code 中完成的,使用 hexo 本地调式

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Tulis dokumentasi

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Tulis bahagian belakang dan ujian antara muka

Tulis beberapa bahagian belakang yang mudah, seperti fastapi python , kelalang, dan menjalankan ujian antara muka melalui klien rehat

Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA

Akhir sekali

Untuk membolehkan pengguna lain menggunakan aplikasi ini secara langsung, saya meletakkannya pada pemasangan yang sejuk .

Saya telah menyemak bahawa lesen sumber terbuka vscodium dan pelayan kod kedua-duanya adalah MIT Jika terdapat sebarang pelanggaran, sila ingatkan saya di kawasan komen.

Alamat muat turun sejuk Kod FA

Alamat muat turun pelayan peribadi Kod FA

Alamat muat turun pantas perisian peribadi

Atas ialah kandungan terperinci Bagaimana untuk membangunkan Android dengan VSCode? Perkongsian praktikal projek Kod FA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Visual Studio vs Vs Code: Meneroka Ciri dan FungsiVisual Studio vs Vs Code: Meneroka Ciri dan FungsiApr 15, 2025 am 12:05 AM

VisualStudio sesuai untuk projek-projek besar dan keperluan penuh, sementara VSCode sesuai untuk perkembangan yang memerlukan ringan dan fleksibiliti. 1. VisualStudio menyediakan fungsi IDE yang komprehensif, menyokong pelbagai bahasa dan pengurusan projek lanjutan. 2.VSCode dikenali dengan ringan dan berskala, dan sesuai untuk pembangunan silang platform dan konfigurasi peribadi.

Visual Studio vs Vs Code: Mana yang lebih baik untuk projek anda?Visual Studio vs Vs Code: Mana yang lebih baik untuk projek anda?Apr 14, 2025 am 12:03 AM

VisualStudio sesuai untuk projek besar dan senario pembangunan yang memerlukan keupayaan debugging yang kuat, manakala VSCode sesuai untuk senario yang memerlukan fleksibiliti dan pembangunan silang platform. VisualStudio menyediakan persekitaran pembangunan yang komprehensif, menyokong pembangunan .NET, dan mengintegrasikan alat debugging dan fungsi pengurusan projek. VSCode dikenali dengan ringan dan lanjutannya. Ia menyokong pelbagai bahasa pengaturcaraan dan meningkatkan fungsi melalui sistem pemalam, dan sesuai untuk proses pembangunan moden.

Visual Studio: Meneroka pilihan harga dan pelesenanVisual Studio: Meneroka pilihan harga dan pelesenanApr 13, 2025 am 12:03 AM

VisualStudio boleh didapati dalam tiga versi: Edisi Percuma Komuniti adalah untuk individu dan pasukan kecil, edisi berbayar profesional adalah untuk pemaju profesional dan pasukan kecil dan sederhana, dan Enterprise Ultimate Edition adalah untuk perusahaan besar dan projek yang kompleks.

Nilai Visual Studio: Menimbang kos terhadap faedahnyaNilai Visual Studio: Menimbang kos terhadap faedahnyaApr 12, 2025 am 12:06 AM

VisualStudio sangat berharga dalam pembangunan .NET kerana ia berkuasa dan komprehensif. Walaupun penggunaan kos dan sumber yang tinggi, peningkatan kecekapan dan pengalaman pembangunan yang dibawa adalah penting. Komuniti sangat sesuai untuk pemaju individu dan pasukan kecil; Perusahaan besar sesuai untuk profesional atau perusahaan.

Ketersediaan Visual Studio: Edisi mana yang percuma?Ketersediaan Visual Studio: Edisi mana yang percuma?Apr 10, 2025 am 09:44 AM

Versi percuma VisualStudio termasuk VisualStudiocommunity dan VisualStudiocode. 1. VisualStudiCommunity sesuai untuk pemaju individu, projek sumber terbuka dan pasukan kecil. Ia berkuasa dan sesuai untuk projek individu dan pengaturcaraan pembelajaran. 2. VisualStudiCode adalah editor kod ringan yang menyokong pelbagai bahasa dan sambungan pengaturcaraan. Ia mempunyai kelajuan permulaan yang cepat dan penggunaan sumber yang rendah, menjadikannya sesuai untuk pemaju yang memerlukan fleksibiliti dan skalabilitas.

Bagaimana cara memasang Visual Studio untuk Windows 8?Bagaimana cara memasang Visual Studio untuk Windows 8?Apr 09, 2025 am 12:19 AM

Langkah -langkah untuk memasang VisualStudio pada Windows 8 adalah seperti berikut: 1. Muat turun pakej pemasangan VisualStudiCommunity2019 dari laman web rasmi Microsoft. 2. Jalankan pemasang dan pilih komponen yang diperlukan. 3. Ia boleh digunakan selepas pemasangan selesai. Berhati-hati untuk memilih komponen Windows 8 yang bersesuaian dan pastikan terdapat ruang cakera yang mencukupi dan hak pentadbir.

Bolehkah komputer saya menjalankan kod vs?Bolehkah komputer saya menjalankan kod vs?Apr 08, 2025 am 12:16 AM

VSCode boleh dijalankan pada kebanyakan komputer moden selagi keperluan sistem asas dipenuhi: 1. Sistem operasi: Windows 7 dan ke atas, macOS 10.9 dan ke atas, Linux; 2. Pemproses: 1.6GHz atau lebih cepat; 3. Memori: sekurang -kurangnya 2GB RAM (4GB atau lebih tinggi disyorkan); 4. Ruang Penyimpanan: Sekurang -kurangnya 200MB ruang yang ada. Dengan mengoptimumkan tetapan dan mengurangkan penggunaan lanjutan, anda boleh mendapatkan pengalaman pengguna yang lancar pada komputer konfigurasi rendah.

Bagaimana saya membuat program yang serasi dengan Windows 8?Bagaimana saya membuat program yang serasi dengan Windows 8?Apr 07, 2025 am 12:09 AM

Untuk membuat program berjalan lancar pada Windows 8, langkah -langkah berikut diperlukan: 1. Gunakan mod keserasian, mengesan dan membolehkan mod ini melalui kod. 2. Laraskan panggilan API dan pilih API yang sesuai mengikut versi Windows. 3. Melakukan pengoptimuman prestasi, cuba elakkan menggunakan mod keserasian, mengoptimumkan panggilan API dan menggunakan kawalan umum.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini