Unity 使用 ADB 实时查看手机运行性能

Unity 使用 ADB 实时查看手机运行性能

  • 前言
  • 操作步骤
    • ADB工具下载
    • ADB工具配置
    • 手机进入开发者模式并开启USB调试
    • 使用ADB连接手机
    • Unity打包设置
    • 使用Profiler实时查看性能情况
    • 优化建议
  • 常见问题

前言

通过 ADB(Android Debug Bridge)连接安卓设备,并结合 Unity Profiler 实时查看应用性能。

操作步骤

ADB工具下载

ADB工具下载地址
https://developer.android.com/tools/releases/platform-tools

ADB工具配置

将下载并解压后的 platform-tools 文件夹,移动到不含中文或空格的路径(建议 C:\platform-tools 或 /usr/local/platform-tools)。
Windows:
打开「系统属性」→「高级」→「环境变量」
在「系统变量」下,找到或新增 PATH,添加 C:\platform-tools。
保存后,重启终端以生效。
解压并配置环境变量

手机进入开发者模式并开启USB调试

MIUI(小米)示例:

  1. 开启开发者模式
    设置->我的设备->全部参数信息->一直点击MIUI版本号,直到弹出你已进入开发者模式为止
  2. 开启 USB 调试
    设置 → 系统或更多设置 → 开发者选项 → 打开「USB 调试」
  3. 连接与授权
    使用 USB 数据线连接手机,选择「文件传输」模式
    设备端出现「允许 USB 调试」弹窗,选择「始终允许」并确认

不同手机参考方法:
https://www.bilibili.com/opus/913872738855157767

在终端(Terminal / CMD)中执行:

使用ADB连接手机

打开cmd输入adb devices即可查看设备列表

adb devices

若看到类似 device 状态,即表示连接成功:

List of devices attached
1234567890abcdef	device

Tip:若显示 unauthorized,检查设备是否授权,或重插数据线重试。

Unity打包设置

File → Build Settings,选择 Android 平台,勾选 Development Build 与 Script Debugging
打包设置

使用Profiler实时查看性能情况

  1. Window → Analysis → Profiler 打开 Profiler 窗口

  2. 在左侧设备下拉框,选择对应的 Android 设备

  3. 点击顶部「Record」按钮,开始实时捕获数据

  4. 关注:

  • CPU Usage:查看各模块耗时
  • Rendering:Draw Call、Batches、SetPass Calls
  • Memory:GC Alloc、纹理、堆内存
  • GPU(需设备支持)Profiler查看性能

优化建议

  • 帧率稳定性:利用 Deep Profile 模式,查看热点函数调用栈
  • GC 触发点:监控 GC Alloc,避免在热路径中产生大量临时对象
  • Draw Call 优化:合并材质、使用 Static Batching 与 Dynamic Batching
  • 内存管理:加载时延迟释放、资源池化(Object Pool)
  • 纹理与 Mipmap:适当压缩、裁剪避免超高分辨率资源

常见问题

  1. 连接不上设备:
  • 检查数据线质量与接口,确认 adb kill-server → adb start-server
  1. Profiler 无数据:
  • 确保 Development Build 勾选,检查防火墙或网络代理

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

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

相关文章

深入理解 HttpExchange_Java 中构建 HTTP 服务的基础组件

1. 引言 1.1 Java 中的轻量级 HTTP 服务需求 随着微服务、工具类应用和嵌入式系统的兴起,开发者对轻量级 HTTP 服务的需求日益增长。相比引入庞大的框架(如 Spring Boot),使用 JDK 原生 API 构建 HTTP 服务成为一种快速、低依赖的替代方案。 JDK 提供了 com.sun.net.htt…

【RocketMQ NameServer】- NameServer 启动源码

文章目录 1. 前言2. RocketMQ 通信架构3. NameServer 启动流程3.1 创建 NameServerController3.2 启动 NameServerController3.3 NamesrvController#initialize3.3.1 Netty 通信的整体流程3.3.2 创建 NettyRemotingServer 3.4 this.remotingServer.start()3.4.1 this.remotingS…

【算法题】荷兰国旗问题[力扣75题颜色分类] - JAVA

