title: unity-Profiler调试 Android 、ios 的正确姿势
categories: Unity3d
tags: [android, unity, 调试, profiler]
date: 2017-04-13 18:58:18
comments: false
使用 unity 自带的 Profiler 调试 打出来的 Android 、ios 包
Android 使用 夜神模拟器 作为安卓设备,当然你也可以用真机ios 使用真机
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()
- (这里使用 夜神模拟器,所以需要使用 命令连接端口,真机的话需要安装对应的驱动,并打开 Android设备的 调试模式)
-
unity编辑器打开Profiler, Windows -> Profiler(ctrl + 7)
-
Active Profiler -> AndroidPlayer(ADB@127.0.0.1:54999)
-
3. 顺便看看数据
-
看这个 SerializedFile,其实就是 AssetBundle 的序列化文件在内存的占用,当前有 107 个AB, 107 * 512 也超不多就是 50m+ 了
常见问题
Q: 连不上夜神模拟器?
现在(20180523)链接使用输入ip 127.0.0.1 才能链接
IOS 平台
相比 Android 简单很多
1. 前置条件
-
mac 操作系统环境(打包及profile都在该环境下)
-
勾选以下选项 及 debug 模式
- Symlink Unity libraries 可以不勾选
2. 打包
-
直接打出包就可以链接profile调试