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.pswp.cn/diannao/76598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76598.shtml
英文地址,請注明出處:http://en.pswp.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版本針對大模型時代的開發痛點進行了系統性革新。其核心創新包括“動靜統一自動并行”&…