测试环境


操作系统: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

Unity使用Mono.Xml代替System.Xml 测试的更多相关文章

  1. XML序列化 System.Xml.Serialization

    一.定义元数据 XML序列化常用属性:XMLRoot,XMlType.XMLText.XMLEnum等 [Serializable] [XmlRoot] public class Product { ...

  2. XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类

    XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...

  3. Linq to XML - C#生成XML

    1.System.Xml.XmlDocument  XML file转成字符串  string path3 = @"C:\Users\test.xml";  XmlDocument ...

  4. Unity中用Mono插件解析xml文件

    1.解压压缩包,把文件夹拖到脚本文件夹下 Mono是第三方基金会开发的开源的东西,通过Mono基础上开发的程序可以在各个系统下运行.开发语言是C#. 用插件解析比较高效,平台运行稳定.使用简单. Un ...

  5. Unity引擎下最快的Xml读取器:UnityRapidXml

    近期发现无论是系统的System.Xml还是Mono.Xml,其实都有这样或者那样的问题,所以决定自己搞一个快一点的xml parse.以前在C++里用过rapidxml,这个确实是神一般的存在,速度 ...

  6. VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式

    [1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...

  7. arm linux下编译库System.Net.Primitives.dll和System.Xml.XmlSerializer.dll

    1.环境: /home/jello # uname -aLinux  3.10.0 #2 SMP Mon Mar 6 17:52:09 CST 2017 armv7l GNU/Linux 2.获取mo ...

  8. Unity 3D游戏-NPC对话系统With XML

    用XML做的Unity NPC对话系统 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Create X ...

  9. TestNg之XMl形式实现多线程测试

    为什么要使用多线程测试? 在实际测试中,为了节省测试时间,提高测试效率,在实际测试场景中经常会采用多线程的方式去执行,比如爬虫爬数据,多浏览器并行测试. 关于多线程并行测试 TestNG中实现多线程并 ...

随机推荐

  1. [原]docker 操作记录

    开启新容器 docker run --name 容器名字 -ti[d] 镜像 初始化命令(需要是阻塞的) 额外参数 -v 本地目录:容器目录[:ro] 映射本地路径和容器路径(时区同步.数据库dock ...

  2. Uva 11076 Add Again (数论+组合数学)

    题意:给你N个数,求把他们的全排列加和为多少 思路:对于这道题,假设数字k1在第一位,然后求出剩下N-1位的排列数num1,我们就可以知道k1在第一位时 排列有多少种为kind1, 同理,假设数字k2 ...

  3. 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  4. HTML5技术实现Web图形图像处理——WebPhotoshop精简版

    WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包 ...

  5. node.js 中模块的循环调用问题详解

    首先,我们看一下图示代码,每一个注释其实代表一个 js 文件.所以下面其实是三个 js 文件 .第一个是我们要运行的 main 文件,后面两个是 a, b 文件.   从上面可以看书 a ,b 两个模 ...

  6. MetaProducts Offline Explorer使用简易教程

    MetaProducts Offline Explorer使用简易教程 by windtrace  20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...

  7. redis intset(整数集合)

    redis intset (整数集合) 概述 intset 是集合的底层实现结构之一 intset 集合只包含整数 intset 自升级 intset 整数集合是有序的 intset 结构 结构 // ...

  8. IIC模块TestBench的书写方法

    今天在看黑金AX309FPGA开发板自带教程中的EEPROM那一章,考虑如何写其中iic_com模块的TestBench,难点在于1. 该模块存在一个inout型的端口信号:2. 时序较为复杂,不可能 ...

  9. bzoj2125 最短路

    Description 给一个N个点M条边的连通无向图,满足每条边最多属于一个环,有Q组询问,每次询问两点之间的最短路径. Input 输入的第一行包含三个整数,分别表示N和M和Q 下接M行,每行三个 ...

  10. poj2104 Kth-Number

    Description You are working for Macrohard company in data structures department. After failing your ...