awesome-android-performance
This is a list of awesome Android tutorials, videos and tools for performance optimization
View
Google Official Videos
- Double Layout Taxation Android Performance Patterns Season 3 ep8 - fix layout problems
Others
- Infamous ViewHolder Pattern - ViewHolder pattern in ListView
- View Reduction - use Compound Drawables to increase performance
- Improving Comment Rendering on Android - Instagram's post on TextView Performance
- Custom ViewGroups - a Facebook Engineer's artcile on Custom ViewGroup to increase performance
WebView
- Why Use Crosswalk? - use crosswalk for better performance, especiallly for android version below4.4
- Enhance webView performance - disable the WebView cache to make WebView much faster.
- Supercharging the Android WebView - cache critical assets that drastically reduce the load time.
Tools
- crosswalk-cordova-android — An app runtime based on Chromium/Blink.
Graphics
- Android 3.0 Hardware Acceleration
- Debug Overdraw - debug overdraw
- Android Performance Case Study - Debug Performance use
gfxinfo
systrace andshow GPU Overdraw
HierarchyViewer
OpenGL traces
- Android Performance Case Study Follow-up - Use
OpenGL traces
and UUI problems caused by transparency - Hardware Acceleration
- Optimizing Hardware Layers
- Graphics Performance - Podcasts on Android Performance
- Hardware Acceleration Animation - Using hardware layers to improve Android animation performance,
Tools
- Analyzing UI Performance with Systrace
- Optimizing Your UI - HierarchyViewer Usage
- Introduction to Systrace
Bitmaps
- Loading Large Bitmaps Efficiently
- Bitmap quality, banding and dithering
- Android: bitmaps, textures and pre-multiplied pixels
- Testing Display Performance
Memory
Google official videos
- Memory Performance 101
- Android Performance Patterns: Tool - Memory Monitor - introducing Memory monitor and Memory heap tool
- Android Performance Patterns: Performance Cost of Memory Leaks - on memory leaks
- Garbage Collection in Android
- Memory Churn and Performance
- Avoiding Allocations in onDraw
- Android内存优化之OOM
others
- Investigating Your RAM Usage
- The truth about Preventative Optimizations - You can find some useful things from the links.
- A small leak will sink a great ship
- LeakCanary A memory leak detection library for Android and Java.
- Android内存泄露案例分析
- Tips for Optimizing Android Application Memory Usage - Tips
- Android memory and performance optimization - Tutorial
- Building Memory-efficient Java Applications
- How to Leak a Context: Handlers & Inner Classes
- Improving Facebook's performance on Android with FlatBuffers
Tools for improving memory performnace
- YourKit - Performance and Memory Java Profile
- MAT - Memory Analysis tool for Java
- Allocation Tracker
Concurrency
- The Zen of IntentService. (Android Performance Patterns Season 5 ep7) - Talked about IntentServices, AsyncTasks, HandlerThread in the background thread.
Battery
- Optimizing Battery Life - Android's official tutorial for Battery Optimization
Others
Network
Google Official
- Optimizing Network Request Frequencies (Android Performance Patterns Season 4 ep2) Android Developers - push instead pull data, sync policies and so on.
- Serialization performance (Android Performance Patterns Season 4 ep14) - use Protobuffers and FlatBuffer to improve seiralization performance
- Effective Network Batching (Android Performance Patterns Season 3 ep10)
Others
- Better Compression = Faster Networking - Colt McAnlis' talk from SF Android
- Improving UX through performance - using okhttp, Fresco,or ToFu to improve network performance
Network Profiling Tools
- ARO - Use this free diagnostic tool to improve your app's battery life, data usage, and responsiveness
- Network Monitor in Android Studio
Article Videos Tools and others that cover multiple topics
Performance Test
Articles
- Performance Tuning On Android - Venmo's experience on UI performance optimization
- Best Practices for Performance - Android Official Training on Performance
- Developing for Android - Chet Haase's series,including Memory,Storage, UI Performance
- Detect and Resolve Performance Problems on Android - Use multiple ways to detect and fix Android Performance Problems
- Performance Tips - Android's Official Perf tips
- Facebook Engineering blogs tagged android - Including many articles on performance
Tools
- Developing for Android IXTools
- Performance Profiling Tools - Performance Tools
- StrictMode - Debug Util Class for etection for Storage, Memory and others.
- Probe - Android performance instrumentation tool, comparing application vital signs (CPU usage, memory utilization, number of threads, disk usage, etc.) across app versions, detecting performace regressions.
- BlockCanaryEx - make performance bottleneck detection easily when app blocked
- DroidTelescope - detect performance bolck
- Booster - Booster是专门为移动应用而设计的简单易用、轻量级、无侵入以及可扩展的质量优化工具
Videos
- Android Performance Patterns - Google's official Video about Android Performance
- Android Performance - Udacity's Video Series
- UI Performance - Optimizing and Profiling UI Performance
Codes
- udacity render example
- leakcanary - leakcanary source codes
People you should follow(their work contribute to almost all of this list)
-
Colt McAnlis - Instructor of the Video at Udacity and Youtube
-
Chet Haase - Author of the Developing for Android series
-
Romain Guy - former developer of android ui framework team
-
胡凯 - 翻译了包括Google官方视频的许多andorid性能优化的资料
-
广告:阿里、菜鸟、蚂蚁等招android开发,内推可邮件juude.song@gmail.com