App Size Optimization sa pag-develop ng mobile app: mga batayan, pamamaraan at praktika

May-akda: IT Sectr Nai-publish: 2026-04-01 Oras ng pagbabasa: 8 min

App Size Optimization — koleksyon ng mga teknik na naglalayong bawasan ang laki ng file ng pag-install (APK, AAB, IPA) nang hindi nawawala ang functionality. Ayon sa Android Reduce APK Size Guide, bawat megabyte ng pagbawas ng laki ay maaaring magpataas ng conversion ng pag-install ng 1–2% sa mga rehiyong may mabagal na internet. App Thinning — pangunahing teknolohiya ng Apple na naghahatid lamang ng mga resource na kailangan ng isang partikular na device.

Mga pangunahing punto

  • App Size Optimization — pagbawas ng file ng pag-install para sa pagtaas ng conversion at bilis ng pag-load
  • Pagtaas ng conversion — bawat 1 MB na pagbawas ay nagpapataas ng posibilidad ng pag-install ng 1–2%
  • App Thinning — teknolohiya ng Apple na may On-Demand Resources at Slicing para sa pagbawas ng pag-install
  • ProGuard at R8 — mga tool para sa obfuscation at minification ng code para sa Android
  • Optimisasyon ng resource — pag-alis ng hindi nagamit na assets, compression ng mga imahe at font

Ano ang App Size Optimization

App Size Optimization — disiplina sa pag-develop ng mobile app na naglalayong mabawasan ang laki ng package ng pag-install ng app. Kabilang dito ang pag-alis ng patay na code at resource, compression ng imahe, optimisasyon ng library, fragmentation ng compilation para sa iba't ibang architecture, at paggamit ng mga teknolohiya sa paghahatid on-demand.

Ang laki ng app ay hindi pantay na nakakaapekto sa iba't ibang segment ng user. Sa mga rehiyong may maunlad na mobile infrastructure (USA, Europe, Japan), ang pagkakaiba sa pagitan ng 50 at 100 MB ay maaaring hindi mahalata. Sa mga umuunlad na rehiyon (India, Indonesia, Brazil), bawat dagdag na megabyte ay nagbabawas ng conversion ng pag-install dahil sa mga limitasyon sa taripa at bilis ng mobile internet. Google Play ay naglilimita sa laki ng APK sa 200 MB, ngunit inirerekomenda na panatilihin ang laki sa ibaba 100 MB.

Para sa iOS App Store, ang maximum na laki ng pag-download sa pamamagitan ng cellular network ay 200 MB (hanggang 2023 ito ay 150 MB). Kung lumampas ang IPA sa limitasyong ito, maaari lamang i-install ng user ang app sa pamamagitan ng Wi-Fi. Sinusuportahan din ng Apple ang App Thinning, na kinabibilangan ng Slicing, Bitcode at On-Demand Resources — mga teknolohiyang awtomatikong nagbabawas ng laki ng pag-install sa isang partikular na device nang walang interbensyon ng developer.

Bakit kritikal ang laki ng app

Ang laki ng app ay hindi lamang nakakaapekto sa conversion ng pag-install, kundi pati na rin sa retention, dalas ng pag-update at bilis ng unang paglunsad. Bawat dagdag na megabyte ay isang hadlang sa pagitan ng user at paggamit ng iyong produkto.

Epekto sa conversion ng pag-install

Ayon sa datos ng Google I/O 2024, ang pagbawas ng APK ng 10 MB ay nagpapataas ng conversion ng pag-install sa average na 3.5%. Para sa mga app na may sukat na 150+ MB, ang conversion ay maaaring 20–30% na mas mababa kaysa sa mga app ng parehong klase na may sukat na 50 MB. Ang epekto ay lalong kapansin-pansin sa Google Play, kung saan nakikita ng user ang laki bago ang pag-install. Sa App Store, ang laki ay ipinapakita sa pahina ng app, at ang mga user na may limitadong taripa ay nagpapaliban ng pag-install hanggang Wi-Fi, pagkatapos nito ay madalas nakakalimutan ang app.

