安卓APK包體優化全攻略

目錄

正常默認打包流程(以Android平臺為例)

查看編輯器打包日志

壓縮圖片

壓縮網格模型

壓縮貼圖

壓縮音頻文件

只打64位包

最終大小


正常默認打包流程(以Android平臺為例)

  1. 準備工作:

    • 確保已安裝最新版Unity Hub和Unity編輯器(建議2021 LTS或更新版本)
    • 安裝Android Build Support模塊
    • 配置JDK、Android SDK和NDK路徑
  2. 基礎打包步驟: a) 打開Unity項目 b) 點擊菜單欄 File > Build Settings c) 在Platform列表中選擇Android d) 保持默認設置不變:

    • Texture Compression: ASTC
    • Build App Bundle (Google Play) 不勾選
    • Development Build 不勾選
    • Autoconnect Profiler 不勾選
    • Script Debugging 不勾選 e) 點擊Build按鈕,選擇保存路徑(如桌面/temp.apk)
  3. 包體分析:

    • 默認打包完成后,APK文件通常會有以下結構:
      • base.apk(主程序包)
      • lib/armeabi-v7a(32位so庫)
      • lib/arm64-v8a(64位so庫)
      • assets(資源文件)
      • res(UI資源)
      • META-INF(簽名信息)
  4. 典型包體大小參考:

    • 空項目(僅含Unity默認場景):15-20MB
    • 包含標準資源(如UGUI):25-35MB
    • 包含IL2CPP編譯的腳本:額外增加3-5MB
  5. 查看包大小的正確方法:

    • 使用Analyze APK工具(Android Studio自帶)
    • 或通過命令:aapt dump badging your_app.apk | grep "package: name="

注意:首次打包可能會較慢,因為需要生成Gradle項目并下載依賴庫。建議在測試前先清空Library/Temp文件夾。

image

查看編輯器打包日志

image

搜索build report構建報告。構建報告我們應該看到構建中使用的所有資產根據其大小排序

image

壓縮圖片

讓我們從壓縮項目中的圖像資源開始,這些資源通常是最消耗空間的資源。在大多數項目中,圖像文件(如JPG、PNG、GIF等)往往占據了最大的存儲空間。例如,在一個典型的網頁項目中,可能包含多張高分辨率的背景圖、產品展示圖或用戶頭像等,這些文件的大小很容易就達到幾百KB甚至幾MB。

要壓縮這些圖像資源,首先需要識別出項目中體積較大的圖像文件。具體操作步驟如下:

  1. 在項目資源管理器中,瀏覽圖像文件所在的目錄(通常是"images"、"assets"或"resources"文件夾)
  2. 查看文件大小,可以按文件大小排序(在Windows資源管理器中右鍵點擊列標題選擇"大小")
  3. 復制要壓縮的圖像的名稱,比如這個"product-banner.jpg"(容量3.5MB)或"user-profile.png"(容量1.2MB)

常見的需要壓縮的圖像資源包括:

  • 網站橫幅和背景圖
  • 產品展示圖片
  • 社交媒體分享圖片
  • 用戶上傳的頭像
  • 應用界面截圖

在識別出大容量圖像后,我們可以使用各種圖像壓縮工具來優化這些文件,如TinyPNG、ImageOptim或Photoshop的"存儲為Web所用格式"功能。壓縮后的圖像通常能減少50%-80%的文件大小,而幾乎不會影響視覺質量。

比如這個:

image

復制名稱,搜索資產

image

要在此處啟用壓縮選項,我們可以為壓縮做兩件事

我們可以降低圖像的分辨率,如果你覺得圖像的分辨率太大,請選擇較低的分辨率

image

可以嘗試對圖像應用壓縮算法,不同平臺的處理方式各有差異。建議多測試幾種選項來找到最佳方案。

在Android平臺上,個人更傾向于使用crunch壓縮或astc壓縮方式。

image

image

壓縮后的應用配置會大幅減小圖片尺寸。保存后請務必重新運行游戲,檢查圖片是否因過度壓縮而模糊,如有問題可返回重新調整。

image

包體減少了一些。當然我這里圖片素材比較少,尺寸也不大,可能你的項目比較大的話,可能效果就比較明顯

壓縮網格模型

如果你是3d游戲,還會有很多的網格模型

image

通用搜索找到網格模型

image

從下拉菜單中選擇高、中或低壓縮級別。注意壓縮率越高,模型會變得越粗糙。請根據網格需求選擇合適的壓縮級別。

