WSL2编译安卓8.1源码,直接运行模拟器

news2025/1/20 1:01:47

目录

  • WSL2编译安卓8.1源码,直接运行模拟器
    • WSL2下载安装
    • 移动到非系统盘
    • 下载和编译Android8
    • 直接运行emulator
    • 修改模拟器配置
    • 源码导入Android Studio并进行调试
    • 断点调试
    • 总结

WSL2编译安卓8.1源码,直接运行模拟器

学习Android Framework开发,需要linux。但是不管是vmware虚拟机,还是双系统,都或多或少有点麻烦。vmware性能不咋样,双系统切换器了麻烦,如果要玩个游戏,碰到微星啥的自检时间长的主板,重启就很费时间。WSL2就是个很方便的选择,性能接近原生linux系统,配置之后也能直接运行编译之后的模拟器,如果只是编译开发,推荐选择。

WSL2下载安装

最好是更新到全新的win11系统,毕竟支持好一些。安装有下面两种方式:

  1. 官方文档 ,链接: WSL2安装;但是这个方式经常卡住0%不动,那么可以选择下面的方式。
  2. Microsoft Store 在这里插入图片描述
    直接搜索后选择20.04.6下载,完成之后直接开始菜单里打开就会开始安装进入了。如果Microsoft Store打不开或者直接没有,最好是重装纯净版win11。

移动到非系统盘

默认安装C盘的,源码编译后的产物大概一两百G,肯定没办法直接放C盘了。首先就是移动到非系统盘,这里推荐使用下面链接里的方法二,不然后续配置默认登录用户可能不太方便配置。参考链接: 移动WSL2到非系统盘。

下载和编译Android8

参考链接: Android源码环境搭建
按照这个链接里准确操作就行,用目前的wsl2的环境测试没有问题。我这边的CPU配置是i5-12400f,编译时间是42分钟,另一台7950X的编译时间是18分钟。仅供参考。

直接运行emulator

编译完成后如果直接运行emulator命令,会有个kvm报错。这里我们还需要配置一下,这里需要做下面3步操作。

  1. 添加kvm组
    直接执行命令
sudo usermod -a -G kvm ${USER}
  1. 修改/dev/kvm的默认组,以及开启虚拟化
    编辑/etc/wsl.conf文件,直接gedit
sudo gedit /etc/wsl.conf
添加如下片段
[boot]
command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'
[wsl2]
nestedVirtualization=true
  1. 重启WSL
wsl.exe --shutdown

完成之后在启动wsl,源码目录再source lunch一遍,直接emualtor,我们就可以看到模拟器跑起来了。

修改模拟器配置

默认的模拟器配置非常差,我们稍微修改下配置,保证流畅运行。
编辑模拟器的config.ini,源码目录下

gedit out/target/product/generic_x86_64/config.ini

修改或者添加如下配置,按照自己时机情况来。分辨是cpu数量,ram,分辨率。

hw.cpu.ncore = 2
hw.ramSize = 2048
skin.path=480x800

源码导入Android Studio并进行调试

首先下载Android Studio linux版本的,直接wsl里解压运行就行了,这一步我就不展示了。一开始我想的是windows导入wsl目录下面的源码,然后进行断点,但是wsl2的跨系统IO非常慢,所以还是直接在wsl2里运行Android studio了。最后导入源码还需要编译一些东西,这里参考这篇链接。
链接: 源码导入Android studio

断点调试

一切就绪之后,试一试断点调试,随便选择一个应用
在这里插入图片描述

在这里插入图片描述
能进入onCreate方法了,断点成功。但是中间我还碰到一个问题,会跑到out目录下的src文件夹,这个我直接删除了,断点就能正常进入源码了。如果有知道其他更好方法的小伙伴麻烦告知一下。

总结

WSL2编译安卓源码总体来说体验还是非常不错,性能很接近原生linux。硬件性能基本都能吃满,不过目前最大的缺点就是linux上的GUI应用和windows的应用alt+tab切换的时候,老是不成功,或者有的linux应用的弹窗直接不见了,需要手动点。这个估计还需要等后续优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/575815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础CTF入门指南+工具

ctf入门指南 CTF工具包获取地址:http://www.ctftools.com/ 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web 密码学 pwn 程序的逻辑分析,漏洞利用windows、linux、小型机等 misc 杂项,隐写&…

2023年电工杯选题人数发布

该选题人数,主要基于根据各个平台开赛后24小时各项数据统计,进行评估(方法见注释),最终得出2023年认证杯二阶段选题人数,大致为 题号选题人数A97B431 注释:选题人数来源:源自各个平台…

Python案例:获取music榜单数据,保存自己的music库

目录 前言本次知识点:开发环境:代码展示括展小知识尾语 💝 前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 本次知识点: 爬虫基本流程 requests的使用 正则表达式的使用 开发环境: 解释器: python 3.8 编辑器: pycharm 2022.3 专业版 第三方模块使用 r…

如何自学网络安全 才不会成为脚本小子?

前言:我们来看看怎么学才不会成为脚本小子 目录: 一,怎么入门? 1、Web 安全相关概念(2 周) 了解网络安全相关法律法规 熟悉基本概念(SQL 注入、上传、XSS、CSRF、一句话木马等)。…

基于three.js实现的点击盒子消除游戏

