There has always been a saying in the industry : The bottom layer with good technology may not be hard enough , But the bottom of the solid learning, progress like flying . This is why today's big factories pay great attention to the investigation of the underlying principles : In addition to the ability to see the interviewer , The underlying principle can better see the development potential of a developer .

You should also feel this deeply , During the interview , The underlying principle is that you can't get past it anyway . The most typical is Framework, Many large factories have made clear requirements for this in their recruitment :

<> Why do big factories have to ask Framework

Android Framework
Although the development is relatively low-level , Narrow circle , But something that can master some principles , By analogy , You can also develop to the application layer , Now let's see Framework How important is knowledge .

Give me some chestnuts , You may know : Frame drop monitoring , Function Instrumentation , Slow function detection ,ANR monitor , Start monitoring , All need to be right Framework
Have a deeper understanding , To know how to monitor , What mechanism is used to monitor , Where is the function plug , Which class, which method and which property should be called by reflection ……

and Framework in ,Binder and Handler
It's even more important . And at present, the number of front-line Enterprises app Are multi-threaded and multi process , and Android The inter process communication mechanism is Binder,
Native inter thread communication is Handler,Binder and Handler It is a knowledge point that must be mastered to understand the operating mechanism of Android , What's more, it's a knowledge point that must be asked in the interview of large factories :

* Android What are the ways of multi process communication in ?
* What have you used for process communication ? What is the principle ?( Byte runout , millet )
* Describe Binder Mechanism principle ?( Oriental headlines )
* Binder What is the working process of thread pool ?( Oriental headlines )
* Handler How to communicate with threads , What is the principle ?( Oriental headlines )
* Handler If there is no message processing, is it blocking or non blocking ?( Byte runout , millet )
* runnable How is it implemented ?( Byte runout , millet )
* handler of Callback and handlemessage All exist , but callback return true
handleMessage Will it still be implemented ?( Byte runout , millet )
* Handler of sendMessage and postDelay Differences between ?( Byte runout )
* .……

In the process of practical application , Communication mechanism is particularly important , Open an interface operation from basic , It involves multiple interactions across processes and system services ,app Layer also involves multiple thread switches within the process , How many services do you want to really understand Android , It is bound to master the communication mechanism of Android ,Handler and Binder It is also the most important communication mechanism of Android .

To help you understand Framework Source code , In depth systematic learning Handler&Binder, And apply it to work , The former Samsung is specially invited here / Xiaomi senior R & D manager brings you 《Framework Uncover secrets of development 》 Learning material sharing , Will help you master Binder and Handler Principles and interview skills !
You can get the required documents at the end

<> Chapter I System startup process analysis

Section I Android Launch overview
Section II init.rc analysis
Section III Zygote
Section IV Interview questions

<> Chapter II Binder analysis

Section I Macro cognition Binder
Section II binder of jni Method registration
Section III binder drive
Section IV data structure
Section V start-up service_manager
Section VI acquisition service_manager
Section VII addService technological process
Section VIII Binder Full analysis of interview questions

<> Chapter III Handler analysis

Section I Source code analysis
Section II Difficult problems
Section III Handler Often ask interview questions

<> Chapter IV AMS analysis

Section I introduction
Section II Android framework
Section III communication mode
Section IV System startup series
Section V AMS
Section VI AMS Analysis of interview questions

<> Chapter V WMS analysis

Section I Activity And Window Related concepts
Section II Android Window management service WindowManagerService calculation Activity Process analysis of window size
Section III Android Window management service WindowManagerService Analysis of window organization
Section IV Android Window management service WindowManagerService Input method window (Input Method Window) Management analysis of
Section V Android Window management service WindowManagerService Wallpaper window (Wallpaper Window) Management analysis of
Section VI Android Window management service WindowManagerService Calculation window Z Process analysis of shaft position
Section VII Android Window management service WindowManagerService display Activity Component startup window (Starting Window) Process analysis of
Section VIII Android Window management service WindowManagerService switch Activity window (App Transition) Process analysis of
Section IX Android Window management service WindowManagerService Principle analysis of display window animation

<> Chapter VI PKMS Android10.0 Source code interpretation

Section I preface PKMS What is it? ?
Section II PKMS General information
Section III PKMS Role location
Section IV PKMS Start analysis process
Section V APK Scan of
Section VI PMS Permission scanning
Section VII PackageManagerService Comprehensive notes