[Unity3D]使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小

原创 2015年01月06日 12:17:20

祝福大家2015年新年快乐!

先题外话扯淡一下2014年过去,忙碌的一年,工作上是经历了风风雨雨,不过相信2015你和我一样会运气大好!微笑

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~回归线~~~~~~~~~~~~~~~~~~~~~~~~~~~


无论从减少安装包大小还是迎合unity64位IL2CPP默认就会打开StrippingLevel功能,通过库剖离来减少DLL的空间大小。

那么问题是我们自定义库使用了一些type,例如xml,或者webclient c#封装的http请求等,如果被任性解剖出去,那么肯定是不允许的。


可以在Assets/下添加link.xml文件来手动排除不被剖离的类。

<linker>
       <assembly fullname="mscorlib">
               	<type fullname="System.Reflection" preserve="all"/>
               	<type fullname="System.Security.Cryptography" preserve="all"/>
               	<type fullname="System.Runtime.CompilerServices" preserve="all"/>
               	<type fullname="System.Runtime.InteropServices" preserve="all"/>
               	<type fullname="System.Diagnostics" preserve="all"/>
               	<type fullname="System.Security" preserve="all"/>
               	<type fullname="System.Security.Permissions" preserve="all"/>
       </assembly>
</linker>

如上我们保持link.xml里面的格式这样既可 assembly其实就是dll库名,我们要排除这个dll库里面的1:整个命名空间;2:某个命名空间里面的某个具体类

补充针对排除整个命名空间可以这样加:

<assembly fullname="JsonDotNet">
               	<namespace fullname="Newtonsoft.Json" preserve="all"/>
</assembly>

关于查看dll库可以用默认的mono编辑器或者vs点进目录文件分类的dll就能看见了。

关于如何知道什么类或者命名空间你需要添加进去link.xml,只能你使用这个特殊命名空间才知道了。或者你通过xcode debug出错、eclipse debug真机运行时出错来查看那些类空间报错添加进去即可。



Unity3D 使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小

无论从减少安装包大小还是迎合unity64位IL2CPP默认就会打开StrippingLevel功能,通过库剖离来减少DLL的空间大小。 那么问题是我们自定义库使用了一些type,例如xml,或...
  • e295166319
  • e295166319
  • 2016-11-12 16:29:21
  • 1052

link.xml

http://answers.unity3d.com/questions/451460/about-the-link-xml-setting-problemwith-strip-funct.html
  • sgnyyy
  • sgnyyy
  • 2013-08-05 16:46:55
  • 615

Unity3D 杂碎

用UNITY开发手机游戏,背景图片和UI图片显示的比PC机上模糊很多,怎么解决?? 在unity里选中资源  1.TextureType 改成 Advanced 2.NonPower of 2 ...
  • he_wen_jian
  • he_wen_jian
  • 2014-04-23 15:33:35
  • 5390

Unity3D 内存管理

此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙...
  • Kaitiren
  • Kaitiren
  • 2015-06-25 15:56:28
  • 1444

使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小

 祝福大家2015年新年快乐! 先题外话扯淡一下2014年过去,忙碌的一年,工作上是经历了风风雨雨,不过相信2015你和我一样会运气大好! ~~~~~~~~~~~~~~~~~~~~~~~~~...
  • woshihuo12
  • woshihuo12
  • 2016-03-01 14:24:11
  • 490

Unity3D 编译iOS 项目的优化选项

官网地址: http://unity3d.com/support/documentation/Manual/iphone-playerSizeOptimization.html Optimi...
  • logcabin
  • logcabin
  • 2012-04-26 10:03:51
  • 1638

Unity中的StrippingLevel

StrippingLevel的作用StrippingLevel是用来减少打包出来的player的体积如图。第一个是选择Strip Byte Code的包的大小,第一个是选择的Disabled的打出来的...
  • lingyanpi
  • lingyanpi
  • 2017-08-22 19:58:21
  • 811

Unity3D占用内存太大的解决方法

最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另...
  • menuconfig
  • menuconfig
  • 2013-11-20 18:08:50
  • 5403

[Unity3d]Player Settings导出设置

[Unity3d]Player Settings导出设置 分类: Unity3D2013-12-22 14:25 413人阅读 评论(0) 收藏 举报 目录(?)[+] ...
  • Highning0007
  • Highning0007
  • 2014-07-20 13:16:40
  • 84967

Unity 使用 Stripping Level == Use micro mscorlib 导致 MD5.Create() 返回NULL

这几天在弄资源更新,昨天导出Android APK 到手机上测试,发现MD5 校验的时候一直出错,打出Log 重新导包测试发现 MD5.Create() 返回NULL   ...
  • u011926026
  • u011926026
  • 2017-03-19 11:30:21
  • 450
收藏助手
不良信息举报
您举报文章:[Unity3D]使用link.xml来控制strippinglevel减少dll库大小技巧、优化安装包大小
举报原因:
原因补充:

(最多只允许输入30个字)