unity-Profiler调试Android的正确姿势
使用 unity 自带的 Profiler 调试 打出来的 Android 包
这里使用 夜神模拟器 作为安卓设备,当然你也可以用真机
1. 前置条件
安卓的相关环境
- java、ant、sdk、ndk 什么的都装好(其实这里只需要 sdk 里面的 adb),配好 adb 工具的环境变量(意思就是 cmd 里直接输 adb 命令即可)
打包 Android 包是,勾选 如下几个选项
- Developmemnt Build
- Autoconnect Profiler
- Script Debugging
2. 步骤
unity编辑器设置为 Android 平台,如上图所示(这里被坑了有点久,一直在 PC平台 上写代码,忘了设置这个导致一直连不上 Profiler)
- File -> Build settings -> Switch Platform(Android)
运行游戏
adb 调试设备
- (这里使用 夜神模拟器,所以需要使用 命令连接端口,真机的话需要安装对应的驱动,并打开 Android设备的 调试模式)
- adb连接模拟器:
adb connect 127.0.0.1:62001
- 连接unity和游戏:
adb forward tcp:54999 localabstract:Unity-com.xxxx.yyy
,com.xxxx.yyy 为游戏的包名,也就是 Bundle Identifier
- adb连接模拟器:
下面是py偷懒脚本,双击一下就好了,相关命令也在里面
#!/usr/bin/env python import os import sys Cmd_kill = "adb kill-server" Cmd_start = "adb start-server" Cmd_connect = "adb connect 127.0.0.1:62001" Cmd_devices = "adb devices" Cmd_profiler = "adb forward tcp:54999 localabstract:Unity-com.xxxx.yyy" def conn2Nox(): os.system(Cmd_kill) os.system(Cmd_start) os.system(Cmd_connect) os.system(Cmd_devices) os.system(Cmd_profiler) os.system("pause") pass def main(): conn2Nox() pass if __name__ == "__main__": main()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- (这里使用 夜神模拟器,所以需要使用 命令连接端口,真机的话需要安装对应的驱动,并打开 Android设备的 调试模式)
unity编辑器打开Profiler, Windows -> Profiler(ctrl + 7)
Active Profiler -> AndroidPlayer([email protected]:54999)
顺便看看数据
看这个 SerializedFile,其实就是 AssetBundle 的序列化文件在内存的占用,当前有 107 个AB, 107 * 512 也超不多就是 50m+ 了