当前位置: 首页 > article >正文

GMS测试环境搭建指南:从零开始配置Linux系统与必备工具

1. 环境准备从一块空白硬盘到Linux桌面很多刚接触GMS测试的朋友一听到要自己搭环境就头大感觉又要装系统又要配网络一堆命令看得眼花。别慌这事儿我干过不下几十次了从给新同事配机器到批量部署测试服务器踩过的坑都能写本书了。今天我就带你走一遍最稳、最顺的流程保证你跟着做一次就能点亮Linux桌面把基础环境给跑起来。首先咱们得搞清楚目标。GMS测试简单说就是确保设备上的谷歌移动服务能正常工作。这活儿需要一个干净、可控的Linux环境来跑各种自动化测试套件。所以咱们的第一步不是直接怼命令而是准备好一个“舞台”——那就是Linux操作系统本身。我强烈推荐使用Ubuntu LTS版本比如20.04或者22.04。为啥因为长期支持版LTS意味着官方会提供长达数年的安全更新和bug修复对于测试环境来说稳定压倒一切。你不想测到一半系统自动升级搞出幺蛾子吧我就吃过这个亏一个非LTS版本升级后adb死活连不上设备了排查了半天。准备工作就三样东西一个容量至少8GB的U盘、一台用来安装的电脑旧笔记本、台式机都行、还有从Ubuntu官网下载的系统镜像文件。U盘格式化成FAT32就行这是最通用的格式。下载镜像时注意官网可能会问你捐不捐款直接点“Not now, take me to the download”跳过就行选那个“Ubuntu 22.04 LTS”的ISO文件。接下来是制作启动盘Windows下我用得最顺手的是Rufus这个小工具免费、开源、速度快。打开Rufus设备选你的U盘引导类型选择刚才下载的ISO文件其他选项保持默认直接点“开始”。它会提示你以ISO镜像模式写入确认就行。这个过程大概十来分钟喝杯咖啡的功夫就好了。制作好启动盘就是引导安装了。把U盘插到目标电脑上开机狂按F2、F12、Delete或者Esc键不同品牌电脑按键不同华硕通常是F2戴尔是F12进入BIOS/UEFI设置界面。这里有个关键点找到“Boot”或者“启动”选项把U盘调整到启动顺序的第一位。然后保存并退出电脑会自动重启并从U盘启动。你会看到一个紫色的Ubuntu安装界面选择“Try Ubuntu”可以先体验一下但我们直接选“Install Ubuntu”进入安装。安装过程基本都是图形化点击下一步但有几步需要留心。一是语言我建议选English。这不是装而是因为后续很多终端命令和日志输出都是英文系统语言设为英文可以避免一些潜在的编码或路径问题。时区可以地图上点选“Shanghai”。最关键的一步是磁盘分区对于测试机我推荐选择“Erase disk and install Ubuntu”清除整个磁盘并安装Ubuntu简单粗暴没烦恼。当然如果你电脑上有重要数据千万要提前备份接下来设置用户名和密码这个密码也是你后续执行sudo命令的管理员密码记牢了。然后就是等待安装大概20-30分钟。安装完成后会提示重启重启时记得拔掉U盘不然又会进到安装界面。再次开机你就拥有一个全新的Ubuntu系统了。2. 系统初始化与网络配置让电脑“活”起来系统装好看到桌面了但这只是个开始。现在的系统还是个“毛坯房”咱们得通水通电也就是配置网络和更新软件源让它能顺畅地从互联网获取我们需要的一切工具。第一次进入桌面你可能发现右上角的网络图标显示未连接。别急我们先搞定网络。如果你的办公环境是动态分配IPDHCP那通常插上网线或者连接Wi-Fi就能自动获取地址上网了这是最省心的。但做GMS测试尤其是需要长时间跑自动化任务或者作为服务器使用时我强烈建议你找IT部门的同事申请一个固定的内网IP地址。固定IP的好处太多了比如你的测试机地址永远不会变其他设备比如待测手机可以稳定地通过ADB连接到它你在本地搭建的某些测试服务地址也是固定的方便配置。拿到固定IP信息后通常包括IP地址、子网掩码、网关和DNS服务器我们开始手动配置。在Ubuntu桌面右上角点击网络图标选择“有线设置”或者“Wi-Fi设置”然后点击齿轮图标进入网络设置。找到你当前连接的网络点击旁边的设置按钮。在“IPv4”选项卡里把方法从“自动(DHCP)”改成“手动”。然后点击“地址”下面的“添加”按钮依次填入IP地址、子网掩码、网关。接着在下面的“DNS”栏里填入DNS服务器地址比如常用的8.8.8.8和114.114.114.114。填完后点击“应用”。有时候配置不会立即生效最稳的办法是把网络开关关掉再打开或者直接命令行执行sudo systemctl restart NetworkManager重启网络服务。配置完成后打开终端快捷键CtrlAltT输入ping baidu.com看到有数据包返回就说明网络通了。网络通了第一件事不是装软件而是更新软件源列表。你可以把软件源想象成一个巨大的、不断更新的App商店目录。系统刚装好这个目录可能是旧的。我们运行这个命令来获取最新的目录信息sudo apt update这个命令本身不安装任何新软件只是让系统知道现在仓库里都有哪些软件、什么版本。我习惯在每次大规模安装软件前都先update一下确保信息是最新的。有时候你会看到一些“忽略”或者“失败”的仓库地址这可能是网络暂时不通或者源地址失效只要主源没问题就影响不大。接下来我们安装几个基础但至关重要的工具包。第一个是net-tools这个工具包包含了ifconfig这个老牌的网络配置查看命令。虽然现在有更先进的ip命令但很多老教程和脚本还在用ifconfig装上它省心。sudo apt install net-tools -y安装完成后在终端输入ifconfig就能看到所有网络接口的详细信息包括你刚配置的固定IP是否生效一目了然。3. 核心工具安装ADB、AAPT与JDK测试环境的“三剑客”来了ADB、AAPT和JDK。这三个是安卓应用开发和测试尤其是GMS相关测试的基石缺一不可。我会告诉你每个工具是干嘛的为什么要装这个版本以及怎么验证它装对了。ADB (Android Debug Bridge)这是咱们和安卓设备通信的“桥梁”。通过它你可以在电脑上给手机安装应用、推送文件、执行shell命令、抓取日志等等。GMS测试中大量的设备交互都靠它。安装很简单sudo apt install adb -y安装完用adb version命令查看版本。这里有个经验之谈建议使用版本1.0.41或更高。有些特别老的系统仓库里的ADB版本可能太低连接高版本安卓手机会有问题。如果你发现adb devices识别不到设备除了检查USB调试是否打开、线材是否完好外也可以考虑升级ADB。可以通过下载Android SDK Platform-Tools来获取最新版的ADB工具包进行替换。AAPT (Android Asset Packaging Tool)这个工具可能不如ADB出名但同样关键。它用于查看、分析和反编译APK文件的信息。在GMS测试中我们经常需要验证APK的包名、版本号、权限声明、使用的SDK版本等信息AAPT就是干这个的。安装命令sudo apt install aapt -y装好后你可以找个APK文件试试手。比如把APK文件拖到桌面在终端里进入桌面目录然后执行aapt dump badging 你的应用名.apk | grep package这条命令会输出APK的包名和版本号信息。aapt命令的参数很多dump badging是最常用的一种可以快速获取应用的核心信息。JDK (Java Development Kit)这是重中之重也是版本选择上最容易出错的地方。安卓系统本身、编译工具链以及很多测试框架都依赖特定版本的Java环境。装错了版本可能编译失败或者测试框架直接报错退出。记住这个版本对应关系是我用真机真环境试出来的Android 10 及更早版本使用JDK 8(OpenJDK 8)Android 11 到 Android 12官方推荐JDK 11但部分场景JDK 8也可用。Android 13必须使用JDK 11。Android 14 及更高版本必须使用JDK 17。对于GMS测试我们目前面对的设备系统版本跨度可能很大但测试套件本身如CTS会指明所需的JDK版本。一个比较通用的选择是安装OpenJDK 11因为它能覆盖Android 13及之前的大部分测试需求。安装命令sudo apt install openjdk-11-jdk -y安装完成后务必验证。用java -version和javac -version分别查看运行环境和编译器的版本确保它们都指向11。系统里可能有多个Java版本可以通过sudo update-alternatives --config java来切换默认版本。我建议在测试环境里保持只有一个主要JDK版本避免混乱。4. 深入VTS测试环境搭建如果你需要进行的测试不仅仅是基础的兼容性CTS或GMSGTS测试而是涉及到系统底层兼容性的VTS (Vendor Test Suite)测试那么环境搭建要更复杂一些。VTS测试主要用于验证设备厂商实现的系统底层HAL层等是否与安卓开源项目AOSP的接口规范一致所以它对Python环境和一些特定编译工具的依赖很强。别怕一步步来。首先依然是更新软件源并安装一些基础编译工具这些是后续安装Python扩展包所必需的sudo apt update sudo apt install build-essential libssl-dev libffi-dev -y接下来是Python环境。VTS测试框架历史上依赖Python虽然新版本在向Python 3迁移但一些老的工具链或脚本可能仍需要Python 2。为了兼容性我建议两个都装。先安装Python 3和开发头文件sudo apt install python3 python3-dev python3-pip -y然后安装Python 2.7Ubuntu 20.04及以后版本默认不安装但仓库里通常还有sudo apt install python2.7 python2.7-dev -y安装后你可以用python3 --version和python2 --version来分别查看版本。系统命令python默认指向哪个版本可以用update-alternatives来配置但通常我们会在具体使用时显式指定python2或python3。VTS测试中大量使用了Google的Protocol Buffers一种高效的数据序列化工具来定义测试用例和通信协议。因此我们需要安装protobuf的编译器和Python语言支持。sudo apt install protobuf-compiler -y sudo apt install python3-protobuf -y # 如果需要Python2支持老旧VTS版本可能用到 sudo pip2 install protobuf安装完成后可以用protoc --version检查编译器版本。Python的虚拟环境Virtual Environment是管理项目依赖的神器。它能为每个项目创建一个独立的Python运行环境避免不同项目所需的库版本冲突。对于VTS这样依赖复杂的项目使用虚拟环境是最佳实践。我们先安装创建虚拟环境的工具sudo apt install python3-venv -y # 同时安装pip工具Python包管理器的升级版 sudo apt install python3-pip -y然后为你计划存放VTS测试代码的目录创建一个虚拟环境。比如在用户主目录下cd ~ python3 -m venv vts-env这会在当前目录下创建一个名为vts-env的文件夹里面包含了一个独立的Python解释器和pip。要使用这个环境需要先激活它source ~/vts-env/bin/activate激活后你的命令行提示符前面通常会显示(vts-env)表示你正处在这个虚拟环境中。之后所有通过pip install安装的包都只会安装到这个隔离的环境里不会影响系统全局的Python包。当你完成工作可以输入deactivate命令退出虚拟环境。最后确保你的pip工具是最新的并升级virtualenv如果使用的话# 在虚拟环境激活状态下升级pip和virtualenv pip install --upgrade pip # 如果你使用更老的virtualenv命令创建环境也可以升级它 # pip install --upgrade virtualenv走到这一步你的Linux系统已经从一个空白的安装盘变成了一个功能齐全、网络通畅、工具完备的GMS及VTS测试基础环境。你可以根据具体的测试任务再去下载对应的测试套件如CTS、GTS、VTS的ZIP包解压后按照其内部的说明文档进行进一步的配置和执行。记住搭建环境就像盖房子地基打稳了后面跑测试才能顺风顺水避免很多莫名其妙的问题。

