要打包生成安卓APP当然必须要安卓SDK(现在进化至AndroidStudio),此下载以及环境配置相关请自行百度,这里不再过多总结.
First:我们从导出运行安卓APP开始:
安卓的打包导出,以及开发者模式启动,ADB链接检测
cmd中执行adb nodaemon server,查看adb的端口号是多少,一般情况下是5037(why?应该软件使用的端口号是固定的),如下图
adb server is out of date.killing的解决办法
再执行netstat -ano | findstr “5037” ,会看到如下类似的情形:
这里稍微解释一下,显示的从左到右的意思分别是,连接类型(TCP)、本地地址和端口、外部地址和端口、连接状态、进程的PID号。这里有两个进程占据着5037端口,其中一个占据的是本地的5037端口,另外一个占据的是外部的5037端口,要干掉的当然就是那个本地的PID为240的端口啦!
adb server is out of date.killing的解决办法
3
CTRL+ALT+DEL唤出任务管理器。点击进程,现在要找的是PID为240的进程。有时候可能会发现任务管理器里没有进程PID的信息显示,这时候只要点击任务管理器的查看–>选择列,如下图,然后把PID勾选上即可。这时候再次查看当前进程的PID,把PID为240的进程kill掉。然后再运行adb命令就顺顺利利啦!
通过USB ADB
1.从Unity中Export Android 工程的时候一定要勾选 Development Build,autoconnect profiler
2.cmd进入adb的目录(打开到文件目录shift+右键快速到该路径)
3.输入 adb foward tcp:54999 localabstract:Unity-包名 即是Bundle Identifiler*
4.在电脑unity上打开profile,点击Active Profiler -》AndroidPlayer(ADB@127.0.0.1:54999)
6.Ps 如果打开adb的时候提示Error,估计是其他程序把端口占用了,例如腾讯管家,尤其360等,关掉程序后者进程就可以了。提示 Device not found 的时候看看手机和电脑是否连接成功.
Second:移动端性能分析
Unity Remote简介
首先介绍Unity Remote,一般作用是为了有些操作,类似多点触控等等操作,必须要在手机端才能触发,如果我们不想一遍遍的编译apk安装到手机上的话,Unity Remote会是一个很好的选择。
但是注意:Remote在手机上的运行结果并不能取代打包安装之后运行的结果,他只是将编辑器的显示图像同步到了手机上,并通过手机接收输入而已(实际为电脑运行,无法测试性能)。所以并无太大卵用,而我们实际需要用到的是unity的proFlie性能测试!
ProFile性能检测
首先得连接到手机检测好adb devices的连接,具体参加First章节,那么之后就只需要点选上图的设置,build&Run即可,打开unity的ProFile,并选择监测的正确设备即可:
//未完续贷
Third:移动端Debug的输出
Unity在Android手机中运行时的所有日志可以通过Logcat捕获到,我们还是可以通过adb工具很方便的在pc上看到游戏运行时打出的Log信息。
1.在确保手机设备正确连接adb的情况下,只需要在指令窗口(cmd)输入adb logcat -s Unity(保留空格), 即可看到游戏运行过程中通过Debug.log打出的所有日志信息。
2.也可以直接找到安卓sdk目录(我的是E:\Program Files (x86)\ADT\sdk)下的adb.exe。
在桌面创建快捷方式,找到快捷方式,右键属性,有这么一项
目标:”E:\Program Files (x86)\ADT\sdk\platform-tools\adb.exe”
在这后面加上 logcat -s Unity(logcat 前面必须有空格!)
然后再手机上打开你安装好的应用可以看到后台信息。
3.以及宣雨松大佬的一些干货(移动端导出Log的Txt日志):
http://www.xuanyusong/archives/2477
和他小弟的一些总结:http://blog.csdn/chenj_freedom/article/details/48521505
4.以及将debug直接输出到屏幕上的方法:
使用以下脚本,拖到任意一个GameObject上即可
public class ErrorDisplay : MonoBehaviour
{
internal void OnEnable()
{
Application.RegisterLogCallback(HandleLog);
}
internal void OnDisable()
{
Application.RegisterLogCallback(null);
}
private string m_logs;
/// <summary>
///
/// </summary>
/// <param name="logString">错误信息</param>
/// <param name="stackTrace">跟踪堆栈</param>
/// <param name="type">错误类型</param>
void HandleLog(string logString, string stackTrace, LogType type)
{
m_logs += logString + "\n";
}
public bool Log;
private Vector2 m_scroll;
internal void OnGUI()
{
if (!Log)
return;
m_scroll = GUILayout.BeginScrollView(m_scroll);
GUILayout.Label(m_logs);
GUILayout.EndScrollView();
}
}
更多推荐
基于UNITY在安卓手机上的adb调试以及Profile性能检测
发布评论