背景
目前編譯出來的Unityframework可執(zhí)行文件有170m嫂便,但是第三方那邊是73.1m捞镰。因此我們急需優(yōu)化Unityframework的可執(zhí)行文件大小(第三方也用產(chǎn)品證明了是可以優(yōu)化的)。
措施
一開始根據(jù)之前搞cocos的經(jīng)驗岸售,猜測應該是unity那邊設置一些配置几迄。這樣出來的庫的可執(zhí)行文件大小應該會減小。但是一番折騰后冰评,沒有找到可行的一些配置(因為也不太確定)映胁。然后詢問了第三方組件的同學,希望能給出一些建議甲雅。那邊給的建議主要如下:
需要做很多裁包行為的解孙,包括管線,用到的一些庫之類的抛人,以及項目本身的一些配置開關也會有影響(和unity版本關系不大弛姜,我們目前用的unity版本之前即構也用過),比如:
- 管線配置妖枚。
- 應該是把很多 unity API 庫也打進去了廷臼,看看生成的可執(zhí)行文件包內容里面能不能看到這些東西。
經(jīng)過分析绝页≤蹋看起來還是配置,因此嘗試去setting里面鼓搗:
然后經(jīng)過一些查找续誉,以及驗證莱没。發(fā)現(xiàn)了兩個配置確實有用:
環(huán)境
- 工程:xxxx commit:xxxxxxx
- 導出:為了避免unity同事自己寫的導出工程插件有做設置處理,因此使用unity自帶的導出工程導出酷鸦。
嘗試
嘗試一:
IL2CPP Code Generation設置Faster (smaller) builds
經(jīng)過測試compression method設置沒有效果饰躲。
效果
包體積減小40m
嘗試二:
開啟Strip engine Code。并且Managed Stripping Level設置成High臼隔,但是網(wǎng)上說設置成High可能會造成閃退等問題嘹裂。
效果
包體積減小約22m
嘗試三:
Script Call Optimization設置成Fast but no Exceptions
效果
暫無效果(哈哈)
效果
Unityframework可執(zhí)行文件大小由最初的170m降為104.7m,減小了65.3m(修改后會不會影響庫的穩(wěn)定性摔握,還需要去驗證)寄狼。