Dalas ng pag-update at pag-update sa pamamagitan ng hangin

Ang malaking app ay mas madalas na ina-update sa pamamagitan ng hangin — inilalagay ng mga user ang pag-download ng mga patch hanggang Wi-Fi, napalampas ang mga kritikal na pag-aayos sa seguridad. Pinapayagan ng Google Play ang paggamit ng Incremental Updates (mga patch hanggang 10 MB), ngunit ang buong muling pag-install ay nagda-download pa rin ng buong APK o AAB. Gumagamit ang Apple App Store ng Delta Updates, nagpapadala lamang ng mga binagong file, ngunit kahit na ang delta ay maaaring maging makabuluhan kapag nagbabago ng mga resource.

Unang paglunsad at pag-unpack

Ang laki ay direktang nakakaapekto sa oras ng unang paglunsad: dapat i-unpack ng app ang mga resource, i-compile ang code (Android) o pirmahan ang cache (iOS). Ang app na may sukat na 200 MB ay maaaring magsimula nang 10–15 segundo na mas matagal kaysa sa app na 50 MB sa isang average na device. Ito ay nagpapalala sa Onboarding Experience — maaaring isara ng user ang app nang hindi naghihintay sa pag-load.

LakiOras ng pag-download (3G)Oras ng unang paglunsad
30 MB–20 seg3–5 seg
100 MB–70 seg5–8 seg
200 MB–140 seg10–15 seg

Optimisasyon ng mga resource at assets

Mga Resource — mga imahe, font, tunog, video — ay bumubuo ng 60–80% ng laki ng isang tipikal na mobile app. Ang optimisasyon ng resource ay nagbibigay ng pinakamalaking pakinabang na may pinakamaliit na pagsisikap. Ang mga pangunahing direksyon: compression, pag-alis ng mga duplicate at hindi nagamit na assets, pagpili ng tamang format.

Optimisasyon ng mga imahe

WebP — format ng imahe mula sa Google, na nagbibigay ng 25–35% na mas mahusay na compression kaysa PNG at 15–20% na mas mahusay kaysa JPEG na may parehong visual na kalidad. Sinuportahan ng Android ang WebP natively mula API 18. Para sa iOS, ang WebP ay sinusuportahan sa pamamagitan ng library na SDWebImage o Kingfisher, at mula iOS 17 ay may native na suporta. AVIF — isang mas modernong format, na nagbibigay ng karagdagang 10–15% na pagtitipid kumpara sa WebP, ngunit may mas mabagal na decoding.

Pag-alis ng hindi nagamit na mga resource — ang pinakasimpleng paraan upang mabawasan ang laki. Sa Android, gumamit ng refactoring sa Android Studio: Analyze → Run Inspection → Unused Resources. Sa iOS — Build Settings → Remove Unused Resources. Madalas sa mga proyekto ay nananatili ang mga sprite mula sa mga naunang bersyon, lumang icon, hindi nagamit na mga imahe ng launch screen na nagpapalaki ng laki nang walang anumang functional na karga.

FormatCompression kumpara sa PNGSuporta
PNGLahat ng platform
WebP25–35%Android natively, iOS sa pamamagitan ng library
AVIF35–45%Android 12+, iOS 17+
JPEG XR30–40%Windows lamang

Optimisasyon ng mga font at tunog

Mga custom na font ay maaaring sumakop ng 5–15 MB, lalo na kung ang buong pamilya ay konektado (lahat ng estilo: Regular, Bold, Italic, BoldItalic). Gamitin lamang ang mga kinakailangang estilo at subset ng character sa pamamagitan ng subsetting — pag-alis ng mga glyph para sa mga wikang hindi sinusuportahan ng app. Ang mga serbisyo tulad ng Google Fonts at Transfonter ay nagpapahintulot na lumikha ng isang minimal na set ng character. Para sa mga tunog, gumamit ng AAC/HE-AAC sa halip na WAV at mga hindi naka-compress na format — pagtitipid hanggang 90% nang walang pagkawala ng kalidad.

