Pengguna sering menghindari mendownload aplikasi yang tampaknya terlalu besar, terutama di pasar negara berkembang tempat perangkat terhubung usai jaringan 2G dan 3G yang noël stabil atau menggunakan paket berdasarkan penggunaan per byte. Halaman ini demisioner cara mengurangi ukuran download aplikasi Anda, yang memungkinkan lebih crowd pengguna mendownload aplikasi Anda.

Mengupload aplikasi dengan volumepillsworld.com app Bundle

Cara termudah buat langsung mendapatkan penghematan dalam jumlah besar aplikasi saat memublikasikan nanti Google bermain adalah menjangkau mengupload aplikasi seperti volumepillsworld.com application Bundle, yang merupakan layout upload baru yang menyertakan semua simpul dan resource apa dikompilasi aplikasi Anda, tetapi diserahkan kepada pembuatan dan penandatangan APK kepada Google Play.

model penyajian aplikasi baru Google Play, apa disebut siaran Dinamis, ini adalah menggunakan app bundle Anda karena membuat dan menayangkan APK yang dioptimalkan buat setiap konfigurasi perangkat pengguna, sehingga pengguna hanya perlu mendownload kode dan resource yang dibutuhkan untuk menjalankan aplikasi Anda. Anda noël perlu lainnya membuat, menandatangani, dan kelola beberapa APK untuk mendukung berbagai perangkat, dan pengguna ini adalah mendapatkan ukuran download yang lebih kecil serta lebih dioptimalkan.

harus diingat, untuk Google bermain memberlakukan batasan mass download yang dikompresi sebesar 150 MB atau kurang karena aplikasi apa dipublikasikan menjangkau app bundle, sebaiknya militer ikuti pedoman yang dijelaskan di sini untuk mengurangi ukuran download aplikasi dari mereka sekecil mungkin.

Untuk aplikasi yang Anda publikasikan usai Google permainan dengan mengupload APK apa ditandatangani, download yang dikompresi dibatasi nanti 100 MB ataukah kurang.

Anda sedang menonton: Cara memperkecil ukuran aplikasi android

benefit volumepillsworld.com size Analyzer

alat volumepillsworld.com dimension Analyzer memberikan cara mudah buat mengidentifikasi dan menerapkan crowd strategi untuk mengurangi dalam jumlah besar aplikasi Anda. Alat ini tersedia baik such plugin volumepillsworld.com Studio maupun sebagai JAR mandiri.

keuntungan analyzer di volumepillsworld.com Studio

milik mereka dapat mendownload plugin volumepillsworld.com dimension Analyzer benefit marketplace plugin di volumepillsworld.com Studio, seperti ditunjukkan batin gambar 1. Untuk membuka marketplace plugin dan menginstalnya, lakukan langkah berikut:

Pilih File > Settings (atau di Mac, volumepillsworld.com Studio > Preferences.) Pilih bagian Plugin di panel kiri. Mengklik tab Marketplace. Telusuri plugin "volumepillsworld.com dimension Analyzer". Mengklik tombol Install karena plugin analyzer.
*

Gambar 1. Plugin volumepillsworld.com dimension Analyzer di tab Marketplace.

setelah Anda menginstal plugin, lari analisis dalam jumlah besar aplikasi pada project saat ini mencapai memilih Analyze > Analyze app Size dari panel menu. Usai menganalisis job Anda, jendela tool muncul dengan rekomendasi sekitar cara mengurangi mass aplikasi Anda, seperti ditunjukkan batin gambar 2.

*

Gambar 2. Jendela tool plugin volumepillsworld.com size Analyzer menjangkau rekomendasi.

keuntungan analyzer dari command heat

dari mereka dapat mendownload volumepillsworld.com size Analyzer versi terbaru, seperti file TAR atau ZIP, dari GitHub. Ke mengekstrak arsip, operasi skrip size-analyzer (di Linux atau MacOS) atau skrip size-analyzer.bat (di Windows) pada project volumepillsworld.com atau volumepillsworld.com app Bundle keuntungan salah satu perintah berikut:

./size-analyzer check-bundle ./size-analyzer check-project

dipahami struktur APK

sebelum membahas cara mengurangi ukuran aplikasi, sebaiknya anda memahami struktur APK aplikasi terlebih dahulu. Document APK terdiri dari arsip ZIP apa berisi semua file yang form aplikasi Anda. Paper ini mencakup file class Java, document resource, dan file yang berisi kompilasi resource.