相关文章:

GMS测试环境搭建指南:从零开始配置Linux系统与必备工具

1. 环境准备:从一块空白硬盘到Linux桌面 很多刚接触GMS测试的朋友,一听到要自己搭环境就头大,感觉又要装系统又要配网络,一堆命令看得眼花。别慌,这事儿我干过不下几十次了,从给新同事配机器到批量部署测试…...

OpenVisualSense-Lite:轻量级多模态嵌入式视觉融合平台

1. 项目概述OpenVisualSense-Lite 是一款面向嵌入式视觉感知应用的轻量级融合成像平台,其设计目标并非追求极致性能参数,而是构建一个可验证、可扩展、可复现的硬件-算法协同验证载体。该系统以“功能闭环”为第一设计原则,在资源受限条件下完…...

基于专用ASIC的节日触摸灯光装置设计

1. 项目概述“2025福兴大发”是一款面向节日装饰与交互式电子工艺品场景设计的嵌入式触摸感应灯光装置。其核心目标是将传统民俗符号——“福”字,通过现代电子技术实现动态视觉表达:在保持简洁外观的前提下,集成低功耗触摸唤醒、多模式LED驱…...

从零到一:实战华为OceanStor SAN存储与Linux服务器的iSCSI对接

1. 环境准备:理解iSCSI与SAN存储的“桥梁”作用 大家好,我是老张,一个在运维圈子里摸爬滚打了十多年的老家伙。今天咱们不聊虚的,就来手把手干一件在数据中心里特别常见,但对新手又有点“发怵”的活儿:把一…...

