Unity減少安裝包的大小總結
前段時間整理專案資源時翻譯了很多官方文件,實踐的時候其實都是Texture的壓縮,又繼續搜尋了很多減少安裝包大小的文章,本文來做個總結
一.通用
1.替換jpg,使用psd,減少重複資源(設計說這個應該是使用psd軟體來處理,不是用psd替換jpg)
2.剔除不必要的資源
3.打包時檢視log紀錄,由此判斷需要減少的檔案型別
4.圖片及音訊優化
①.圖片優化
在Unity Console介面右上角點開Open Editor Log(可能需要先輸出一遍安卓包)
找到如下:
知道哪些資源比較大之後 :
- 一個個壓縮
- 打包成圖集
打包圖集策略可以看雨鬆大大的文章 : http://www.xuanyusong.com/archives/3315
- 第三個方法是群裡一個朋友提出的,把全部素材的解析度調成2的倍數,統一壓縮比較好
②.音訊優化
https://blog.csdn.net/LN_Polaris/article/details/78811405
5.優化,壓縮網格和動畫,減少檔案大小
6.剔除system.dll和system.xml.dll,儘量不要依賴他們,或用其他元件來代替。
上面介紹的方法,是對於圖片的壓縮以及資源的減少,不過這些處理都會極大地影響到了遊戲的畫面質量和執行時的流暢程度,影響到使用者的體驗度。
針對於目前這種困境,不少的服務商推出了分包技術,而傳統的分包是將資源切割,分段下載,進入遊戲前進行二次下載;處理遊戲包體瘦身時,往往採用刪除程式碼,精簡資源甚至作資源取捨的方式;在資源載入時,玩家必須要中斷遊戲,並在等待中進行緩慢的資源載入。
據說愛加密公司的愛壓縮最多能壓縮包體的80%,hhhhh,不過就我現在專案這點資源,還用不上這麼牛逼的技術
7.分包技術
①.首包(裡面包含了最最必要的資源)。
②.首次進入包載入(載入遊戲執行必要的資源)。
③.遊戲執行中資源載入(按每個遊戲不同各自定義,以場景和單位個體為主要,在畫面進入時載入資源,載入結束後再執行並顯示)。
二.減少Android包大小
1.取消x86架構的相容選項
一般情況下android平臺不需要編譯x86的版本,因為裝置太少了,需要考慮對應平臺的時候可以單獨打一個x86版本的包。除非不考慮apk的包大小的時候,才會選擇FAT兼顧相容性。
差不多減少了30M左右
三.減少IPA包大小
unity空專案匯出xcode專案安裝後104M,優化後,因為是空專案,可能有些引數要比較複雜才會減少的比較可觀,因此也放在後面記錄下
1.配置編譯選項
(Levels選項內)Generate Debug Symbols 設定為NO,這個配置選項應該會讓你減去小半的體積。注意這個如果設定成NO就不會在斷點處停下
設定為No後90M
2.捨棄架構armv7
armv7用於支援4s和4,4s是2011年11月正式上線,雖然還有小部分人在使用,但是追求包體大小的完全可以捨棄了。valid Architecture
對於我來說,安裝裝置是需要ARKit支援的,所以完全可以去掉,優化後89.8M,很神奇就減了這麼點。。。。哈哈,聊勝於無吧
3.去除符號資訊
Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本應該設為yes,可以去除不必要的除錯符號。Symbols Hidden by Default會把所有符號都定義成”private extern”,設了後會減小體積。
優化後87.1M
3.XCode工程中將Bitcode由yes改為no (已預設為No)
bit code 解釋:http://www.cocoachina.com/ios/20150818/13078.html
xcode相關設定:http://blog.csdn.net/skylin19840101/article/details/51452594
不過我專案打包出來本來就是為No
4.編譯器優化級別(沒啥變化,可能因為是空專案)
Build Settings->Optimization Level有幾個編譯優化選項,release版應該選擇Fastest, Smalllest[-Os],這個選項會開啟那些不增加程式碼大小的全部優化,並讓可執行檔案儘可能小。
6.Strip Linked Product(預設為Yes)
DEBUG下設為NO,RELEASE下設為YES,用於RELEASE模式下縮減app的大小;
最後仔細分析了IPA包的大小 :
發現Frameworks資料夾大小為 :32.5M(然後在xcode的framework發現vuforia.framework,ilcpp2.a很大)
Data:12.8M
conntenttest : 25.5M
後續再優化
參考部落格: