1, Picture
1,Picture library comparison 2,LRUCache principle 3,Picture loading principle 4,How to implement the picture library by yourself? 5,Glide Source code analysis 6,Glide What cache is used? 7,Glide How does the memory cache control its size?
2, Network and security mechanism
1.Network framework comparison and source code analysis 2.How to design the network request framework? 3.Network request cache processing, okhttp How to handle network cache 4.Load a 10 from the network M Tell me the precautions 5.TCP Three handshakes and four waves 6.TCP And UDP Differences between 7.TCP And UDP Application of 8.HTTP agreement 9.HTTP1.0 And 2.0 Differences between 10.HTTP Message structure 11.HTTP And HTTPS And how to achieve security 12.How to verify the validity of a certificate? 13.https Where symmetric encryption is used, where asymmetric encryption is used, and the encryption algorithm (such as RSA)Do you understand? 14.client How to make sure that the message you sent is received server received? 15.Talk about your right WebSocket Understanding of 16.WebSocket And socket Differences between 17.Talk about your understanding of Android signature. 18.Please explain why Android adds a signature mechanism? 19.Video encryption transmission 20.App How to sandbox and why? 21.Authority management system (how do the underlying permissions work grant (yes)?
3, Database
1.Sqlite Upgrade, add field statements 2.Database framework comparison and source code analysis 3.Database optimization 4.Database data migration
4, Plug in, modularization, componentization, hot fix, incremental update, Gradle
1.Understanding of hot fix and plug-in 2.Analysis of plug-in principle 3.Modular implementation (benefits, reasons) 4.Hot repair and plug-in 5.Understanding of project componentization 6.Description clear Click Android Studio of build What happened after the button
5, Architecture design and design patterns
1.Talk about your right Android Understanding of design patterns 2.MVC MVP MVVM Principles and differences 3.What design patterns do you know? 4.Design patterns commonly used in projects 5.Handwriting producer/Consumer model 6.Write code for observer mode 7.What are the similarities and differences between adapter mode, decorator mode and appearance mode? 8.Some open source frameworks used to introduce an internal implementation process that has seen the source code. 9.Talk about right RxJava Understanding of 10.Rxjava Send event steps 11.RxJava Advantages and disadvantages compared with the usual asynchronous operation 12.say something EventBus Function, implementation mode, substitution EventBus The way 13.Design one from 0 App Overall architecture, how to do it? 14.Say an application that you think is popular at present and design it(For example: live broadcast APP,P2P Finance, small videos, etc) 15.Talk about right java State machine understanding 16.Fragment If in Adapter How should the decoupling be used in? 17.Binder Mechanism and underlying implementation 18.How is the application update done?(Answer: grayscale, forced update, sub regional update)? 19.Implement a Json Parser(Speed can be increased by regularization) 20.Statistics of startup time, standard
6, Performance optimization
1.start-up app Black and white screen optimization 2.Stable - memory optimization 3.Fluency - Caton optimization 4.Saving - power consumption optimization 5.Installation package—— APK Slimming down 6.Cold start and hot start 7.Scenarios and solutions for memory leaks 8. Bitmap optimization 9.LRU Principle of 10.webview optimization 11.How to avoid OOM? ...
7, Android Framework
1.Android system architecture 2.View How to resolve sliding conflicts? 3.View Drawing process? 4.Cross process communication 5.Android What is the system startup process? 6.To start a program, you can click the icon on the main interface or jump from a program. What's the difference between the two? 7.AMS Explanation of important family terms 8.Some open source frameworks used to introduce an internal implementation process that has seen the source code. ...
last
It is said that three years is a barrier for programmers. Whether they can be promoted or improve their core competitiveness is very critical in recent years.
With the rapid development of technology, what can we learn from to reach the level of senior engineer and finally advance to Android Architect / technical expert? I have summarized these five parts;
I have collected and sorted out the interview questions of Alibaba, Tencent, byte beat, Huawei, Xiaomi and other companies in recent years, and sorted out the interview requirements and technical points into a large and comprehensive "Android architect" interview PDF (actually spent a lot more energy than expected), including knowledge context + branch details.
Java language and principle;
Big factory, small factory. Android interview depends on whether you are familiar with Java language
Advanced UI and custom view;
Custom view is the basic skill of Android development.
Performance tuning;
Data structure, algorithm and design pattern are the key foundations and key points, which need to be skilled.
NDK development;
The future direction, high salary will be.
Cutting edge technology;
Componentization, thermal upgrade, thermal repair, frame design
There are a lot of materials for learning Android online, but if the knowledge learned is not systematic, only a superficial taste when encountering problems and no in-depth research, it is difficult to achieve real technical improvement. I hope this systematic technical system has a direction reference for everyone.
When building these technical frameworks, I also sorted out the advanced tutorials of the system, which will be much better than my fragmented learning effect
Of course, it's not easy to learn deeply and master these abilities. We all know how to learn and what the work intensity of being a programmer is, but no matter how busy the work is, we should still set aside two hours a week to study.
Within six months, you can see the change!
**This article has been [CODING open source project: Android learning notes summary + mobile architecture Video + big factory interview real questions + project actual combat source code](
)
Included**
Finally, I would like to introduce myself. Xiaobian graduated from Shanghai Jiaotong University in 13 years. He has been to small companies, Huawei, OPPO and other large factories. He has been to Alibaba for 18 years until now.
I know that most junior and intermediate Android engineers who want to improve their skills often grope for growth or sign up for classes, but there is a lot of pressure on training institutions to pay nearly 10000 tuition fees. Their own fragmented self-study effect is inefficient and long, and it is easy to encounter the stagnation of Tianhuaban technology!
1634564888398)]
Included**
Finally, I would like to introduce myself. Xiaobian graduated from Shanghai Jiaotong University in 13 years. He has been to small companies, Huawei, OPPO and other large factories. He has been to Alibaba for 18 years until now.
I know that most junior and intermediate Android engineers who want to improve their skills often grope for growth or sign up for classes, but there is a lot of pressure on training institutions to pay nearly 10000 tuition fees. Their own fragmented self-study effect is inefficient and long, and it is easy to encounter the stagnation of Tianhuaban technology!
Therefore, I also hope to help friends who want to improve themselves and don't know where to start, and reduce everyone's burden at the same time.