APK berisi direktori berikut:

META-INF/: Berisi file sign tangan CERT.SF dan CERT.RSA, serta file manifes MANIFEST.MF. res/: Berisi source yang noël dikompilasi setelah resources.arsc. lib/: Berisi kompilasi kode yang dikhususkan buat lapisan software program prosesor. Direktori ini berisi subdirektori karena setiap tipe platform, kemudian armeabi, armeabi-v7a, arm64-v8a, x86, x86_64, dan mips.

APK also berisi beberapa file berikut. Tengah file tersebut, just volumepillsworld.comManifest.xml yang bersifat wajib.

resources.arsc: Berisi kompilasi resource. Paper ini berisi konten XML dari semua konfigurasi folder res/values/. Alat pengemasan mengekstrak konten XML ini, mengompilasikannya setelah bentuk biner, dan mengarsipkan konten. Konten ini mencakup cable dan gaya bahasa, serta lokasi nanti konten yang noel disertakan secara secepatnya di file resources.arsc, such gambar dan document tata letak. classes.dex: Berisi kompilasi class dalam format paper DEX yang dipahami oleh mesin virtual Dalvik/ART. volumepillsworld.comManifest.xml: Berisi record manifes volumepillsworld.com inti. File ini mencakup nama, versi, baik akses, dan file library referensi aplikasi. Paper ini benefit format XML biner volumepillsworld.com.

menurunnya jumlah dan mass resource

mass APK dari mereka berpengaruh terhadap rate pemuatan aplikasi, banyaknya penggunaan memori, dan banyaknya daya apa digunakan. Penyimpangan satu cara termudah untuk memperkecil dalam jumlah besar APK adalah menjangkau mengurangi jumlah dan massa resource apa ada. Secara khusus, their dapat dihapus resource yang tidak digunakan lagi oleh aplikasi, dan dapat keuntungan objek Drawable skalabel kemudian pengganti document gambar. Bagian ini debate metode ini serta mayoritas cara lain yang dapat dari mereka lakukan untuk mengurangi source di aplikasi agar dapat mengurangi keseluruhan dalam jumlah besar APK.

dihapus resource yang noël digunakan

alat lint, penganalisis simpul statis yang disertakan di volumepillsworld.com Studio, mendeteksi source di folder res/ yang noel direferensikan oleh kata sandi Anda. Saat menemukan resource apa mungkin noël digunakan di job Anda, alat lint menjadi menampilkan pesan kemudian dalam contoh di bawah.

res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to it is in unused Catatan: alat lint noël memindai folder assets/, aset apa direferensikan oleh refleksi, ataukah file library yang Anda tautkan ke aplikasi Anda. Selain itu, alat ini noël menghapus resource, tetapi hanya memberi knows Anda keberadaannya.

Library yang Anda tambahkan nanti kode dapat memasukkan resource yang tidak digunakan. Gradle dapat otomatis dihapus resource untuk Anda jika dari mereka mengaktifkan shrinkResources diatas file build.gradle aplikasi Anda.

volumepillsworld.com // various other settings buildTypes publikasi minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-volumepillsworld.com.txt"), "proguard-rules.pro" buat menggunakan shrinkResources, Anda juga harus mengaktifkan penyingkatan kode. Selama tangani itu build, mula-mula R8 menghapus kode yang tidak digunakan. Selanjutnya, plugin volumepillsworld.com Gradle akan menghapus source yang noël digunakan.

untuk informasi selengkapnya tentang penyingkatan kode dan resource, serta cara go volumepillsworld.com Studio membantu Anda mengurangi mass APK, melihat Menyusutkan, meng-obfuscate, dan mengoptimalkan aplikasi Anda.

Di volumepillsworld.com Gradle Plugin 0.7 dan apa lebih tinggi, anda dapat mendeklarasikan konfigurasi apa didukung aplikasi. Gradle meneruskan insula ini usai sistem build menggunakan ragam resConfig dan resConfigs serta pilihan defaultConfig. Lalu, aset build menghindari resource dari konfigurasi lain yang tidak didukung agar noel muncul di APK, mengurangi dalam jumlah besar APK. Karena mengetahui insula selengkapnya relevan fitur ini, using Menghapus source alternatif yang noël digunakan.

meminimalkan penggunaan source dari library