浪潮服务器NVMe硬盘通过Intel VROC实现高效RAID配置实战指南

1. 为什么你需要关注浪潮服务器上的NVMe RAID? 如果你手头有浪潮的服务器,并且已经或者打算装上几块NVMe固态硬盘,那你可能正面临一个幸福的烦恼:单块NVMe盘速度已经快得飞起,但怎么才能让它们“组团”工作&#xff0c…...

3步解锁加密音频:qmc-decoder开源工具全解析

3步解锁加密音频:qmc-decoder开源工具全解析 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾遇到这样的困扰:下载的QQ音乐文件无法在手机、…...

【Dify多智能体协同工作流配置终极指南】:20年架构师亲授5大避坑要点与3步上线实战法

第一章:Dify Multi-Agent 协同工作流配置全景认知Dify 的 Multi-Agent 协同工作流并非简单串联多个 LLM 节点,而是基于可编排的 Agent 生命周期管理、上下文传递契约与状态路由机制构建的分布式智能体协作范式。其核心配置要素涵盖角色定义、工具绑定、消…...

DoubleQoLMod-zh:工业效率工具的革命与实践

DoubleQoLMod-zh:工业效率工具的革命与实践 【免费下载链接】DoubleQoLMod-zh 项目地址: https://gitcode.com/gh_mirrors/do/DoubleQoLMod-zh 在《Captain of Industry》的工业世界中,每一位玩家都面临着资源调配复杂、生产效率低下、全局视野受…...

