Unity使用Mono.Xml代替System.Xml 測試

来源:http://www.cnblogs.com/heitao/archive/2017/03/25/6617398.html
-Advertisement-
Play Games

測試環境 操作系統:Windows8.1 開發工具:Unity5.5.2 1、新建一個測試項目,觀測引用System.Xml與Mono.Xml解析文件正確性,與打包後APK體積大小。 2、Mono.Xml 用例 編譯日誌可以觀測到沒有引用System.Xml.dll(該文件約1mb) 3、Syste ...


測試環境


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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 運行Hadoop時出現了: 導致運行失敗。仔細分析後發現,這是因為以前192.168.1.201的主機名為master,後來把192.168.1.202改名為master,由於兩台主機的公鑰不一樣,所以提示DNS欺騙(網路中有主機冒充master),或者master的IP地址和公鑰同時改變了。 解決 ...
  • ElasticSearch是文檔型資料庫,索引(Index)定義了文檔的邏輯存儲和欄位類型,每個索引可以包含多個文檔類型,文檔類型是文檔的集合,文檔以索引定義的邏輯存儲模型,比如,指定分片和副本的數量,配置刷新頻率,分配分析器等,存儲在索引中的海量文檔分散式存儲在ElasticSearch集群中。 ... ...
  • 官方文檔:http://www.mybatis.org/mybatis-3/getting-started.html 安裝 要使用 MyBatis, 只需將 mybatis-x.x.x.jar 文件置於 classpath 中即可。 如果使用 Maven 來構建項目,則需將下麵的 dependenc ...
  • 一、什麼是主鍵、外鍵: 關係型資料庫中的一條記錄中有若幹個屬性,若其中某一個屬性組(註意是組)能唯一標識一條記錄,該屬性組就可以成為一個主鍵比如 : 學生表(學號,姓名,性別,班級) 其中每個學生的學號是唯一的,學號就是一個主鍵 用戶表(用戶名、密碼、登錄級別) 其中用戶名是唯一的, 用戶名就是一個 ...
  • 程式中的變數名、常量名、類名、方法名,都叫做標識符。C#有一套標識符的命名規則,如果命名時不遵守規則,就會出錯。這套規則簡單說有下麵三條: ①標識符只能由英文字母、數字和下劃線組成,不能包含空格和其他字元。 錯誤的標識符聲明: ②變數名不能用數字開頭。 錯誤的標識符聲明: ③不能用關鍵字當變數名。 ...
  • 跟著師父一直在做codefirst的開發,最近有個新需求,就是需要人家的資料庫,然後來開發,現在出現問題了。整理如下 目前有個現成的我們之前的codefirst的工程代碼,我記得師父說過,根據資料庫生成model的做法是: 在指定文件夾,右鍵添加-->新建項--> 這裡先選擇數據,然後是ADO.NE ...
  • 首先需要明白一個原理: 游戲畫面(動畫)是由一幀幀的圖片載入完成的,並且是連續的。也就是說,在一個時間節點上,一定存在一幀圖片。不同的是每幀的圖片存在的時間不同,如果每幀圖片存在的時間比較短,也即單位時間內幀數比較多的話(幀率大),畫面越流暢。下麵連續的表示圖片的流動,圖片的寬度表示該圖片存在的時間 ...
  • using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Runtim ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...