一.项目背景 大学时期参加了机器人协会&#xff0c;并有幸成为了视觉组组长&#xff0c;所以在新一届社团招新上做了一款趣味小游戏来吸引新生的眼球&#xff0c;让大家知道协会的视觉组。 二.代码展示 <!DOCTYPE html> <html> <head> <style> body…

chatgpt赋能python:Python文件名字替换-优化SEO的必备技巧

Python文件名字替换-优化SEO的必备技巧 作为一名有10年Python编程经验的工程师&#xff0c;我深知文件名字替换在优化搜索引擎排名中占有重要的地位。本文将介绍如何使用Python进行文件名字替换以优化SEO&#xff0c;旨在为广大编程初学者提供有益的参考和指导。 什么是文件名…

零基础如何学习 Web 安全?

Web安全不仅是互联网的核心&#xff0c;而且还是云计算和移动互联网的最佳载体。对于信息安全从业者而言&#xff0c;Web安全是一个非常重要的研究课题之一。 Web应用是指采用B/S架构、通过HTTP/HTTPS协议提供服务的统称。随着互联网的广泛使用&#xff0c;社交网络、聊天工具…

小学妹刚毕业没地方住想来借宿?于是我连夜用Python给她找了个好房子,我真是太机智了

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 事情是这样的&#xff0c;小学妹刚毕业参加工作&#xff0c;人生地不熟的&#xff0c; 因为就在我附近上班&#xff0c;所以想找我借宿。。。 想什么呢&#xff0c;都不给住宿费&#xff0c;想免费住&#xff1f; 于是我用…

MySQL运维篇(二)

四.MyCat 4.1 MyCat概述 4.1.1 介绍 Mycat是开源的、活跃的、基于Java语言编写的数据库中间件。可以像使用mysql一样来使用 mycat&#xff0c;对于开发人员来说根本感觉不到mycat的存在。mycat不单只可以做MySQL的代理&#xff0c;其它常用的数据库也可以。 开发人员只需要…

基于springboot+Vue+ Element-Plus+mysql实现学生宿舍管理系统

基于springbootVue Element-Plusmysql实现学生宿舍管理系统 一、系统介绍二、功能展示1.登陆2、主页--学生3、主页--宿舍管理员4.学生管理--管理员5.宿管信息--管理员6.宿舍管理--管理员7.信息管理--管理员8.申请管理--管理员9.访客管理--管理员10.水电费管理--管理员11.卫生管…

AB Test数学原理及金融风控应用

1 什么是AB Test AB测试是一种常用的实验设计方法&#xff0c;用于比较两个或多个不同处理或策略的效果&#xff0c;以确定哪个处理或策略在某个指标上表现更好。在AB测试中&#xff0c;将随机选择一部分用户或样本&#xff0c;将其分为两个或多个组&#xff0c;每个组应用不同…

【Maven】单元测试、统计、覆盖率相关插件使用介绍

maven-surefire-plugin maven-surefire-plugin是maven执行单元测试的插件&#xff0c;不显性配置也可以直接使用。这个插件的surefire:test命令会默认绑定maven执行的test阶段。执行结束后&#xff0c;默认在target/surefire-reports目录下会生成txt和xml两种格式的结果&#…

接口测试-Mock测试方法

一、关于Mock测试 1、什么是Mock测试&#xff1f; Mock 测试就是在测试过程中&#xff0c;对于某些不容易构造&#xff08;如 HttpServletRequest 必须在Servlet 容器中才能构造出来&#xff09;或者不容易获取的比较复杂的对象&#xff08;如 JDBC 中的ResultSet 对象&#…

2023年电工杯B题问题二三思路讲解+创新点

问题二三解题思路 1.根据你们对数据的分析结果选取评价指标&#xff0c;从优先级、科学性、可操作性等方面论述其合理性&#xff0c;并构建评价指标体系&#xff1b; 2.建立数学模型&#xff0c;评价人工智能对大学生学习的影响&#xff0c;给出明确、有说服力的结论&#xf…

【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计 【SQL Se…

yolov5环境配置

阅读readme 阅读github上的yolov5的readme的环境配置&#xff0c;举例来说&#xff0c;yolov5_5.0要求如下。 删除原有出错误的环境 conda remove -n env_name --all -y 创建虚拟环境并指定python版本 conda create -n env_name python3.9 安装pytorch 查看显卡驱动 nvid…

​Kali-linux攻击路由器​

前面介绍的各种工具&#xff0c;都是通过直接破解密码&#xff0c;来连接到无线网络。由于在一个无线网络环境的所有设备中&#xff0c;路由器是最重要的设备之一。通常用户为了保护路由器的安全&#xff0c;通常会设置一个比较复杂的密码。甚至一些用户可能会使用路由器的默认…

Fourier分析入门——第10章——直接数据分析

目录 第10章 直接数据分析 10.1 引言 10.2 均值的方向和集中度(Mean direction and concentration about the mean) 10.3 假设检验(Hypothesis testing) 10.4 分组数据(Grouped data)及其与Fourier的关联 10.4.1 分组数据 10.4.2 分组数据与Fourier的关联 10.5 高次谐波…

解决未加载的符号文件

在连接器》命令行里输入&#xff1a;/INCLUDE:?warp_sizecudaatYAHXZ

浅谈智能疏散照明系统在体育场馆中的应用分析

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;随着经济的发展和科技的进步&#xff0c;人们对电气智能化提出了更高的要求&#xff0c;使得电气智能化系统在智能建筑中的地位越来越重要。本文结合工程实例对体育场馆智能疏散照明系统的设计进行了…