WORD自动编号全攻略:从基础到高级定制(图文并茂)

1. 自动编号:不只是“1、2、3”那么简单 很多朋友一听到WORD的“自动编号”,脑子里蹦出来的就是“1、2、3”或者“A、B、C”。我以前也是这么想的,觉得这功能不就是给段落前面加个顺序嘛,能有多复杂?直到有一次&#x…...

C#与.NET Core微服务实战:从架构设计到Docker部署的完整指南

1. 微服务架构设计:从单体到微服务的思维转变 很多刚开始接触微服务的朋友,可能和我当初一样,觉得这玩意儿就是把一个大项目拆成几个小项目,听起来简单,做起来却处处是坑。我最早做的一个电商系统,就是典型…...

【内存溢出】“意志力补丁”为什么总会导致系统崩溃?

【生命OS系统状态提示】当前篇目: 篇2系统状态: 🔧 补丁方案失效分析当前任务: 定位底层根本原因老哥,咱们通过上篇看清了系统报错,很多人下决心戒烟,但都会经历一个挺熟悉的剧情。正如一个哥们…...

VMware与Ubuntu 23高效协作指南:共享剪贴板与文件夹的完整配置流程

1. 为什么需要共享?从“隔阂”到“无缝”的体验跃迁 如果你和我一样,经常在Windows主机上用VMware跑Ubuntu虚拟机做开发或学习,那你一定经历过这种“割裂感”:在主机上复制了一段代码,想粘贴到虚拟机的编辑器里&#x…...

V免签二开实战:从源码到易支付接口的无缝集成指南

1. 为什么你需要V免签二开与易支付集成? 如果你自己折腾过个人网站或者独立开发过一些小工具,肯定遇到过“怎么收钱”这个老大难问题。想接个微信支付、支付宝官方接口?门槛高得吓人,动不动就要营业执照、对公账户,个人…...

突破音频加密枷锁:qmc-decoder解放你的音乐收藏

突破音频加密枷锁:qmc-decoder解放你的音乐收藏 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经遇到过这样的困境:花费金钱购买的音乐&am…...

快速部署fft npainting lama:跟着教程,10分钟搭建个人AI图片修复站

快速部署fft npainting lama:跟着教程,10分钟搭建个人AI图片修复站 1. 引言:为什么你需要一个自己的AI图片修复工具? 你有没有遇到过这样的烦恼?一张珍贵的家庭老照片,上面有几道划痕;一张精心…...

开源工具如何解决鸣潮游戏性能问题?提升帧率与优化体验的完整方案

开源工具如何解决鸣潮游戏性能问题?提升帧率与优化体验的完整方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否正在寻找一款能够有效解决鸣潮游戏卡顿、帧率不稳定问题的游戏工具&…...

突破网页图片格式壁垒:Save Image as Type让格式转换效率提升80%

突破网页图片格式壁垒:Save Image as Type让格式转换效率提升80% 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors…...

