1. Kinerja aplikasi Android sangat penting karena berdampak pada pengalaman pengguna dan kemungkinan pengguna untuk menghapus aplikasi.
2. Beberapa faktor utama yang mempengaruhi kinerja adalah kecepatan loading, kelancaran animasi dan tidaknya crash atau pemborosan baterai.
3. Untuk mengukur kinerja, dapat dilakukan tes internal, tanya pengguna, coba di perangkat entry-level, serta melakukan tes
3. Report
User akan uninstall ketika:
36% karena baterai boros
50.6 % karena menghabiskan memori
62 % karena ada crash error
User akan blame aplikasinya + juga brand company-nya
https://www.dotcominfoway.com/blog/infographic-why-users-uninstall-your-app/#gref
4. Basic Performance Test
Test Umum:
Tes oleh diri sendiri dan internal
User perception :
Tanyakan ke user (early adopter/beta tester) dan tanyakan bagaimana
pendapatnya
Coba di low-end devices :
Dengan spesi鍖kasi dan RAM paling minimum
Monkey testing :
Coba dengan random input dan behaviour untuk tahu apakah aplikasi akan
crash
16. Hapus background yang tidak digunakan.
Di ImageView.
Di Root Layout
Flattening View Hierarchy dengan ConstraintLayout
Pakai Clip custom view.
Kurangi penggunaan transparansi (alpha rendering) pada view.
Minimalisir overlap.
Minimize Overdraw
28. Unregister broadcast receiver / listener di onStop setelah register di onStart.
Jangan reference View objects:
Dari luar UI thread
Di async callbacks
Dari static objects
Jangan alokasikan objek di inner loop
Jangan alokasikan objek di onDraw
Gunakan Application Context di Singleton, daripada Activity Context.
Jangan gunakan inner class di Activity/Fragment.
Avoid Memory Leak
29. LeakCanary
Tambah dependency
dependencies {
...
debugImplementation
'com.squareup.leakcanary:leakcanary-
android:2.4'
}
Jalankan aplikasi, kemudian
keluar ke home dan masuk lagi.
Jika ada memory leak, akan
muncul noti鍖kasi dan
menganalisis memorinya
30. LeakCanary Result
Nama Activity yang leak akan
muncul di atas
Jika statusnya UNKNOWS, di sini
lah awal mula leak muncul
Biasanya di akhir point, Leak
Canary akan ngasih solusi di mana
suatu object harus dibersihkan.
32. Of鍖ine-鍖rst architecture. Simpan data ke lokal dulu jika memungkinkan.
Jangan sering-sering sinkron ke server, Gunakan FCM (Firebase Cloud
Messaging untuk kasih tau ke device kalau ada update di server.
Gunakan Wakelock/Timer seperlunya.
Gunakan sensor yang dibutuhkan saja.
Lakukan koneksi yang yang lama hanya ketika terhubung ke Wi-Fi, seperti
download 鍖lm atau backup foto.
Jangan langsung eksekusi, jika bisa ditunda.
Battery Best-Practice