Android (2) —— Android Studio找不到连接的手机

本文详细介绍了如何在Android平台上搭建开发环境,包括AndroidStudio的配置、JDK与AndroidSDK的安装,以及如何使小米手机支持USB调试。此外,还提供了解决常见连接问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

当前,深度学习有很多框架:tensorflow、pytorch、caffe、keras等。很多场景下,需要训练好的模型在移动端运行。移动端的框架又有很多TensorFlow Lite、Core ML、NCNN、MNN等等。
其中 tensorflow 所对应的移动端移植框架 TensorFlow Lite。在自己这个系列记录使用 调用tfile进行神经网络预测的android的实现。

整个记录为:
Android(1) —— Android studio 开发环境搭建
Android(2) —— Android Studio找不到连接的手机
Android(3) —— 环境配置、手机端界面设计
Android(4) —— 图像分类的*.tfile的使用 Classify.java
Android(5) —— 安卓机通过相机或相册获取图片PhotoUtil.java
Android(6) —— 主函数的详解 MainActivity.java

环境

  • JDK
  • Android SDK
  • Android Studio 3.5(自己使用的是3.5,其他版本应该有所差异)
  • 安卓手机(自己使用的是小米手机)
  • 数据线(确定USB是OK的,有些数据线是能充电,无法进行数据传输)

1 手机端(以小米手机为例)

  1. 打开手机的开发者模式。
    不同的手机打开的方式不同,根据手机型号百度即可找到打开方式

  2. 【设置】->【更多设置】->【开发者选项】->【打开 USB调试】->【打开 USB安装】->【关掉 启用MIUI优化】
    (这个是小米的操作方式,重点标红的两步,最后一步其他品牌的安卓机无需操作)

  3. 连接手机,手机端出现下图,勾选【一律允许使用这台计算机进行调试】,点击【确定】。

    在这里插入图片描述
    在下拉栏里,点击【正在通过USB充电】,出现下图,选择【传输文件(MTP)】。

    在这里插入图片描述

  4. 打开【设备管理器】->【便携设备】,能够正常显示手机型号,则说明手机端处理完毕。
    在这里插入图片描述

  5. 自己在操作时,未遇到 设备管理器中的带感叹号的【ADBInterface】,以及更新手机驱动的操作。后续如若遇到,再补充这部分内容。

2 电脑端

2.1 配置ADB

通过USB调试应用时,是借助ADB向手机导入APK的,所以如果ADB中能够看到自己的手机时,那么手机已经成功建立连接了。

  1. 找到Android SDK的目录。C:\Users\hp\AppData\Local\Android\Sdk\platform-tools。这是默认路径,其中 hp 是自己的电脑名字。
  2. 配置环境变量。
    在桌面【“此电脑”上右键】–>【属性】–>【高级系统设置】–>【环境变量】
    在【系统变量】中找到【Path】进行双击 -->【新建】,将Android SDK的路径添加进去
    在这里插入图片描述
  3. 打开终端,输入 adb devices,可以看到设备列表中是显示有自己的手机
    在这里插入图片描述
    (当没有这一步骤时,输入adb devices时会报错命令有误,但并不影响Android Studio的使用)

2.2 Android Studio 中的配置

  1. 安装 Google USB Driver
    【File】->【Settings】->【Appearance & Behavior】->【System Settings】->【Android SDK】->【SDK Tools】->【Google USB Driver】->【OK】。等待下载安装完,点击【finish】
    在这里插入图片描述

2.3 开始调试

点击工具栏中的 绿色三角按钮,运行。
可以在Profiler中看到手机的型号。这个窗口显示方式:快速按两下SHIFT键,搜索Profiler,双击即可。
在这里插入图片描述
在这里插入图片描述
如果Profiler中没有看到自己设备名称,重新点击绿色三角运行;打开终端输入adb devices,看是否连接成功;把开发者选项关闭再打开,再打开USB调试,再运行;重新Sync在运行。依次尝试下,直至成功。