Optimisasyon ng code at mga library

Code ay bumubuo ng 20–40% ng laki ng app, ngunit ang optimisasyon nito ay mas mahirap kaysa sa mga resource, dahil nangangailangan ito ng pagsusuri ng dependencies, obfuscation at pag-alis ng patay na code nang walang panganib na masira ang functionality.

ProGuard at R8 para sa Android

ProGuard — tool para sa Android na nagsasagawa ng obfuscation, minification at optimisasyon ng code. R8 — ang kahalili nito, naka-embed sa Android Gradle Plugin, gumagana nang mas mabilis at mas mahusay. Inaalis ng R8 ang hindi nagamit na mga klase at method, pinaikli ang mga pangalan ng variable at muling isinusulat ang code upang mabawasan ang bilang ng mga instruction. Ang karaniwang pagbawas ng laki ng mga DEX file gamit ang R8 ay 30–50%.

groovy
// build.gradle — configuration ng R8 para sa minification
android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(
                'proguard-android-optimize.txt')
            shrinkResources true
        }
    }
}

Optimisasyon ng mga library at dependencies

Mga Library — karaniwang dahilan ng paglobo ng laki. Isang library ay maaaring magdala ng mga transitive dependencies na nagpapataas ng laki ng 5–20 MB nang walang direktang benepisyo para sa app. Gumamit ng Gradle Version Catalog para sa Android at Swift Package Manager para sa iOS na may malinaw na pagtukoy ng dependencies. Suriin ang laki gamit ang Build Analyzer sa Android Studio o Xcode Build Timeline. Palitan ang mabibigat na library ng mas magaang alternatibo: halimbawa, OkHttp (3 MB) sa halip na Apache HTTP (15 MB).

Pag-alis ng hindi nagamit na code sa iOS

Dead Code Stripping — awtomatikong pag-alis ng hindi nagamit na mga method at klase sa yugto ng pag-link sa Xcode. Naka-activate sa pamamagitan ng Build Settings → Dead Code Stripping = YES. Bitcode — intermediate na representasyon na maaaring i-recompile ng Apple para sa iba't ibang architecture, inaalis ang hindi nagamit na function. Ngunit mula Xcode 14, naging opsyonal ang Bitcode, at ang kontribusyon nito sa pagbawas ng laki ay 5–15% para sa Objective-C na mga proyekto at mas mababa para sa Swift.

App Thinning at paghahatid on-demand

App Thinning — teknolohiya ng Apple na awtomatikong nagbabawas ng laki ng naka-install na app sa pamamagitan ng paghahatid lamang ng mga resource na kailangan para sa isang partikular na device. Binubuo ng tatlong component: Slicing, On-Demand Resources at Bitcode. Sa Android, ang katumbas ay Android App Bundle (AAB) na may Dynamic Delivery.

Android App Bundle (AAB)

AAB — format ng pag-publish sa Google Play, kung saan ang tindahan ay bumubuo ng APK para sa bawat device nang hiwalay, kasama lamang ang mga resource para sa architecture nito (armeabi-v7a, arm64-v8a), density ng screen (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi) at mga wika. Ang karaniwang pagbawas ng laki ng pag-install sa paglipat mula sa universal APK patungong AAB ay 20–40%. Play Feature Delivery ay nagpapahintulot sa pag-download ng mga module on-demand, habang ang mga Install-time module ay kasama sa base installation.

groovy
// build.gradle — configuration ng AAB at Dynamic Features
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}

On-Demand Resources sa iOS

