ubuntu中使用安卓模拟器

本文这里介绍 使用 android studio Emulator ,

当然也有 Anbox (Lightweight),
Waydroid (Best for Full Android Experience),

首先确保自己安装了 android studio ;

sudo apt update
sudo apt install openjdk-11-jdk
sudo snap install android-studio --classic

之后启动 studio

cd /media/respecting_/S2/17_deploy/android-studio-2022.2.1.20-linux/android-studio/bin./studio.sh

1. 安装模拟器

1.1 安装 android 模拟器

Open Android Studio and go to Tools → Device Manager → Create Virtual Device.

打开 Android Studio 并转到工具 → 设备管理器 → 创建虚拟设备 。

Choose a virtual device, install an Android system image, and launch the emulator.

选择一个虚拟设备,安装一个 Android 系统映像,并启动模拟器。

这里需要注意在 先使用 unzip -l your.apk | grep lib, 确认一下,你后续需要按照的.apk 所支持的 类型,
如果显示
✅ lib/armeabi-v7a/
✅ lib/x86/

则你只能选择其中的 x86, 或者是 arm 对应的型号, 而不能选择 andriod 的x86-64 等其他模拟器版本;

在这里插入图片描述

1.2 检查已经安装的模拟器

使用该命令可以检查 已经安装了哪些类型的模拟器

 ~/Android/Sdk/emulator/emulator -list-avds
~/Android/Sdk/emulator/emulator -avd Pixel_6_API_30_and11x86  -gpu swiftshader_indirect

输出如下, 表明当前只安装了这一种 android 版本类型的模拟器;
Pixel_6_API_30_and11x86

1.3 启动对应的模拟器

尝试使用软件渲染启动模拟器:

~/Android/Sdk/emulator/emulator -avd Pixel_6_API_33 -gpu swiftshader_indirect

其中, Pixel_6_API_33 代表的是你安装的模拟器android 版本的名称,
启动不同的模拟器时, 使用对应的版本;

2. apk 安装

最直接的方式,直接将 apk 拖入到 模拟器中, 他会自动安装, 但是也可以使用 adb 的方式安装

2.1 确认apk 支持的类型

unzip -l MeridianInside.apk | grep lib

It shows:它显示:
✅ lib/armeabi-v7a/
✅ lib/x86/

如果输出以上两种类型, 表示支持这两种架构的 android 系统;
如果安装的模拟器是 x86_64 ,它可能无法接受该 APK;

2.2 adb 方式安装 .apk 文件;

adb install /path/to/your.apk

2.3 adb 的版本匹配问题

当出现如下 adb 版本不匹配的情况, 也会导致 apk 无法安装;

adb server version (41) doesn't match this client (39); killing...

ADB version mismatch:但是,您仍然有一个 ADB 版本不匹配的问题 ;

adb version

You’ll likely see two different versions in your system (one from the SDK, another from another installation).您可能会在系统中看到两个不同的版本 (一个来自 SDK,另一个来自另一个安装)。

Android Debug Bridge version 1.0.39
Version 1:8.1.0+r23-5ubuntu2
Installed as /usr/lib/android-sdk/platform-tools/adb

如果出现 上面的 两种版本,则表明
您似乎正在使用 Ubuntu 软件包管理器 ( /usr/lib/android-sdk/platform-tools/adb ) 安装的 ADB 版本 。此版本已过时,并且可能与 Android SDK 中的 ADB 版本冲突。

~/Android/Sdk/platform-tools/adb version

To avoid conflicts, uninstall the old version

sudo apt remove adb

删除旧版本后,更新 PATH 以使用 SDK ADB:

export PATH=~/Android/Sdk/platform-tools:$PATH

最后重新安装

adb install MeridianInside.apk

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

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

相关文章

二语习得理论(Second Language Acquisition, SLA)如何学习英语

二语习得理论(Second Language Acquisition, SLA)是研究学习者如何在成人或青少年阶段学习第二语言(L2)的理论框架。该理论主要关注语言习得过程中的认知、社会和文化因素,解释了学习者如何从初学者逐渐变得流利并能够…

WinDbg. From A to Z! 笔记(下)

原文链接: WinDbg. From A to Z! 文章目录 使用WinDbg临界区相关命令示例 -- 查看临界区其他有用的命令 WinDbg中的伪寄存器自动伪寄存器 WinDbg中的表达式其他操作默认的表达式计算方式 WinDbg中的重命名调试器命令语言编程控制流命令程序执行 WinDbg 远程调试事件监控WinDbg …

RainbowDash 的旅行

D RainbowDash 的旅行 - 第七届校赛正式赛 —— 补题 题目大意: 湖中心有一座岛,湖的外围有 m m m 间木屋(围绕小岛) ,第 i i i 间木屋和小岛之间有 a i a_i ai​ 座 A A A 类桥, b i b_i bi​ 座 B …

MySQL-SQL-DDL语句、表结构创建语句

