转载自:http://blog.csdn.net/shanghongshen/article/details/38930135#userconsent#
转载预留探究
mono for android
把APK包解压后可以看到下面的结构
1 先说下mono的大概编译结构
第一个文件夹 程序集
第二个文件夹下面是很重要的东西 就是mono的虚拟机 可以打开看到 是so结尾的文件 这是c++编写的虚拟机 这个虚拟机大概是2.8M左右
第三个就是资源了 包括图片 layout 等
2 它比java 编写的android多了些什么
a最后一个文件夹都有
b中间这个文件夹多了2.8M
c第一个文件夹(主要是这个)多了些撒
而这些程序集中很显然很多都没有用到 只用到了小部分类库 但是默认都会被编译进来 所以造成mono开发的程序非常的大
3给apk瘦身的编译方法
编译方式
1不连接程序集
2只连接sdk的程序集
3链接所以程序集
什么意思呢
就是
第一种不管什么只要你引用了程序集 全给你撞进来
第二种ide寻找链接 就是引用 自动编译 把没有用到的类排除 但是只排除sdk中的
第三种 就是排除所有程序集中没有用到的类库
注意 对于序列化等 以及底层使用序列化的操作 无法找到链接
可能会被排除使用中的类 造成程序无法使用
解决方法:
可以排除你不想链接的程序集
到底瘦身有什么效果呢
我没瘦身之前 是 30M的一个程序
瘦身后只有7M
还是加上 虚拟机的2.8M