Saat meningkatkan aplikasi volumepillsworld.com, dari mereka biasanya keuntungan library eksternal untuk menyempurnakan kegunaan dan fleksibilitas aplikasi. Misalnya, anda dapat mereferensikan volumepillsworld.com assistance Library untuk menyempurnakan pengalaman pengguna di aparatur model lama, atau their dapat menggunakan Layanan Google Play untuk mengambil terjemahan otomatis untuk teks dalam aplikasi Anda.

Jika library didesain karena server ataukah desktop, library dapat menyertakan banyak objek dan cara yang noel diperlukan aplikasi Anda. Untuk menyertakan potongan library yang diperlukan aplikasi saja, anda dapat mengedit record library jika lisensinya mengizinkan Anda alter library. Anda juga dapat menggunakan library alternatif yang mobile-friendly untuk menambahkan fungsi tertentu nanti aplikasi Anda.

Catatan: Penyingkatan simpul dapat ringkas beberapa kode yang noel diperlukan dari library, tetapi mungkin noël dapat dihilangkan dependensi internal yang berukuran besar.

Hanya menyumbangkan kepadatan tertentu

volumepillsworld.com mendukung serangkaian perangkat yang besar, yang mencakup berbagai tipe kepadatan layar. Di volumepillsworld.com 4.4 (API level 19) dan yang lebih tinggi, framework menyumbangkan berbagai kepadatan berikut: ldpi, mdpi, tvdpi, hdpi, xhdpi, xxhdpi, dan xxxhdpi. Meskipun volumepillsworld.com mendukung setiap orang kepadatan ini, Anda noël perlu mengekspor aset raster nanti setiap kepadatan.

Jika dari mereka mengetahui bahwa hanya sebagian kecil pengguna Anda yang memiliki aparatur dengan kepadatan tertentu, pertimbangkan apakah dari mereka perlu terintegrasi kepadatan tersebut ke dalam aplikasi Anda. Jika Anda noel menyertakan resource untuk kepadatan meniduri tertentu, volumepillsworld.com become otomatis menskalakan resource apa ada, apa awalnya didesain untuk kepadatan layar lainnya.

Jika aplikasi Anda hanya memerlukan gambar yang diskalakan saja, dari mereka dapat menghemat lebih crowd ruang dengan pribadi satu varian gambar dalam drawable-nodpi/. Sebaiknya setiap aplikasi memasukkan setidaknya satu varian cat, dll xxhdpi.

untuk mengetahui insula selengkapnya relevan kepadatan layar, lihat ukuran dan berdensitas Layar.

Menggunakan objek apa dapat digambar

mayoritas gambar tidak memerlukan resource cat, dll statis. Seperti gantinya, framework dapat membuat gambar pada waktu proses secara dinamis. Objek Drawable ( dalam XML) noël memakan kerumunan ruang di APK. Selain itu, objek Drawable XML menghasilkan lukisan monokrom apa sesuai menjangkau panduan desain material.

Menggunakan kembali resource

milik mereka dapat memasukkan resource terpisah untuk variasi sebuah gambar, misalnya versi diwarnai, diberi bayangan, atau diputar. Namun, sebaiknya their menggunakan back kumpulan resource yang sama, menyesuaikannya benar kebutuhan saat times proses.

volumepillsworld.com menyediakan mayoritas utilitas karena mengubah melukis aset, baik keuntungan atribut volumepillsworld.com:tint dan tintMode di volumepillsworld.com 5.0 (API tingkat 21) dan yang lebih tinggi. Untuk versi platform yang lebih rendah, memanfaatkannya class ColorFilter.

Anda also dapat menghilangkan resource yang setara mencapai resource lain. Cuplikan kode berikut menyediakan contoh pengubahan ikon "suka" dulu "tidak suka" mencapai pemberian pivot di bagian tengah cat, dll dan memutarnya 180 derajat:

Merender dari kode

Anda juga dapat mengurangi dalam jumlah besar APK menjangkau merender gambar secara prosedural. Perenderan prosedur mengosongkan ruang penyimpanan karena Anda noël lagi simpanan file gambar dalam APK.

lebih rendah file PNG

tool aapt dapat mengoptimalkan resource cat, dll yang laid di res/drawable/ menjangkau kompresi lossless selama mengolahnya build. Misalnya, alat aapt dapat mengonversi PNG warna asli yang noel memerlukan lebih dari 256 warna dulu PNG 8 bit mencapai palet warna. Tindakan tersebut akan menghasilkan lukisan dengan kualitas apa sama tetapi mencapai footprint memori yang lebih kecil.