一.SQL SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准 二. DDL-数据库 1. 查询所有数据库 命令:show databases; 2. 查询当前数据库 命令:select database(); 3. 创建数据库 命令:create da…

Sora结构猜测

方案:VAE Encoder(视频压缩) -> Transform Diffusion (从视频数据中学习分布,并根据条件生成新视频) -> VAE Decoder (视频解压缩) 从博客出发,经过学术Survey&am…

TortoiseSVN设置忽略清单

1.TortoiseSVN > Properties(如果安装了 TortoiseSVN)。 2. 在弹出的属性窗口中,点击 New > Other。 4. 在 Property name 中输入 svn:ignore 。 5. 在 Property value 中输入要忽略的文件夹或文件名称,例如: #…

深入解析Java哈希表:从理论到实践

哈希表(Hash Table)是计算机科学中最重要的数据结构之一,也是Java集合框架的核心组件。本文将以HashMap为切入点,深入剖析Java哈希表的实现原理、使用技巧和底层机制。 一、哈希表基础原理 1. 核心概念 键值对存储:通…

leetcode:1582. 二进制矩阵中的特殊位置(python3解法)

难度:简单 给定一个 m x n 的二进制矩阵 mat,返回矩阵 mat 中特殊位置的数量。 如果位置 (i, j) 满足 mat[i][j] 1 并且行 i 与列 j 中的所有其他元素都是 0(行和列的下标从 0 开始计数),那么它被称为 特殊 位置。 示…

《数字图像处理》教材寻找合作者

Rafael Gonzalez和Richard Woods所著的《数字图像处理》关于滤波器的部分几乎全错,完全从零开始写,困难重重。关于他的问题已经描述在《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》。 现寻找能够共同讨论、切磋、…

为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)

在 Kubernetes(k8s)环境中使用 Jenkins 时,为 Jenkins Agent 添加污点(Taint)容忍度(Toleration)是一种常见的配置操作,它允许 Jenkins Agent Pod 被调度到带有特定污点的节点上。下…

LeetCode算法题(Go语言实现)_28

题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一…

使用python实现视频播放器(支持拖动播放位置跳转)

使用python实现视频播放器(支持拖动播放位置跳转) Python实现视频播放器,在我早期的博文中介绍或作为资料记录过 Python实现视频播放器 https://blog.csdn.net/cnds123/article/details/145926189 Python实现本地视频/音频播放器https://bl…

用Python和Pygame创造粉色粒子爱心:3D渲染的艺术

引言 在计算机图形学中,3D效果的2D渲染是一个迷人的领域。今天,我将分享一个使用Python和Pygame库创建的粉色粒子爱心效果。这个项目不仅视觉效果惊艳,而且代码简洁易懂,非常适合图形编程初学者学习3D渲染的基础概念。 项目概述…

在汇编层面理解MESI

理解MESI协议在汇编层面的表现需要结合缓存一致性机制和处理器指令执行的行为。以下是分步骤的解释: 1. MESI协议基础 MESI是缓存行(Cache Line)状态的协议,定义四种状态: Modified(修改)&…

爱瑞编程2025暑期CSP集训营开始招生啦!

一、什么是暑期CSP集训营? 为全力备战2025年9月CSP-J/S认证,举办的线下编程集训活动。 旨在通过高强度编程训练,帮助学员提升竞赛能力,冲刺一等奖。 二、为什么参加集训营? 高效编程特训:封闭式学习&…

问题大集10-git使用commit提交中文显示乱码

(1)问题 (2)解决步骤 1) 设置全局编码为 UTF-8 git config --global core.quotepath false git config --global i18n.commitEncoding utf-8 git config --global i18n.logOutputEncoding utf-8 2) 显示或设…

当AI开始“思考“:大语言模型的文字认知三部曲

引言:从《黑客帝国》说起 1999年上映的科幻经典《黑客帝国》描绘了一个令人震撼的未来图景——人类生活在一个由人工智能构造的数字矩阵中。当我们观察现代大型语言模型的工作原理时,竟发现与这个虚构世界有着惊人的相似:人们正在用矩阵以及矩…

Golang改进后的任务调度系统分析

以下是整合了所有改进点的完整代码实现: package mainimport ("bytes""context""fmt""io""log""net/http""sync""time""github.com/go-redis/redis/v8""github.com/robfig/…

前沿技术有哪些改变生活新趋势

太阳能技术正在改变的生活 它让移动设备有了新的能源选择 太阳能板能直接把阳光转成电能 这对户外活动或者电力不便的地方特别有用 比如现在市面上有不少太阳能充电宝 小巧便携 可以随时给手机平板充电 需要注意的是 这些设备得放在太阳下才能工作 但它们确实能让人在野外多用…

基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战

深度学习框架与大模型技术的融合正推动人工智能应用的新一轮变革。百度飞桨(PaddlePaddle)作为国内首个自主研发、开源开放的深度学习平台,近期推出的3.0版本针对大模型时代的开发痛点进行了系统性革新。其核心创新包括“动静统一自动并行”&…