Preface
Every year in the cold winter, every year can not stop an Android programmer's determination to pursue a big factory. What knowledge points do we need to master if we want to enter a big factory? Here, I sorted out an overall knowledge structure for everyone. The whole includes Java, Android, algorithm, network, etc. I hope you can help you improve and organize your knowledge system after reading it. I wish you all enter your ideal company as soon as possible~~
Note that the entire article is a summary of the knowledge points. Since the space limitation does not include the answer, you need to read the source code more. Knowledge will only be precious if you explore and discover it yourself!
If you need a detailed analysis and a PDF document with answers, you can click here to receive
Java basic knowledge points
Jvm related
- Java memory structure and partition
- Creation, storage and access of Java objects
- Java determines whether the object is alive and the garbage collection algorithm (GC)
- Common garbage collector in Jvm
- Java class loading process
- Java class loader (parent delegation model)
Collection related
- ArrayList analysis
- LinkedList analysis
- HashMap analysis
- HashTable analysis
- LinkedHashMap analysis
- HashSet analysis
- LinkedHashSet analysis
- ArrayMap, SparseArray, and HashMap comparison
- ConcurrentHashMap analysis
Concurrency related
- Java memory model
- volatile principle
- Principle of Synchronized
- AQS principle
- Condition principle
- ReentrantLock principle
- Fair lock and unfair lock
- ReentrantReadWriteLock principle
Thread-related
- Start and termination of threads
- Inter-thread communication
- Wait/notify mechanism
Thread pool related
- Reasons for using thread pool
- Internal principle of thread pool
- Several important parameters and process descriptions in the thread pool
- Several common work queues in thread pools
- Several common thread pools and usage scenarios.
IO related
- IO related interview questions-Socket
- IO-related interview questions-BIO/NIO
Android basic knowledge points
Activity related
- Life cycle under typical conditions
- Life cycle under abnormal conditions
- Data preservation under abnormal conditions
- The life cycle of the target Activity and the current Activity when jumping to an Activity in various situations
- Activity startup mode and application scenarios
- Process and application life cycle
Service related
- The definition and function of Service
- Service two start methods startService, bindService difference and life cycle
- Three ways to implement Service binding service, extend Binder class, use Messenger, use AIDL
- Regarding the transition between the startup service and the bound service
- The difference between Service and Thread
- The implicit startup problem and its solutions above Android 5.0
- How to ensure that the service is not killed
- The use and principle of IntentService
BroadcastReceiver related
- BroadcastReceiver definition and function, application scenarios
- BroadcastReceiver registration method, static method, dynamic method
- The timing of BroadcastReceiver registration and cancellation
- Different types of BroadcastReceiver, ordinary broadcasting, system broadcasting, ordered broadcasting, sticky broadcasting, application broadcasting
Fragment related
- Fragment life cycle
- Fragment lazy loading
- Communication between Fragment
- The difference between FragmentPagerAdapter and FragmentStatePagerAdapter
- Why is it not recommended to pass in data directly by using new Fragment
Serialization related
- The definition and difference of serialization and deserialization
- The role of serialVersionUID and transient keywords in Serializable
- Serialization: the difference between Parcelable and Serializable
IPC related
- Under what circumstances will multi-process mode be used in Android and how to enable multi-process
- Why does Android use Binder as the IPC mechanism
- IPC common methods use Bundle, use file sharing, use Messenger, use AIDL, use ContentProvider, use Socket
- The semantics of AIDL
- How AIDL was created
- Detailed analysis of AIDL generated Java files
View event mechanism related
- View's coordinate system
- Several ways of View sliding, use ScrollTo/ScrollBy, use animation, change layout parameters
- Principle and realization of elastic sliding
- View event distribution mechanism, click event delivery rules, source code interpretation of event distribution
- Scenarios and solutions for handling sliding conflicts
View drawing related
- DecorView, Window, ViewRootImpl and other concepts
- MeasureSpec concept
- View workflow, measure process, layout process, draw process
- Things to pay attention to when customizing View
- The relationship between Activity, Window and View
View animation related
- Common animation View animation (tween animation), attribute animation and frame animation
- The difference between tween animation and attribute animation
- Differentiator and estimator understanding
- How property animation works
Handler related
- ThreadLocal of Handler mechanism
- How to understand Looper, Handler and message queue of Handler mechanism
- Sending and taking out Message of Handler mechanism
- Message and Message recycling mechanism of Handler mechanism
- Exit of the circular message queue of the Handler mechanism
- Memory leak of Handler mechanism
- Understanding and use of IdleHandle of Handler mechanism
AsyncTask related
- The use and precautions of AsyncTask
- Several important methods of AsyncTask doInBackgound, onProgressUpdate, onPostExecute, etc.
- The working principle and source code understanding of AsyncTask
Bitmap compression and recycling related
- Memory occupied by Bitmap
- Common ways to compress pictures
- LruCache principle
- DiskLruCache principle
- LinkedHashMap principle
ListView is related to RecyclerView
- The principle and reuse mechanism of ListView
- The difference between ListView and RecyclerView
Data storage related
- Commonly used database framework GreenDao, official Room
- Database data migration issues
- One-to-one, one-to-many, and many-to-many relationships in GreenDao
- SharedPreferences use and source code, the difference between commit and apply() methods
Android open source framework knowledge points
OkHttp related
- Advantages of OkHttp
- OkHttp executes the entire process of the request
- Interceptor in OkHttp
- Understanding and source code of synchronous and asynchronous requests in OkHttp
- Design patterns involved in OkHttp
- OkHttp underlying network request implementation, socket or URLConnection
Retrofit related
- Retrofit executes the entire process of the request
- Understanding of ConverterFactory and CallAdapterFactory in Retrofit
- Adapter mode of CallAdapter in Retrofit
RxJava related
- RxJava commonly used creation operators create, from, just, interval, range, etc.
- RxJava commonly used combinations, merge operators combineLatest, join, merge, zip, etc.
- RxJava error handling operators onErrorReturn, onErrorResumeNext, onExceptionResumeNext, etc.
- RxJava filter operators filter, ofType, sample, take, etc.
- Rxjava back pressure related understanding
- The use of RxJava in actual development: network request polling, network request nested callbacks, access to cached data from disk/memory cache, etc.
Glide related
- Glide's execution process
- Glide's caching mechanism
- Glide image conversion
- Glide's picture loading function with progress
- Glide memory, disk cache, priority use
ButterKnife related
- Java annotation related Annotation
- APT tools related to Java annotations
- Principles of ButterKnife Annotation Framework
EventBus related
- EventBus principle, and the use of index classes
Android performance optimization
- Performance optimization: layout optimization, rendering optimization, thread optimization, etc.
- ANR exception: The main thread performed time-consuming operations, such as BroadcastReceiver (10s in the foreground, 60s in the background), Service (20s in the foreground, 200s in the background) did not complete related tasks, etc.
- OOM exception: the cause of memory overflow
- Memory leaks: several scenarios of memory leaks, such as leaks caused by singleton mode, leaks caused by static variables, memory leaks caused by attribute animation, etc.
Android screen adaptation knowledge points
- Toutiao adaptation method
- Width and height qualifier adaptation method
- smallestWidth adaptation
Android packaging knowledge points
- Understanding of Android signatures
- Gradle multi-channel packaging
Android architecture knowledge points
- MVC architecture design pattern interview questions explained
- Explanation of MVP Architecture Design Pattern Interview Questions
- MVVM architecture design pattern interview questions explained
Knowledge points of different versions of Android
- Features under different versions of Android
- Broadcast adaptation under 7.0, 8.0, 9.0
- Adaptation under Android 6.0 permissions
- Android 7.0 application sharing file (FileProvider)
- How to use Android 7.0 shared files
Network knowledge points
- Three computer network architectures, OSI architecture (7 layers), TCP/IP architecture (4 layers), five layers
- TCP connection management (three message handshake, four message handshake)
- Understanding and difference between TCP and UDP
- Http (HyberText Transfer Protocol) basic concept and message structure
- Http common error codes
- The difference between Http1.0 and Http1.1 and Http2.0
- The difference between get request and post request in Http
- The difference between cookie and session in Http
- The difference between Http and Https
- Https encryption algorithm related interview questions, signature certificate, public key private key, understanding of digital digest
Knowledge points of design patterns
- Singleton mode
- Builder mode
- Decorative pattern
- Strategy mode
- Template method
- Observer mode
- Wait…
Algorithm knowledge points
- Eight common sorting methods
- Time complexity calculation
- Linked list related algorithms, linked list flipping, linked list merging, etc.
- Preorder, middle order, and postorder traversal of binary tree related algorithms (recursion, iteration)
- Red-black tree and BL tree
- Wait
If you need a detailed analysis and a PDF document with answers, you can click here to receive
In addition to the above, there are dry goods!
Here I also share an Android learning PDF + architecture video + source notes , advanced architecture technology advanced brain map, advanced advanced architecture information collected and organized by several big guys .
These are fine materials that I will read again and again in my spare time. Can effectively help everyone master knowledge and understand principles. Of course, you can also use it to check for omissions and improve your competitiveness.
If you need it, you can get it here
If you like this article, you might as well give me a super like, leave a message in the comment area or forward and support it~