To introduce myself

In 2013, I transferred Java to Android development and worked in a small factory, huawei, OPPO and other large factories. I joined Ali in April, 2018 and have been there until now.

I’ve been interviewed, and I’ve interviewed a lot of people. I know that most junior and intermediate Android engineers want to improve their skills, often by their own exploration and growth, not systematic learning effect is inefficient and long, and it is easy to hit the ceiling technology stagnation!

We have compiled a full set of learning materials for Android architects of Ali P7 level, which is especially suitable for partners with more than 3-5 years of experience in in-depth learning and promotion.

It mainly includes mainstream architecture technologies from Alibaba, bytedance, Tencent, Huawei, Xiaomi and other first-tier Internet companies. If you need anything, just take it.

Note content is free to share, if you need a complete version of notes [click on me] for free!

I, Ali P7 Level Android development core knowledge notes

1. Advanced UI, custom View

The UI piece of knowledge is the most widely used today. That year the popular Android training, learn this small piece of knowledge can casually find a good job.

But obviously now is far from enough, refused to endless CV, personally to project combat, read the source code, research principle!

2.NDK module development

Today, short video apps are booming. With the rise of short video, audio and video development is getting more and more attention, and the salary is rising. Taking first-tier cities as an example, the salary of audio and video engineering development is 40% higher than that of Android application layer development.

The content mainly involves the following aspects:

  • NDK module development
  • JNI module
  • Native development tools
  • Linux programming
  • Underlying image processing
  • Audio and Video development
  • Machine learning

Note content is free to share, if you need a complete version of notes [click on me] for free!

3. Data structure and algorithm

Why study data structures?

This is because all programs are essentially data processing, how to efficiently process data, which depends on the structure of the data itself (such as type (integer, floating point, etc.), dimension, whether it is a complex type (structure type, class type, etc.) and the logical relationship between the data (linear, nonlinear, etc.).

The data structure is inseparable from the algorithm, the design of the data structure is to make the algorithm smooth and convenient implementation.

4.Java advanced and kernel principle

The mainstream language of Android APP development is Java language. The biggest feature of Java language is to improve the possibility of software interaction. It can be said that almost all applications of Android phones are written using Java language.

One hundred percent. All companies, large and small, must ask about Java.

The content mainly involves the following aspects:

  • HashMap
  • ArrayList
  • LinkedList
  • Hashset source code analysis
  • The memory model
  • Garbage Collection algorithm (JVM)
  • The difference between garbage collection and calling System.gc()
  • Class loading process
  • reflection
  • Multithreading and thread pools
  • Design patterns
  • Java generics

And so on…

Note content is free to share, if you need a complete version of notes [click on me] for free!

5. Advancement of Flutter technology

2019 is undoubtedly the year that Flutter technology is in full swing.

Every mobile developer has been fascinated by the features and ideas that Flutter brings with it: “rapid development, expressive and flexible UI, native performance”, from superapps to standalone apps, from pure Flutter to hybrid stacks, Developers have been exploring and applying Flutter technology in a variety of scenarios and are facing a variety of challenges.

Knowledge points of this article:

Create your first Flutter APP. 4. Get started with the Flutter Dart language system

6.360 degree full performance tuning

As product content iterates, features become more complex, and UI pages become richer, it becomes a barrier to smooth operation. To sum up, APP performance optimization has become a comprehensive quality that developers should have, and it is also a guarantee that developers can complete high-quality application works.

1. Design ideas and code quality optimization

2. Program performance optimization

  • Optimization of startup speed and execution efficiency
  • Layout detection and optimization
  • Memory optimization
  • Optimize the power consumption
  • Network transmission and data storage optimization
  • APK size optimization

3. Optimization of development efficiency

  • Git, a distributed version control system
  • Automated build system Gradle

4. Actual project combat

  • startup
  • fluency
  • The practice of Douyin in APK packet size resource optimization
  • Youku responsive layout technology full analysis
  • Network optimization
  • Mobile Taobao Double 11 performance optimization project revealed
  • Autonavi APP full link source code dependency analysis
  • Complete the OOM experience sharing
  • Wechat Android terminal memory optimization practice

Note content is free to share, if you need a complete version of notes [click on me] for free!

7.Framework refined kernel parsing

As we all know, Android is an operating system based on Linux implementation. But to the Linux kernel, Android is just another application running on top of the kernel, no different than any other application running on top of the kernel.

Therefore, Android also needs a runtime environment, which requires the Linux kernel to load the resources required by the Android Framework after startup. The appropriate APK application can only be started after the Framework has been initialized.

The main contents include:

  • In-depth analysis of Binder
  • Parsing Handler in depth
  • Dalvik VM process system
  • Parse WMS in depth
  • PackagerManagerService

Due to the space limitation, the detailed information of the document is too comprehensive, too many details, so only part of the knowledge point screenshots out of the rough introduction, each small node has more detailed content!

Note content is free to share, if you need a complete version of notes [click on me] for free!