Flutter 三方库 dart_arango_min 的鸿蒙化适配指南 - 图数据库的极简契约、在鸿蒙端实现 ArangoDB 高效交互实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 dart_arango_min 的鸿蒙化适配指南 - 图数据库的极简契约、在鸿蒙端实现 ArangoDB 高效交互实战 前言 在进行 Flutter for OpenHarmony 的复杂社交网络分析、推荐系统或者…...

Flutter 三方库 ipsum 的鸿蒙化适配指南 - 让 UI 占位更具灵性、在鸿蒙端实现高效设计打样与排版验证实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 ipsum 的鸿蒙化适配指南 - 让 UI 占位更具灵性、在鸿蒙端实现高效设计打样与排版验证实战 前言 在进行 Flutter for OpenHarmony 的 UI 开发初期,我们经常会遇…...

基于RexUniNLU的Python入门教程智能问答系统

基于RexUniNLU的Python入门教程智能问答系统 你是不是刚开始学Python,经常被一些基础问题卡住?比如“列表和元组到底有什么区别?”、“这个报错是什么意思?”、“这个语法该怎么写?”。网上搜答案吧,要么太…...

AI智能客服意图变更处理实战:从原理到最佳实践

最近在做一个AI智能客服项目,上线后发现一个挺头疼的问题:业务部门隔三差五就推出新活动、新服务,客服机器人经常“听不懂”用户的新问法,识别准确率咔咔往下掉。比如,原来用户问“怎么退票”,现在变成了“…...

通义千问1.5-1.8B-Chat-GPTQ-Int4镜像免配置教程:开箱即用的轻量级聊天模型方案

通义千问1.5-1.8B-Chat-GPTQ-Int4镜像免配置教程:开箱即用的轻量级聊天模型方案 1. 开箱即用的轻量级AI聊天方案 今天给大家介绍一个特别实用的AI聊天模型方案——通义千问1.5-1.8B-Chat-GPTQ-Int4镜像。这个方案最大的特点就是完全免配置,开箱即用&am…...

3个核心价值:地理数据处理零代码工具如何提升空间分析效率

3个核心价值:地理数据处理零代码工具如何提升空间分析效率 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io 在数字化时代,空间数据…...

【MCP客户端状态同步机制面试通关指南】:20年架构师亲授高频考点与避坑清单

第一章:MCP客户端状态同步机制面试通关总览MCP(Managed Client Protocol)客户端状态同步机制是分布式系统中保障多端一致性与实时响应能力的核心设计,常见于云桌面、远程协作平台及边缘终端管理场景。面试官常聚焦于同步时机、冲突…...

AI辅助LaTeX开发:让快马平台的智能模型成为你的排版顾问

作为一名经常需要撰写技术文档和学术论文的开发者,我对LaTeX是又爱又恨。它排版精美、专业,但复杂的语法和层出不穷的宏包常常让我在“调格式”上耗费大量时间,打断内容创作的思路。最近在尝试用AI来辅助这个过程,发现体验提升巨大…...

nlp_structbert_sentence-similarity_chinese-large 跨语言应用探索:中英文混合文本相似度计算

nlp_structbert_sentence-similarity_chinese-large 跨语言应用探索:中英文混合文本相似度计算 最近在做一个多语言内容管理的项目,遇到了一个挺有意思的挑战:系统里既有纯中文的技术文档,也有大量中英文混杂的代码注释&#xff…...

4大核心优势重构学术写作:WPS-Zotero插件全攻略

4大核心优势重构学术写作:WPS-Zotero插件全攻略 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 一、价值定位:重新定义文献管理效率 打破学术写作的…...

Python基于flask-django大学生在线租房平台

目录需求分析技术选型数据库设计核心功能实现支付与合同安全措施测试部署项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作需求分析 明确平台核心功能模块:用户注册登录、房源发布浏览、在线…...

卡证检测矫正模型实战教程:用curl上传base64图片并接收JSON+矫正图

卡证检测矫正模型实战教程:用curl上传base64图片并接收JSON矫正图 你是不是也遇到过这样的烦恼?拍了一张身份证照片,结果因为角度问题,照片歪歪扭扭,OCR识别软件根本读不出来。或者,在开发一个需要自动处理…...

CLIP-GmP-ViT-L-14环境部署:Ubuntu22.04+Python3.10+Gradio7860端口配置

CLIP-GmP-ViT-L-14环境部署:Ubuntu22.04Python3.10Gradio7860端口配置 如果你正在寻找一个能精准理解图片和文字关系的AI模型,那么CLIP-GmP-ViT-L-14绝对值得你花时间部署。这个模型在理解图像内容方面表现出色,准确率能达到90%左右&#xf…...