際際滷

際際滷Share a Scribd company logo
Pentingnya Performa pada
Aplikasi Android
Ahmad Arif Faizin
Google Associate Android Developer, Curriculum Developer Dicoding
#PerfMatters
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
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
User Expectation
 Loadingnya Cepat
 Animasinya smooth
 Nggak boros baterai
 Lancar nggak ada crash
Frame Rate
60 FPS Rule
1000 ms / 60 frames = 16.666 ms/frame
Nge-lag?
Jika >16 ms
Enable GPU Rendering
1. Settings
2. Developer Options
3. Monitoring
4. Pro鍖le GPU Rendering
5. On screen as bars.
6. Buka aplikasi yang ingin
dilihat.
Bagaimana Tahu > 16 ms
Hasil GPU Rendering
 Makin tinggi makin lambat
 Batas 16 ms ada di garis hijau
 Setiap warna merupakan
rendering stages
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Rendering Problem and Solution
Enable GPU Overdraw
1. Settings
2. Developer Options
3. Hardware accelerated rendering
4. Debug GPU Overdraw
5. On screen as bars.
6. Buka aplikasi yang ingin dilihat.
GPU Overdraw Color
 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
Layout Inspector
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
 Thread Management
 Data Structure
 Algorithm
Tips Computing
Android Pro鍖ler
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Stack Memory & Heap Memory
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
Garbage Collection (GC)
Memory Leaks
 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
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
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.
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android
 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
Battery Historian
https://www.youtube.com/playlist?list=
PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE
Static Analysis Tool
Contact:
@arif_faizin
THANKS!
Follow us: @dicoding

More Related Content

Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi Android