On-Demand Resources (ODR) — mekanismo ng iOS kung saan ang mga resource (level ng laro, high-resolution na imahe, video) ay dina-download mula sa mga server ng Apple lamang kapag talagang kailangan ng user. Ang laki ng paunang pag-install ay maaaring mabawasan ng 50–80%. Ang mga resource ay nahahati sa tatlong kategorya: Initial Install Tags (dina-download sa pag-install), Prefetched Tag Order (dina-download sa background pagkatapos ng pag-install) at On-Demand (dina-download lamang kapag hiniling). Inirerekomenda ng Apple na gamitin ang ODR para sa content na hindi kailangan sa unang screen: mga level ng laro, karagdagang content, mga video instruction.

SwiftUI ay sumusuporta sa ODR sa pamamagitan ng attribute na Bundle.module, at UIKit sa pamamagitan ng NSBundleResourceRequest. Para sa mga laro sa Unity at Unreal Engine, ang ODR ay isinama sa antas ng native wrapper. Ang pangunahing limitasyon — ang ODR resources ay tinatanggal ng system kapag walang sapat na espasyo, kaya ang data na kritikal para sa operasyon ay dapat isama sa pangunahing compilation.

Mga madalas itanong

Ano ang optimal na laki ng mobile app?

Mas mababa sa 50 MB — perpektong laki para sa maximum na conversion ng pag-install. 50–100 MB — katanggap-tanggap para sa karamihan ng mga app. Higit sa 100 MB — nangangailangan ng pagbibigay-katwiran sa laki (mga laro, offline na mapa, editor ng content).

Ano ang mas kapaki-pakinabang na i-optimize — code o resource?

Mga Resource ay nagbibigay ng mas malaking pakinabang sa mas maikling panahon. Magsimula sa pag-alis ng hindi nagamit na assets, pag-convert ng PNG sa WebP at pag-compress ng mga tunog. Pagkatapos ay lumipat sa code optimisasyon sa pamamagitan ng R8 o Dead Code Stripping.

Paano binabawasan ng AAB ang laki ng APK?

Ang Google Play ay bumubuo ng APK lamang para sa partikular na device: arm64-v8a code, xhdpi resources, kinakailangang wika. Ang universal APK ay naglalaman ng lahat ng variant nang sabay-sabay, na nagpapataas ng laki ng 1.5–2 beses. Nireresolba ng AAB ang problemang ito sa antas ng tindahan.

Nakakapekto ba ang laki sa bilis ng paggana ng app?

Hindi direkta. Ang malaking laki ay nangangahulugan ng mas maraming code para sa JIT/AOT compilation, mas maraming resource para i-load sa memory at mas maraming oras para sa pag-parse ng manifest. Gayunpaman, ang direktang epekto sa performance sa runtime ay minimal — ang laki ay nakakaapekto sa pag-install at unang paglunsad.

Ano ang mga Install-time vs On-Demand module?

Install-time — bahagi ng base installation, agad na available. On-Demand — dina-download sa unang paghingi, hindi kasama sa paunang pag-install. Gamitin ang On-Demand para sa mga feature na kailangan ng mas mababa sa 20% ng mga user: diagnostic, tutorial, AR filter.

Buod

  • App Size Optimization — pagbawas ng laki ng app para sa pagtaas ng conversion at bilis ng pag-load
  • Mga Resource ay bumubuo ng 60–80% ng laki — ang kanilang optimisasyon ay nagbibigay ng pinakamalaking pakinabang
  • WebP at AVIF — mga format ng compression ng imahe na may 25–45% na pagtitipid kumpara sa PNG
  • R8 para sa Android ay nagbabawas ng DEX ng 30–50% sa pamamagitan ng code minification
  • App Thinning (iOS) at AAB (Android) ay naghahatid lamang ng mga kinakailangang resource
  • On-Demand Resources ay nagpapahintulot sa pag-download ng content pagkatapos ng pag-install
  • Target na laki para sa maximum na conversion — mas mababa sa 50 MB

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din