基于UNITY在安卓手机上的adb调试以及Profile性能检测

编程知识 更新时间:2023-04-17 19:47:28

要打包生成安卓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性能检测

本文发布于:2023-04-14 03:25:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/a53cee695f8cc624b684d1357f0efa6e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机上   性能   安卓手   UNITY   adb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 74538文章数
  • 14阅读数
  • 0评论数