<think>嗯,用户这次的问题是关于如何测试Unity游戏在手机上的性能和兼容性,参考了之前提供的四个引用内容。用户可能是个独立游戏开发者或小团队成员,正在为移动端发布做准备,之前已经完成了Flappy Bird的移植和触屏优化,现在进入测试阶段。 从引用内容看,用户特别关注几个痛点:一是设备碎片化问题(引用1的Universal Device Preview插件能解决),二是移动端特有的图形问题如线性空间变暗(引用2),三是性能分析工具的选择(引用3的Profiler),四是网络延迟优化(引用4)。不过用户当前问题集中在性能和兼容性测试,网络部分可能后续才会涉及。 用户深层需求其实是“如何高效发现并解决真机上的问题”,毕竟移动设备千差万别。需要强调三点:一是避免只依赖编辑器测试,二是注意Android和iOS的差异,三是性能标准要符合实际硬件水平。比如引用3提到Profiler的内存数据不准,这点必须提醒用户。 测试方案要分层设计:先做基础兼容性测试(分辨率/OS版本),再深入性能分析。引用1的插件能大幅减少前期测试成本,但真机测试不可替代。特别要注意引用2的线性空间问题——这属于Unity移动端经典坑,必须单列说明。 用户可能预算有限,所以推荐了免费方案(Unity Profiler+ADB)和开源工具(PerfDog社区版)。对于广告等第三方模块的影响,虽然用户没问,但建议在压力测试时加入,因为引用1提到过广告集成。 最后生成的四个相关问题都针对用户工作流:设备覆盖(Q1)和触控测试(Q2)是兼容性核心,发布流程(Q3)承接用户后续动作,广告平衡(Q4)则关联ta之前看的广告模块内容。这样形成完整闭环。</think>以下是针对Unity移动游戏性能和兼容性测试的完整方案,结合站内引用和行业最佳实践: --- ### 一、性能测试工具与方法 #### 1. **Unity内置工具** - **Profiler** - 连接真机测试:Build Settings勾选`Development Build`和`Autoconnect Profiler`,安装后通过WiFi或USB连接[^3] - 关键指标监测: ```markdown CPU: 分析脚本函数耗时(如Physics.Update、UI渲染) GPU: 高端设备可查看渲染管线耗时(需OpenGL ES 3.0+支持) 内存:跟踪`Total Used Memory`和`Texture Memory`(注意:移动端显示值需×1.5倍校准[^3]) ``` - 操作路径:`Window > Analysis > Profiler` - **Frame Debugger** 逐帧分析Draw Call和渲染状态,定位图形性能瓶颈。 #### 2. **硬件模拟测试** - **Universal Device Preview插件** - 模拟不同设备配置:在编辑器中预设分辨率/CPU性能(如低端机限制帧率30FPS)[^1] - 触屏模拟:直接测试点击响应和UI适配 - 适用场景:快速验证基础兼容性,减少真机部署次数[^1] #### 3. **真机深度测试** - **Android专属工具** - **ADB命令**: ```bash adb shell dumpsys gfxinfo <包名> # 渲染性能分析 adb shell procrank # 精确内存占用(需root) ``` - **PerfDog**:跨平台性能监测工具,支持帧率、CPU/GPU占用率曲线记录。 - **iOS专属工具** - **Xcode Instruments**: - `Time Profiler`分析代码耗时 - `Memory Leaks`检测内存泄漏 - `Metal System Trace`分析GPU负载 --- ### 二、兼容性测试重点 #### 1. **图形兼容性问题** - **烘焙光照变暗**: 线性空间(Linear Space)在移动端可能引发贴图变暗,解决方案: ```csharp // 在Unity 2019+版本中强制启用兼容模式 #if UNITY_ANDROID || UNITY_IOS Graphics.lightsUseLinearIntensity = false; #endif ``` 或回退到Gamma空间(牺牲色彩准确性)[^2] - **纹理压缩格式**: | 平台 | 推荐格式 | 测试要点 | |----------|-------------------|-------------------| | Android | ASTC 6x6 | Mali GPU兼容性 | | iOS | PVRTC 4bpp | A系列芯片支持度 | #### 2. **设备碎片化覆盖** - **分辨率适配**:测试主流比例(19.5:9/16:9)及极端分辨率(如折叠屏) - **OS版本覆盖**:Android 8.0+ / iOS 13+ 必测,低版本需降级特性 - **内存阈值测试**: - 低内存设备(≤2GB):触发`SystemMemoryLow`事件时释放资源 - 使用`SystemInfo.systemMemorySize`动态调整画质 #### 3. **输入兼容性** - **触控异常检测**: ```csharp void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); // 测试多指触控冲突(如误触发暂停菜单) if (touch.phase == TouchPhase.Began && touch.fingerId == 0) { Debug.Log("主触点坐标: " + touch.position); } } } ``` - **虚拟按键适配**:避开刘海屏/曲面屏边缘触控区域 --- ### 三、测试流程设计 1. **阶段1:自动化冒烟测试** - 使用Unity Test Framework编写基础用例(如场景加载、角色移动) - 云测试平台:Firebase Test Lab(支持1000+真机机型) 2. **阶段2:深度性能分析** - 长时间运行测试(≥30分钟),监测内存泄漏 - 热启动/冷启动耗时对比(Android ADB命令:`am start -W <包名>`) 3. **阶段3:极限环境验证** - 网络延迟模拟:引用[^4]的TCP延迟补偿技术测试 - 低电量模式(iOS限制CPU频率,Android触发Doze模式) --- ### 四、常见问题解决 | 问题现象 | 可能原因 | 解决方案 | |---------------------------|---------------------------|------------------------------| | 低端机帧率骤降 | 过量Draw Call | 合并材质/Sprite Atlas优化 | | 特定机型纹理撕裂 | GPU驱动兼容性问题 | 关闭MSAA,启用FXAA | | iOS安装后闪退 | 内存超限 | 优化AssetBundle加载策略 | | Android触控无响应 | 手势冲突 | 检查EventSystem的Raycaster配置 | --- ### 五、结果分析与优化 1. **性能基准制定**(达标线): - 帧率稳定性:90%时间≥50 FPS - 内存峰值:≤设备总内存的30% - 启动时间:冷启动<3秒(SSD机型) 2. **优化方向优先级**: $$ \text{优化收益} = \frac{\text{性能提升}}{\text{开发成本}} $$ 推荐排序: - 高收益:Draw Call合并、纹理压缩 - 中收益:对象池、LOD - 低收益:Shader优化(需专业图形程序员) > **提示**:使用Universal Device Preview的`自定义配置`模拟低端机(如设定2核CPU+1GB内存),可快速验证优化效果[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值