遊戲包體大小優化

2021-08-23 12:09:27 字數 923 閱讀 8694

1、對於遊戲包的壓縮方法,對各個遊戲有很多特定的方法,大多數是通過資源的壓縮達到目的。這裡,提供乙個比較通用的方法,通過修改庫支援,移除不必要的庫,降低so庫大小。

在cocos2dx中,庫檔案一般包含以下:

1.      cocos2dx----引擎庫檔案

2.      libcurl---第三方網路連線庫

4.      extensions---一些諸如spine、cocostudio等工具支援庫

5.      box2d---box2d庫

6.      chipmunk---chipmunk庫

其中,後面兩個均是物理引擎庫,一般大多數遊戲使用的都是box2d。mk檔案部分**如下圖所示:

這裡使用cocos2dx只帶指令碼,建立乙個空白遊戲。編譯執行,分析裁剪庫之前、之後,二者體積大小。裁剪方法,將上圖中方框中的**刪除掉即可。

沒有裁剪庫之前:

xx.apk 大小------3.36m 其中libcocos2dcpp.so 大小----2.7m

安裝之後 大小------6.83m 其中libcocos2dcpp.so 大小----5.3m

裁剪庫之後:

xx.apk 大小------2.26m 其中libcocos2dcpp.so 大小----1.5m

安裝之後 大小------4.48m 其中libcocos2dcpp.so 大小----2.9m

這裡可以看到,apk減小了1.1m,安裝後,體積減小了2.35m。雖然apk體積減小的不是很多,但是對於一些小容量apk,這點壓縮量,是非常可觀的。

2、通過png 壓縮工具 (pnggauntlet 無失真壓縮),或者是通過 減色軟體 進行有失真壓縮, jpg 通過降低質量來壓縮

結構體大小

含有基本型別的結構體的大小所對應的最終決定因素是結構體內自身成員的分布。成員不同的分布將導致含有相同成員結構體大小的不同,每個成員的對齊都是以緊接著後面的乙個為參考的,如果緊接著的大於對應指定,就以緊接著的為對齊因子,否則將聯絡周圍的具體情況進行對齊,而且對齊因子只有三種型別 1,2,4。對於最後一...

結構體大小

結構體中的成員可以是不同的資料型別,成員按照定義時的順序依次儲存在連續的記憶體空間。和陣列不一樣的是,結構體的大小不是所有成員大小簡單的相加,需要考慮到系統在儲存結構體變數時的位址對齊問題。看下面這樣的乙個結構體 struct stu1 先介紹乙個相關的概念 偏移量。偏移量指的是結構體變數中成員的位...

結構體大小

下面結構體 struct s1 char ch,ptr union short a,b unsigned int c 2,d 1 struct s1 next sizeof struct s1 是 16位元組 這個呢,char ch乙個位元組,char ptr四個位元組,共用體裡面short a,b...