preface

A few days ago I saw the discussion of “Tencent and Alibaba, which company is greater?” Personally, I think they have made great contributions to China’s economic development, but PERSONALLY, I think Ali is even greater. Because ali they’re not just doing their job, they’re influencing and changing others.

At present, Alibaba has more than 400 open source projects, involving middleware, framework, components, database, storage, etc. Internet companies including Didi, netease, Netflix and Uber are all users of alibaba open source projects. More than 3,600 Alibaba engineers have become contributors to open source projects, and they have received over 300,000 stars in the open source community in the past. On GitHub contribution list, Alibaba is the only Chinese company in the top contribution list (data from Alibaba official).

Just yesterday, ali’s latest internal disclosure of “mobile development performance optimization learning notes”, GitHub has been marked with 8K star, praised by various gods.

After reading this overnight, my love for Ali increased and I decided to share this information with everyone as soon as possible!!

Need a complete version of the friend, stamp below the blue font can jump to get free channel!

Github.com/xieyuliang/…

Introduction to data system

Those of you who have used Android and iOS should be impressed that the longer you use Android, the more stuck you get compared to iOS. In this era of networks pursuing 5G, card experience has obviously become a very low impression of the problem, so, not only Alibaba, Tencent, Bytedance, iQiyi, etc., all attach great importance to this problem, in the interview, if you do well in this direction, you will be very valuable.

The data for the “performance” this center, from all aspects of the target product for a full range of “optimization”, so that the performance of the product from all aspects to be improved.

This document has a total of 721 pages, with 4 big points and 25 small chapters. It not only provides detailed analysis of underlying principles, but also special practice cases (there is also a series of supporting performance optimization videos, if necessary).

The full set of information is free to share oh, stamp the card below to jump to the free access channel!

The following is a brief description of the main contradiction to be solved and the objective direction of optimization.

As shown in the figure, in fact, from the overall direction, the problems we need to solve are very clear. Now we will follow this information step by step to learn how to optimize the APP in an all-round way.

Above is the brain map of basic learning ideas, friends who need to click on the blue font below, together with the PDF for you. Github.com/xieyuliang/…

Information details

Chapter one design idea and code quality optimization

  • Six principles (single responsibility principle, Richter substitution principle, dependency reversal principle, interface isolation principle…)
  • Design pattern: structural pattern (bridge pattern, adapter pattern, decorator pattern, proxy pattern, facade pattern…) , creative patterns (Builder pattern, singleton pattern, Abstract Factory pattern, factory method pattern…
  • Data structures (arrays, stacks, queues, linked lists, trees…)
  • Algorithms (sorting algorithm, search algorithm…)

Chapter 2 program performance optimization

  • Startup speed and execution efficiency optimization (cold startup and hot startup analysis, BLACK and white screen solution for APP startup, APP lag problem analysis and solution, StrictMode for startup speed and execution efficiency optimization…)
  • Layout detection and optimization (layout hierarchy optimization, overrendering…)
  • Memory optimization (memory jitter and memory leakage, large memory users, Bitmap memory optimization, Profile memory monitoring tool, Mat large object and leak detection, power consumption optimization, network transmission and data storage optimization, network transmission and data storage optimization, APK size optimization, screen adaptation…)
  • Power consumption optimization (Doze&Standby, Battery Historian, JobScheduler, WorkManager)
  • Network transmission and data storage optimization (Google serialization tool Protobuf, 7Z extreme compression…)
  • APK size optimization (APK slimming, wechat resource confusion principle……)

  • Screen adaptation (adaptation principle, screen resolution qualifier and smallestWidth qualifier adaptation principle, why smallestWidth qualifier adaptation, how to adapt other Modules, FAQ handling……)
  • OOM Problem principle analysis (ADJ. Memory management mechanism, JVM memory reclamation mechanism and GC algorithm analysis, life cycle related issues summary, Bitmap compression scheme summary……)
  • ANR problem analysis (AMS system time regulation principle, program wait principle analysis, ANR problem solution……)
  • Crash monitoring solution (Java layer monitoring solution, Nativie layer monitoring solution……)

Chapter three optimization of development efficiency

  • Distributed version control system Git (Enterprise Efficient Continuous Integration platform, Git distributed version control system, Git branch management……)
  • Automated build system Gradle:

Gradle Transform API Gradle Transform API Gradle Transform API, Gradle Transform API, Gradle Transform API Custom plugin development (Gradle plugin introduction, Get started, practice, custom Gradle plugin, buildSrc module approach…) Plug-in combat (multi-channel packaging, automatic version nailing……)

Chapter 4 APP performance optimization practice

  • Application startup time (start of general process, the cold start and hot start, start, speed measurement, launch window optimization, optimization, system thread scheduling optimization, the optimization of GC, IO optimization, resource rearrangement, page layout optimization, the optimization of class loading, choose the appropriate framework, reduce the Activity of the jump start level, optimization, background keep alive…

  • Fluency (Some tools and routines for performance problem analysis, data analysis based on performance data, performance cases caused by the performance of Android platform, performance problems caused by Android App itself, data characteristics and behavior characteristics of low memory, Lag analysis of whole machine caused by barrier-free services of App Bao and IFlytek input method, Bytedance: Toutiao graphic details page second practice……)
  • Douyin’s practice in APK package size resource optimization (image compression, WebP non-invasive compatibility, multi-DPI optimization, shrinkResource Consolidation, Resource confusion (compatible with AAB mode), ARSC thin…)

  • Youku responsive layout technology full analysis (Youku APP responsive layout technology overview, Youku APP responsive layout Android landing, landing in the distribution scene, landing in the consumption scene, Youku APP responsive layout test scheme……)
  • Network optimization (the practice of the link optimization of Mobile Taobao in the network and the in-depth optimization of Baidu APP in the network…)
  • Disclosure of the performance optimization project of Mobile Taobao Double 11 (implementation of the one-second rule, 20% increase in startup time and page frame rate, 50% saving in memory for Android phones…)
  • Autonavi APP full link source code dependency analysis (AUtonavi APP platform architecture, basic implementation principle, project architecture, application scenarios and implementation principle……)
  • Complete the OOM combat experience sharing (check for memory leakage, bottom pocket strategy, memory peak is too high, oversized map optimization……)
  • Wechat Android terminal memory optimization practice (Activity leak detection, Bitmap allocation and recovery tracking, Native memory leak detection, thread monitoring, memory monitoring…)

conclusion

As a veteran Internet enterprise, Alibaba has to be thoroughly tempered in terms of technology to achieve such a volume. Only by pursuing the top technical level can it stand firm in the Internet world where technology is king. Naturally, this “Mobile Development Performance Optimization note” is certainly a high quality study note that stands up to everyone’s scrutiny.

If you want to improve your performance optimization techniques, I think this is a note you should definitely not miss. Friends in need, I would like to share with you for free, stamp the blue font below can jump to the free access channel!

Github.com/xieyuliang/…