{"id":3738,"url":"https://github.com/Juude/awesome-android-performance","last_synced_at":"2025-08-04T00:32:19.075Z","repository":{"id":41280892,"uuid":"42652974","full_name":"Juude/awesome-android-performance","owner":"Juude","description":"Android performance optimization  tutorials, videos and tools list(Android性能优化视频，文档以及工具) ","archived":false,"fork":false,"pushed_at":"2019-05-07T11:32:14.000Z","size":31741,"stargazers_count":2855,"open_issues_count":1,"forks_count":380,"subscribers_count":174,"default_branch":"master","last_synced_at":"2024-12-03T05:02:07.764Z","etag":null,"topics":["android","android-performance","memory-leak","performance-optimization"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Juude.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-17T11:42:37.000Z","updated_at":"2024-11-30T03:54:06.000Z","dependencies_parsed_at":"2022-09-21T01:00:48.225Z","dependency_job_id":null,"html_url":"https://github.com/Juude/awesome-android-performance","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juude%2Fawesome-android-performance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juude%2Fawesome-android-performance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juude%2Fawesome-android-performance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juude%2Fawesome-android-performance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Juude","download_url":"https://codeload.github.com/Juude/awesome-android-performance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228548595,"owners_count":17935225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-performance","memory-leak","performance-optimization"],"created_at":"2024-01-05T20:16:50.010Z","updated_at":"2024-12-07T07:31:26.370Z","avatar_url":"https://github.com/Juude.png","language":null,"readme":"# awesome-android-performance\n This is a  list of awesome Android tutorials, videos and tools for performance optimization\n \n---\n\n## View\n#### Google Official Videos\n+ [Double Layout Taxation Android Performance Patterns Season 3 ep8](https://www.youtube.com/watch?v=dB3_vgS-Uqo\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=25) - fix layout problems\n\n#### Others\n+ [Infamous ViewHolder Pattern](https://sriramramani.wordpress.com/2012/07/25/infamous-viewholder-pattern/) - ViewHolder pattern in ListView\n+ [View Reduction](https://sriramramani.wordpress.com/2013/03/25/view-reduction/) - use Compound Drawables  to increase performance\n+ [Improving Comment Rendering on Android](https://engineering.instagram.com/improving-comment-rendering-on-android-a77d5db3d82e) - Instagram's post on TextView Performance\n+ [Custom ViewGroups](https://sriramramani.wordpress.com/2015/05/06/custom-viewgroups/) - a Facebook Engineer's artcile on Custom ViewGroup to increase performance\n\n## WebView\n+ [Why Use Crosswalk?](https://software.intel.com/en-us/xdk/docs/why-use-crosswalk-for-android-builds) - use crosswalk for better performance, especiallly for android version below4.4\n+ [Enhance webView performance](http://stackoverflow.com/questions/3652583/enhance-webview-performance-should-be-the-same-performance-as-native-web-browse) - disable the WebView cache to make WebView much faster.\n+ [Supercharging the Android WebView](https://medium.com/myntra-engineering/leveraging-native-power-in-webview-105d248fe71) - cache critical assets that drastically reduce the load time.\n\n#### Tools\n+ [crosswalk-cordova-android](https://github.com/crosswalk-project/crosswalk-cordova-android) — An app runtime based on Chromium/Blink.\n\n## Graphics\n+ [Android 3.0 Hardware Acceleration](http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html)\n+ [Debug Overdraw](https://developer.android.com/tools/performance/debug-gpu-overdraw/index.html) - debug overdraw\n+ [Android Performance Case Study](http://www.curious-creature.com/docs/android-performance-case-study-1.html) - Debug Performance use `gfxinfo` systrace and `show GPU Overdraw ` `HierarchyViewer` `OpenGL traces`\n+ [Android Performance Case Study Follow-up](http://www.curious-creature.com/2015/03/25/android-performance-case-study-follow-up/) - Use `OpenGL traces` and UUI problems caused by transparency\n+ [Hardware Acceleration](http://developer.android.com/guide/topics/graphics/hardware-accel.html#layers)\n+ [Optimizing Hardware Layers](http://www.curious-creature.com/2013/09/13/optimizing-hardware-layers/)\n+ [Graphics Performance](https://storage.googleapis.com/androiddevelopers/android_developers_backstage/ADB%2031%20Graphics%20Performance.mp3) - Podcasts on Android Performance\n+ [Hardware Acceleration Animation](http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/) - Using hardware layers to improve Android animation performance,\n\n#### Tools\n+ [Analyzing UI Performance with Systrace](http://developer.android.com/intl/zh-cn/tools/debugging/systrace.html)\n+ [Optimizing Your UI](http://developer.android.com/intl/zh-cn/tools/debugging/debugging-ui.html) - HierarchyViewer Usage\n+ [Introduction to Systrace](http://developer.android.com/intl/zh-cn/tools/debugging/debugging-ui.html)\n\n## Bitmaps\n+ [Loading Large Bitmaps Efficiently](http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap)\n+ [Bitmap quality, banding and dithering](http://www.curious-creature.com/2010/12/08/bitmap-quality-banding-and-dithering/)\n+ [Android: bitmaps, textures and pre-multiplied pixels](https://plus.google.com/+ChetHaase/posts/ef6Deey6xKA)\n+ [Testing Display Performance](https://developer.android.com/preview/testing/performance.html)\n\n\n## Memory\n#### Google official videos\n+ [Memory Performance 101](https://www.youtube.com/watch?v=OrLEoIsMIAc\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=59)\n+ [Android Performance Patterns: Tool - Memory Monitor\n](https://www.youtube.com/watch?v=7ls28uGMBEs\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=63) - introducing Memory monitor and Memory heap tool\n+ [Android Performance Patterns: Performance Cost of Memory Leaks](https://www.youtube.com/watch?v=h7qHsk1nWKI\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=62) - on memory leaks\n+ [Garbage Collection in Android](https://www.youtube.com/watch?v=pzfzz505Uo\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=61)\n+ [Memory Churn and Performance](https://www.youtube.com/watch?v=McAvq5SkeTk\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=60)\n+ [Avoiding Allocations in onDraw](https://www.youtube.com/watch?v=HAK5acHQ53E\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=37)\n+ [Android内存优化之OOM](http://hukai.me/android-performance-oom/)\n\n#### others\n+ [Investigating Your RAM Usage](http://developer.android.com/intl/zh-cn/tools/debugging/debugging-memory.html)\n+ [The truth about Preventative Optimizations](https://medium.com/google-developers/the-truth-about-preventative-optimizations-ccebadfd3eb5) - You  can find some useful things from the links.\n+ [A small leak will sink a great ship](https://corner.squareup.com/2015/08/a-small-leak.html)\n+ [LeakCanary](https://github.com/square/leakcanary) A memory leak detection library for Android and Java.\n+ [Android内存泄露案例分析](http://www.csdn.net/article/2015-09-07/2825631)\n+ [Tips for Optimizing Android Application Memory Usage](https://software.intel.com/en-us/android/articles/tips-for-optimizing-android-application-memory-usage) - Tips\n+ [Android memory and performance optimization - Tutorial](http://www.vogella.com/tutorials/AndroidApplicationOptimization/article.html)\n+ [Building Memory-efficient Java Applications](http://www.cs.virginia.edu/kim/publicity/pldi09tutorials/memory-efficient-java-tutorial.pdf)\n+ [How to Leak a Context: Handlers \u0026 Inner Classes](http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html)\n+ [Improving Facebook's performance on Android with FlatBuffers](https://code.facebook.com/posts/872547912839369/improving-facebook-s-performance-on-android-with-flatbuffers/)\n\n#### Tools for improving memory performnace\n+ [YourKit](https://www.yourkit.com/java/profiler/) - Performance and Memory Java Profile\n+ [MAT](https://eclipse.org/mat/) - Memory Analysis tool for Java\n+ [Allocation Tracker](http://developer.android.com/intl/zh-cn/tools/debugging/ddms.html#alloc)\n\n## Concurrency\n+ [The Zen of IntentService. (Android Performance Patterns Season 5 ep7)](https://www.youtube.com/watch?v=9FweabuBi1U\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026index=70) - Talked about IntentServices, AsyncTasks, HandlerThread in the background thread.\n\n\n## Battery\n+ [Optimizing Battery Life](https://developer.android.com/training/monitoring-device-state/index.html) - Android's official tutorial for Battery Optimization\n\n## Others\n+ [SMP Primer for Android](http://developer.android.com/intl/zh-cn/training/articles/smp.html)\n+ [JNI](http://developer.android.com/intl/zh-cn/training/articles/perf-jni.html)\n### Network\n###### Google Official\n+ [Optimizing Network Request Frequencies (Android Performance Patterns Season 4 ep2)\nAndroid Developers](https://www.youtube.com/watch?v=nDHeuEM30ks\u0026list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu\u0026index=2) - push instead pull data, sync policies and so on.\n+ [Serialization performance (Android Performance Patterns Season 4 ep14)](https://www.youtube.com/watch?v=IwxIIUypnTE\u0026index=14\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE\u0026linkId=20302393) - use Protobuffers and FlatBuffer to improve seiralization performance\n+ [Effective Network Batching (Android Performance Patterns Season 3 ep10)](https://www.youtube.com/watch?v=Ecz5WDZoJok\u0026index=27\u0026list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE)\n###### Others\n+ [Better Compression = Faster Networking - Colt McAnlis' talk from SF Android](https://newcircle.com/s/post/1754/2015/08/20/colt-mcanlis-better-compression-faster-networking)\n+ [Improving UX through performance](https://raw.githubusercontent.com/Juude/awesome-android-performance/master/docs/improving_ux_through_performance.pdf) - using okhttp, Fresco,or ToFu to improve network performance\n### Network Profiling Tools\n+ [ARO](https://developer.att.com/application-resource-optimizer/get-aro/download) - Use this free diagnostic tool to improve your app's battery life, data usage, and responsiveness\n+ [Network Monitor in Android Studio](http://developer.android.com/intl/zh-cn/tools/help/am-network.html)\n\n\n# Article Videos Tools and others that cover multiple topics\n## Performance Test\n+ [Testing Performance of Mobile Apps - Part 1: How Fast Can Angry Birds Run?](http://www.methodsandtools.com/archive/mobileloadtesting.php)\n\n## Articles\n+ [Performance Tuning On Android](http://blog.venmo.com/hf2t3h4x98p5e13z82pl8j66ngcmry/performance-tuning-on-android) - Venmo's experience on UI performance optimization\n+ [Best Practices for Performance](http://developer.android.com/training/best-performance.html) - Android Official Training on Performance\n+ [Developing for Android](https://medium.com/google-developers/developing-for-android-ix-tools-375134af1098) - Chet Haase's series,including Memory,Storage, UI Performance\n+ [Detect and Resolve Performance Problems on Android](http://code.tutsplus.com/tutorials/detect-and-resolve-performance-problems-on-android--cms-24058) - Use multiple ways to detect and fix Android Performance Problems\n+ [Performance Tips](http://hsc.com/Blog/Best-Practices-For-Memory-Optimization-on-Android-1) - Android's Official Perf tips\n+ [Facebook Engineering blogs tagged android](https://code.facebook.com/posts/android/) - Including many articles on performance\n\n# Tools\n+ [Developing for Android IXTools](https://medium.com/google-developers/developing-for-android-ix-tools-375134af1098)\n+ [Performance Profiling Tools](https://developer.android.com/tools/performance/index.html) - Performance Tools\n+ [StrictMode](http://developer.android.com/intl/zh-cn/reference/android/os/StrictMode.html) - Debug Util Class for  etection for Storage, Memory and others.\n+ [Probe](https://github.com/EverythingMe/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.\n+ [BlockCanaryEx](https://github.com/seiginonakama/BlockCanaryEx) - make performance bottleneck detection easily when app blocked\n+ [DroidTelescope](https://github.com/zkwlx/DroidTelescope) - detect performance bolck\n+ [Booster](https://github.com/didi/booster) - Booster是专门为移动应用而设计的简单易用、轻量级、无侵入以及可扩展的质量优化工具\n\n## Videos\n+ [Android Performance Patterns](https://www.youtube.com/playlist?list=PLOU2XLYxmsIKEOXh5TwZEv89aofHzNCiu) - Google's official Video about Android Performance\n+ [Android Performance](https://www.udacity.com/course/viewer#!/c-ud825/l-3753178711/m-3766928782) - Udacity's Video Series\n+ [UI Performance](https://realm.io/news/360andev-brenda-cook-optimizing-profiling-ui-performance-android-ux/) - Optimizing and Profiling UI Performance\n\n## Codes\n+ [udacity render example](https://github.com/udacity/ud825-render)\n+ [leakcanary](https://github.com/square/leakcanary) - leakcanary source codes\n\n## People you should follow(their work contribute to almost all of this list)\n+ [Colt McAnlis](https://twitter.com/duhroach) - Instructor of the Video at Udacity and Youtube\n+ [Chet Haase](https://twitter.com/chethaase) - Author of the [Developing for Android](https://medium.com/google-developers/developing-for-android-introduction-5345b451567c) series\n+ [Romain Guy](https://twitter.com/romainguy) - former developer of android ui framework team\n+ [胡凯](hukai.me) - 翻译了包括Google官方视频的许多andorid性能优化的资料\n\n+ 广告：阿里、菜鸟、蚂蚁等招android开发，内推可邮件juude.song@gmail.com\n","funding_links":[],"categories":["Technical","Game-BenchMark/Metric/Tool","Uncategorized","Others","Internal","Development Alternatives","Android 开发中的日常积累","Other Lists","[](https://github.com/JStumpp/awesome-android/blob/master/readme.md#development-alternatives)非Java开发安卓应用","语言","Device updates"],"sub_categories":["awesome-*","Uncategorized","Flutter","Android 性能优化","TeX Lists","[](https://github.com/JStumpp/awesome-android/blob/master/readme.md#performance)性能"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJuude%2Fawesome-android-performance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJuude%2Fawesome-android-performance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJuude%2Fawesome-android-performance/lists"}