• Unity使用Mono.Xml代替System.Xml 测试


    测试环境


    操作系统:Windows8.1

    开发工具:Unity5.5.2


    1、新建一个测试项目,观测引用System.Xml与Mono.Xml解析文件正确性,与打包后APK体积大小。

    2、Mono.Xml 用例

    using UnityEngine;
    using Mono.Xml;
    using System.Security;
    
    public class MonoXmlTest : MonoBehaviour {
    
        
        void Start () {
    
            SecurityParser parser = new SecurityParser();
    
            string xmlPath = "test";
    
            parser.LoadXml(Resources.Load(xmlPath).ToString());
    
            SecurityElement element = parser.ToXml();
            
            foreach (SecurityElement node in element.Children)
            {         
                if (node.Tag == "table")
                {
                    string wave = node.Attribute("wave");
                    string level = node.Attribute("level");
                    string name = node.Attribute("name");
                    Debug.Log("wave:" + wave + " level:" + level + " name:" + name);
                }
    
            }
        }
        
    }
    1. 结果正确: 
    2. 安装包大小: 
    3. 编译日志可以观测到没有引用System.Xml.dll(该文件约1mb)

      Mono dependencies included in the build
      Dependency assembly - Mono.Security.dll
      Dependency assembly - System.Core.dll
      Dependency assembly - System.dll
      Dependency assembly - mscorlib.dll
      Dependency assembly - UnityEngine.UI.dll
      Dependency assembly - UnityEngine.Networking.dll
      Dependency assembly - UnityEngine.PlaymodeTestsRunner.dll
      Dependency assembly - Assembly-CSharp.dll

    3、System.xml用例

    using UnityEngine;
    using System.Xml;
    
    public class SystemXmlTest : MonoBehaviour {
    
        // Use this for initialization
        void Start () {
         
                XmlDocument xml = new XmlDocument();
                XmlReaderSettings set = new XmlReaderSettings();            
                xml.LoadXml(Resources.Load("test").ToString());
                
                XmlNodeList nodes = xml.SelectSingleNode("ROOT").ChildNodes;
                
                foreach (XmlElement node in nodes)
                {
                    string wave = node.GetAttribute("wave");
                    string level = node.GetAttribute("level");
                    string name = node.GetAttribute("name");
    
                    Debug.Log("wave:" + wave + " level:" + level + " name:" + name);
            }
    
        }
        
    }
    1. 结果正确:
    2. 安装包大小:
    3. 编译日志:可以观测到引用System.Xml.dll(该文件约1mb)  
      编译日志:可以观测到引用System.Xml.dll(该文件约1mb)
      
      Mono dependencies included in the build
      Dependency assembly - Mono.Security.dll
      Dependency assembly - System.Core.dll
      Dependency assembly - System.Xml.dll
      Dependency assembly - System.dll
      Dependency assembly - mscorlib.dll
      Dependency assembly - UnityEngine.UI.dll
      Dependency assembly - UnityEngine.Networking.dll
      Dependency assembly - UnityEngine.PlaymodeTestsRunner.dll
      Dependency assembly - Assembly-CSharp.dll

     4、结论:使用Mono.Xml代替System.Xml在APK安装包编译后,体积减小约400kb,建议使用Mono.Xml 

  • 相关阅读:
    变更管理
    2020软件工程个人作业06——软件工程实践总结作业
    鸽子开发组---冲刺第七天
    冲刺第六天
    鸽子开发组---冲刺第五天
    鸽子开发组--冲刺第四天
    鸽子开发组--冲刺第三天
    鸽子开发组--冲刺第二天
    冲刺规划
    冲刺第一天
  • 原文地址:https://www.cnblogs.com/heitao/p/6617398.html
Copyright © 2020-2023  润新知