perlu diingat bahwa aapt memiliki batasan berikut:

alat aapt tidak memperkecil record PNG apa ada dalam folder asset/. File cat, dll perlu benefit 256 warna ataukah lebih sedikit untuk alat aapt guna mengoptimalkannya. tool aapt dapat meng-inflate file PNG yang telah dikompresi. Buat mencegah hal ini, their dapat menggunakan flag cruncherEnabled di Gradle guna melumpuhkan proses ini untuk file PNG:

aaptOptions cruncherEnabled = false

Mengompresi file PNG dan JPEG

dari mereka dapat mengurangi mass file PNG tanpa menurunkan kualitas lukis menggunakan alat such pngcrush, pngquant, atau zopflipng. Semua tool ini dapat mengurangi ukuran file PNG, tetapi firmicutes mempertahankan ketajaman kualitas gambar.

alat pngcrush terutang efektif: tool ini mengiterasi filter PNG dan parameter zlib (Deflate), menggunakan setiap asosiasi filter dan parameter untuk mengompresi gambar. Lalu, alat ini memilih konfigurasi yang menghasilkan calculation terkompresi yang most kecil.

buat mengompresi document JPEG, their dapat manfaat alat sebagai packJPG dan guetzli.

menggunakan format paper WebP

Selain keuntungan file PNG atau JPEG, Anda juga dapat benefit format record WebP buat gambar Anda, dengan membidik penggunaan di volumepillsworld.com 3.2 (API tingkat 13) dan apa lebih tinggi. Format WebP menyediakan kompresi lossy (seperti JPEG) serta transparansi (seperti PNG) tetapi dapat memberikan kompresi apa lebih baik daripada JPEG atau PNG.

Anda dapat mengonversi gambar BMP, JPG, PNG, atau GIF statis apa ada usai format WebP manfaat volumepillsworld.com Studio. Untuk mengetahui insula selengkapnya, using Membuat gambar WebP keuntungan volumepillsworld.com Studio.

Lihat lainnya: Jual Ikan Pari Air Tawar / Pari Motoro 12 Cm, Attention Required!

Catatan: Google bermain menerima APK hanya jika ikon peluncur menggunakan format PNG.

Menggunakan bagan vektor

milik mereka dapat menggunakan diagram vektor karena membuat ikon mencapai resolusi bebas dan media skalabel lainnya. Penggunaan bagan ini dapat untuk mengurangi footprint APK anda secara drastis. Cat, dll vektor direpresentasikan di volumepillsworld.com sebagai objek VectorDrawable. Menjangkau objek VectorDrawable, paper berukuran 100 byte dapat membuat gambar apa tajam buat layar.

Namun, perlu times lama agar aset merender setiap objek VectorDrawable, dan gambar apa lebih geram memerlukan waktu yang lebih lama untuk ditampilkan di layar. Oleh untuk itu, pertimbangkan karena menggunakan grafik vektor ini just ketika menampilkan cat, dll berukuran kecil.

untuk informasi selengkapnya kyung menangani objek VectorDrawable, using Menangani Drawable.

Menggunakan grafik vektor untuk gambar animasi

Jangan digunakan AnimationDrawable untuk membuat animasi frame by frame, untuk Anda akan diharuskan menambahkan file bitmap terpisah untuk setiap framework animasi, apa akan memperbesar dalam jumlah besar APK secara drastis.

Sebagai gantinya, sebaiknya anda menggunakan AnimatedVectorDrawableCompat buat membuat vektor drawable beranimasi.

Mengurangi simpul Java dan indigenous

Ada beberapa metode apa dapat dari mereka gunakan buat mengurangi ukuran codebase native dan Java di aplikasi.

Menghapus kode tidak perlu yang dihasilkan

Pastikan their memahami footprint kode apa pun apa dihasilkan secara otomatis. Misalnya, kerumunan fitur buffering protokol untuk menghasilkan terlalu kerumunan metode dan kelas, apa dapat memperbesar dalam jumlah besar aplikasi anda dua kali lipat kelewat lebih.

menghindari enumerasi

Satu enum dapat menambahkan tentang 1,0 hingga 1,4 KB massa file classes.dex aplikasi Anda. Penambahan ini dapat mencapai cepat terakumulasi untuk sistem apa kompleks ataukah library bersama. Jika memungkinkan, pertimbangkan karena menggunakan anotasi