一、题目 二、文字解释 1.1 前言 本题是经典的「荷兰国旗问题」,由计算机科学家 Edsger W. Dijkstra 首先提出。如同图中所示的荷兰国旗,其由红、白、蓝三色水平排列组成。在算法领域,该问题可类比为将一个由特定的三种元素(可抽…

MySQL数据操作全攻略:DML增删改与DQL高级查询实战指南

知识点4【MySQL的DDL】 DDL:主要管理数据库、表、列等操作。 库→表(二维)→列(一维) 数据表的第一行是 列名称 数据库是由一张或多张表组成 我们先学习在数据库中创建数据表 0、常见的数据类型: 1、…

AtCoder AT_abc404_g [ABC404G] Specified Range Sums

前言 赛时想到了差分约束,随手写了个 SPFA 结果挂的很惨……还是太菜了,赛后 Bellman-Ford 又调了半天。 题目大意 给定整数 N , M N,M N,M 和长度为 M M M 的三个整数序列 L ( L 1 , L 2 , … , L M ) , R ( R 1 , R 2 , … , R M ) , S ( S 1…

如何基于HAL库进行STM32开发

一、初识HAL库 STM32 开发中常说的 HAL 库开发,指的是利用 HAL 库固件包里封装好的 C 语言编写的驱动文件,来实现对 STM32 内部和外围设备的控制。但只有 HAL 库还不能直接驱动一个 STM32 的芯片,其它的组件已经由 ARM 与众多芯片硬件、软件厂…

Qt:(创建项目)

目录 1. 使⽤QtCreator新建项⽬ 1.1 新建项⽬ 1.2 选择项⽬模板 1.3 选择项⽬路径 1.4 选择构建系统 1.5 填写类信息设置界⾯ ​编辑 1.6 选择语⾔和翻译⽂件 1.6 选择Qt套件 1.7 选择版本控制系统 1.8 最终效果 1. 使⽤QtCreator新建项⽬ 1.1 新建项⽬ 打开Qt…

WPF之Slider控件详解

文章目录 1. 概述2. 基本属性2.1 值范围属性2.2 滑动步长属性2.3 刻度显示属性2.4 方向属性2.5 选择范围属性 3. 事件处理3.1 值变化事件3.2 滑块拖动事件 4. 样式和模板自定义4.1 基本样式设置4.2 控件模板自定义 5. 数据绑定5.1 绑定到ViewModel5.2 同步多个控件 6. 实际应用…

mysql索引及数据库引擎

顺序io(不需要每次都磁盘寻址,效率高),随机io(需要每次都磁盘寻址,效率低) 如何正确的创建合适的索引? 索引是一种分散存储的数据结构 磁盘io特性:每次交互是以页为单位&…

网络安全:sql注入练习靶场——sqli_labs安装保姆级教程

网络安全:sql注入练习靶场——sqli_labs安装保姆级教程 前言 sqli-labs靶场是一个开源的sql注入练习的综合靶场,包含大部分sql注入漏洞以及注入方式 网络安全学习者可以通过在sqli-labs靶场练习提升对sql注入的理解,以及学习各种绕过姿势。…

平台介绍-开放API接口-鉴权

平台的理念是一个组织内部只建一套系统。但是现实情况是,组织内部已经建立了很多系统,是不能一次性替代的,只能先搭起平台,然后逐步开始替换。这样就不可避免的存在其他系统和平台进行交互的问题。 平台为此设计了开放API接口。其…

多端定制系统开发:打造高效全平台覆盖的APP解决方案

在移动互联网时代,用户需求日益多样化,企业若想触达更广泛的受众,仅靠单一平台的应用已远远不够。无论是iOS、Android、Web端,还是智能手表、车载设备等新兴终端,多端适配已成为企业数字化转型的刚需。多端定制系统开发…

Linux电源管理(5)_Hibernate和Sleep功能介绍

原文:Linux电源管理(5)_Hibernate和Sleep功能介绍 1. 前言 Hibernate和Sleep两个功能是Linux PM的核心功能,它们的目的是类似的:暂停使用——>保存上下文——>关闭系统以节电>恢复系统——>恢复上下文——>继续使用。 本文…

Spring 命名空间注入:p、c 与 .util 的深度解析

在 Spring 框架的开发过程中,XML 配置是一种常见且强大的方式来管理 Bean。为了让配置更加简洁、易读,Spring 提供了多种命名空间注入的方法,其中 p 命名空间注入、c 命名空间注入和 .util 命名空间尤为重要。本文将详细介绍这三种命名空间的…

RUST变量学习笔记

1,作用域概念 捕获环境 2,所有权概念 Rust则是通过所有权和借用来保证内存安全。很多人不理解为啥说Rust是内存安全的,其实就是在默认情况下,你是写不出内存不安全的代码的。 Rust的所有权并不难理解,它有且只有如下…

探索 Spring AI 的 ChatClient API:构建智能对话应用的利器

探索 Spring AI 的 ChatClient API:构建智能对话应用的利器 前言 在当今人工智能蓬勃发展的时代,智能对话系统成为了众多应用的核心组成部分。无论是客服机器人、智能助手还是聊天应用,都离不开高效、灵活的对话处理能力。Spring AI 作为 S…

开源ERP系统对比:Dolibarr、ERPNext与Odoo

对于寻求开源ERP解决方案的企业而言,Dolibarr、ERPNext和Odoo是三个备受关注的选择。它们各自拥有独特的优势和特点,适用于不同规模和需求的组织。以下是对这三个系统的详细介绍和对比,以帮助您更好地理解它们的差异,并结合中文支…

【2025年】MySQL面试题总结

文章目录 1. MySQL 支持哪些存储引擎?默认使⽤哪个?2. MyISAM 和 InnoDB 有什么区别?3. 事务的四大特性?4. 并发事务带来了哪些问题?5. 不可重复读和幻读有什么区别?6. MySQL 事务隔离级别?默认是什么级别&#xff1…

Linux常用命令29——delgroup删除组

在使用Linux或macOS日常开发中,熟悉一些基本的命令有助于提高工作效率,delgroup 是用于删除用户组的一个命令。此命令通常由超级用户(root)运行,或者通过 sudo 提权来操作。本篇学习记录delgroup命令的基本使用。 下面…

字节暑期实习-网络运维工程师面经

岗位描述 这个是ByteIntern实习,是暑期实习岗位 岗位 一面 先自我介绍 抓项目技术(会进行确认是什么技术) TCP的三次握手和四次挥手 序列号和确认应答号的位置和大小 序列号是随机的吗? 序列号为什么是随机的? …