image

壓縮貼圖

image

為確保立方體貼圖清晰不模糊,建議采用以下分辨率:

  • 移動平臺或主機:256 或 512
  • PC 平臺:1024 或 2048 為最佳選擇

image

壓縮音頻文件

image

現在降低音頻質量滑塊,然后單擊應用大多數音頻沒有最多50次壓縮的任何明顯變化,但請確保在壓縮后測試這些音頻

image

只打64位包

還可以只打64位包,能減少很多,32位設備已經非常非常少了,完全不必擔心兼容性。

image

最終大小

image

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95682.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95682.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95682.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式學習日記(28)進程、線程

回收資源空間子進程回收策略1、wait阻塞回收:一般情況下父進程專門負責回收2、waitpid非阻塞回收:搭配輪詢方式回收3、不回收:子進程任務一致執行4、異步回收:子進程結束后通知父進程進行回收exec 函數族三種調用外部程序的方式#i…

測試用例的一些事項

為什么要寫測試用例?寫測試用例的原因是為了避免遺漏測試,我們要根據給的文檔將邏輯都表達出來,不能因為簡單而不寫,日后版本更新就知道自己哪些測了哪些沒測。在沒有文檔的時候測試用例該怎么寫?大家可以考慮安全測試…

當Java遇見AI:飛算驅動的個人博客介紹智能生成風暴

一、飛算JavaAI:重新定義個人開發的"智能魔法棒" 1.1 開發者需求變革:從"技術門檻"到"創意優先"的時代 在數字化浪潮席卷全球的今天,個人品牌建設已成為技術從業者、創業者乃至學生的剛需——無論是程序員分享…

小程序排名優化:用戶行為數據背后的提升密碼

用戶在小程序中的每一次點擊、每一次停留、每一次分享,都在產生著有價值的數據。這些看似零散的用戶行為數據,其實隱藏著提升小程序排名的密碼。平臺在判定小程序排名時,用戶行為數據是重要的參考依據,因為它直接反映了小程序對用…

【DSP28335 入門教程】深度解析中斷系統:三級架構與響應機制

大家好,歡迎來到我們的 DSP28335 深度解析系列。在之前的實戰中,我們通過 while(1) 循環和延時函數實現了各種控制,這種方式被稱為輪詢。但輪詢就像一個焦急的門衛,需要不停地去檢查每個門口是否有人,既浪費精力又效率…

代碼隨想錄二刷之“字符串”~GO

1.344. 反轉字符串 - 力扣&#xff08;LeetCode&#xff09; func reverseString(s []byte) {left : 0right : len(s)-1for left < right{s[left],s[right] s[right],s[left]leftright--}return } 感悟&#xff1a;還是go語法熟練程度的問題&#xff0c;需要注意的是&am…

(!萬字血書!)文本預處理:NLP 版 “給數據洗澡” 指南

好吧&#xff0c;我承認我是個標題黨&#xff01;(不這樣你會點進來享受這篇 通俗易懂 的好文章嗎&#xff1f;) 正經標題&#xff1a;文本預處理全流程:從基礎到實踐 &#xff08;屏幕前的你&#xff0c;帥氣低調有內涵&#xff0c;美麗大方很優雅… 所以&#xff0c;求…

最新chrome瀏覽器elasticsearch-head無法安裝使用問題

chrome瀏覽器網址欄復制粘貼以下內容輸入回車 chrome://flags/#allow-legacy-mv2-extensions 找到Allow legacy extension manifest versions項右側選擇Enabled啟用&#xff0c;重啟瀏覽器即可。

CSS aspect-ratio 屬性

aspect-ratio 是 CSS 中用于控制元素寬高比的屬性&#xff0c;通過一行代碼即可實現響應式比例布局&#xff0c;無需復雜計算。它確保元素在不同屏幕尺寸下保持固定比例&#xff0c;提升響應式設計效率。一、基本語法與取值selector {aspect-ratio: <width> / <height…

FreeRTOS多核支持

個人博客&#xff1a;blogs.wurp.top 簡介 1. 多核支持概述 在傳統的單核系統中&#xff0c;FreeRTOS 通常運行在一個 CPU 核心上&#xff0c;負責任務調度、中斷處理和資源管理。然而&#xff0c;在多核系統中&#xff0c;多個核心可以并行執行不同的任務或線程&#xff0c…

CUDA中的基本概念

