wsl2安卓开发环境搭建
本文最后更新于:2024年5月7日 下午
本篇内容主要涉及:
- windows安装wsl2以及wsl2安装Arch
- Arch搭建node/conda/java/flutter/c++等开发环境
- Android Studio使用连接windows的手机设备
wsl2安装
为什么是wsl2
nvidia对linux的相关驱动已经越来越完善,越来越多的人使用linux/mac系统作为日常开发环境——而windows相较unix系系统,本身的快捷键、命令行等相关支持并不完善,所幸经过几年的完善,wsl2已经发展的比较完善了,而使用wsl2的优点在于:存在于wsl2的整个环境都可以打包,迁移方便,可以轻松管理开发环境。在我看来,这是wsl2最大的优点,尽管wsl2目前的gui程序还存在一些问题,但作为个人开发者,wsl2已经可以满足大多数开发场景了——你不需要像使用纯linux一下配置驱动、配置各种应用程序(尽管有些程序确实比windows下相应的程序好)
安装wsl2
可以参考:wsl2+archlinux+kde+tigerVNC图形化配置: 漫长的折腾以后完成了wsl2下archlinux的安装和kde桌面的图形化显示。以此记录。 (gitee.com)
在微软商店中,直接搜索wsl安装即可获得wsl1,这个时候,我们以管理员模式打开powershell,输入:
1 |
|
重启wsl,再次输入:
1 |
|
即可设置为wsl2.
这个时候,在微软商店中安装arch即可。注意,我们不需要为wsl2配置图形化界面,只需要安装好中文即可。按照我的体验,不建议使用vnc作为图形界面,不如直接终端启动wsl2的图形化程序。
wsl的迁移与基础配置
由于Arch上要装许多开发环境,占用空间越来越大,建议将wsl迁移到其他盘,可以参考WSL的安装和位置迁移 - 知乎 (zhihu.com)
首先powershell中关停wsl:
1 |
|
之后导出:
1 |
|
最后注销原来的虚拟机器卸载并导入:
1 |
|
配置代理
首先假设你的host机器能够科学上网,且在127.0.0.1:7890开了端口。那么我们在wsl2里面需要做的就是把流量引导到windows中,而我们就需要获取windows的ip:
1 |
|
之后,可以通过命令设置https_proxy以及http_proxy的值,注意引号中的内容需要根据自己使用的协议选择http或者socks5
1 |
|
参考 代理上网,可以在.bashrc/.zshrc中添加 :
1 |
|
这个时候,尽管我们可以通过setss让终端科学上网,但无法让wsl2的其他程序上网,这里可以使用proxychains4,配置后即可通过proxychains4 program来让程序也科学上网。
Arch开发环境搭建
建议先使用pacman安装yay,之后使用yay安装其他软件即可:
1 |
|
Android Studio相关配置
首先,在wsl2中使用gui程序,有时是会直接卡死的,因此要做好心理准备😃
安装的android studio的话,非常简单,官网下载包就行,执行文件在./AndroidStudio/bin下的studio.sh。我的做法是将该路径添加到/etc/profile的path环境变量中,这些source /etc/profile后就可以在任意路径执行studio.sh了。
Android Studio的使用和windows/mac基本一致,不在详述。
关于安卓代码调试,在我的环境中,Android Studio不支持创建虚拟设备,因此只能选择物理真机调试,此时需要做一个网络端口转发才能让wsl2的android studio连接到物理机。
首先,windows安装adb并将其添加到环境变量中,将手机连接后,在powershell中执行
1 |
|
可以看到连接windows的设备。
此时,在wsl2的arch中安装adb,执行:
1 |
|
这个时候应该看不到手机(该终端未执行setss时)
而为了让wsl2能够看到手机,我们需要主机的ip,由于在前述中,我们设置了hostip用于保存windows的ip,因此此时我们可以通过执行:
1 |
|
来看到手机,或者通过修改proxychains4的配置文件,执行:
1 |
|
来看到手机。而要想让Android Studio在device manager中看到手机,只需要执行:
1 |
|
即可。注意,这里不推荐手动填写配置AS的代理设置,通过proxychains4更加方便。
这里可能会出现问题,由于使用了proxychains4做代理,笔者在开发flutter项目时,发现尽管通过proxychains4启动Android Studio可以使其识别设备,在编译运行安卓时却会由于代理混乱导致无法编译成功,报错类似:
1 |
|
调试和开发
关于如何在wsl2调试开发安卓,我目前的解决办法是在外部的powershell终端使用代理启动AS,这样在调试时可以直接使用AS的logcat查看日志。编译程序时则在外部终端手动执行命令编译成apk文件(不使用代理),然后使用adb安装到手机上(使用代理运行adb)。
这时候在使用代理开启adb,安装apk,并使用代理开启android studio(使其可以扫描到手机),打开其logcat,输入对应的安装包包名,即可看到手机上app的运行日志:
参考
wsl2+archlinux+kde+tigerVNC图形化配置: 漫长的折腾以后完成了wsl2下archlinux的安装和kde桌面的图形化显示。以此记录。 (gitee.com)
WSL2+ArchLinux环境配置 - lentikr - 博客园 (cnblogs.com)
声明
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2899caoptmo0k
本文作者: Heeler-Deer
本文链接: https://heeler-deer.top/posts/57407/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!