要學習cuda的同學相信已經對其有一定的了解了&#xff0c;至少直到它是干什么的了。這篇文章主要是對cuda編程中的主要概念進行總結&#xff0c;有了一個大致的輪廓后就好入手了。 異構架構 異構架構即使用CPU和GPU共同進行計算。GPU不能作為一個獨立的運行平臺&#xff08;程序…

【LINUX網絡】HTTP協議基本結構、搭建自己的HTTP簡單服務器

目錄 1. 初識HTTP 2. URL 2.1 基本結構 2.2 URL中的?與urldecode\urlencode 易混淆&#xff1a;URL和HTTP傳輸請求兩者是什么關系&#xff1f; HTTP的宏觀結構 3. DEMO CODE loop模塊&#xff0c;核心邏輯 HttpServer 初代版本&#xff08;DEMO 0.0&#xff09; DEMO 1.0 DEMO…

Spring Boot 靜態函數無法自動注入 Bean?深入解析與解決方案

在 Spring Boot 項目中&#xff0c;開發者常遇到一個典型問題&#xff1a;在靜態方法或靜態變量中嘗試使用 Autowired 注入 Bean 時&#xff0c;始終得到 null 值。本文將深入剖析這一問題的根源&#xff0c;并提供多種可靠解決方案。問題重現&#xff1a;為什么注入失敗&#…

存儲過程作為系統邏輯核心的架構思考 —— 以 SaaS 系統為例

在企業級系統尤其是 SaaS 架構中&#xff0c;技術選型一旦確定&#xff0c;就意味著底層數據庫類型基本不會輕易更換。既然如此&#xff0c;我們可以更大膽地將數據庫能力本身納入系統設計的核心&#xff0c;而不僅僅把它當成一個被動的存儲引擎。存儲過程&#xff08;Stored P…

Ubuntu20.04下Remmina的VNC密碼忘記后重置

你遇到的錯誤&#xff1a; ** error creating password: /home/ysc/.vnc/passwd storepasswd: No such file or directory說明&#xff1a;x11vnc -storepasswd 無法創建密碼文件&#xff0c;因為 .vnc 目錄不存在。 雖然你可能以為路徑是對的&#xff0c;但系統找不到 /home/y…

從“存得對”到“存得準”:MySQL 數據類型與約束全景指南

目錄 一、為什么需要數據類型與約束&#xff1f; 二、MySQL 數據類型全覽 1. 數值類型&#xff1a;精確 VS 近似 2. 日期時間類型&#xff1a;別讓“0000-00-00”出現 3. 字符串類型&#xff1a;CHAR、VARCHAR、TEXT、BLOB 4. JSON 類型&#xff1a;文檔與關系共舞 5. 空…

Effective C++ 條款42:了解 typename 的雙重含義

Effective C 條款42&#xff1a;了解typename的雙重含義 核心思想&#xff1a;在模板聲明中&#xff0c;typename和class可互換使用&#xff0c;但在模板內部&#xff0c;typename必須用于顯式指明嵌套從屬類型名稱&#xff08;nested dependent type name&#xff09;&#xf…

ENCOPIM, S.L. 參展 AUTO TECH China 2025 廣州國際汽車技術展覽會

ENCOPIM, S.L. 參展 AUTO TECH China 2025 廣州國際汽車技術展覽會2025年11月21-24日中國進出口商品交易會展館D區(廣州)AUTO TECH China 2025同期&#xff1a;第二十三屆廣州車展即將盛大開幕展商推薦ENCOPIM, S.L.展位號&#xff1a;3916企業簡介&#xff1a;ENCOPIM, S.L.于…

30 HTB Soccer 機器 - 容易

主要知識點 第一階段&#xff1a;偵查 nmap nmap快速掃描&#xff1a; oxdfhacky$ nmap -p- --min-rate 10000 10.10.11.194 Starting Nmap 7.80 ( https://nmap.org ) at 2023-06-04 13:32 EDT Nmap scan report for 10.10.11.194 Host is up (0.093s latency). Not shown:…

阿里云機器翻譯接口SDK-RAM權限配置

用戶授權翻譯權限在數字化時代&#xff0c;短信作為企業與用戶溝通的重要橋梁&#xff0c;其高效、可靠的送達直接影響業務轉化與用戶體驗。SDK&#xff08;軟件開發工具包&#xff09;的出現極大簡化了短信功能的集成過程&#xff0c;讓開發者能夠快速在應用中嵌入短信驗證、通…