preface
Every winter, every year also can’t stop an Android programmer to pursue the determination of big factory. What knowledge points do we need to master if we want to enter the big factory? Here, I sort out an overall knowledge framework for you. It includes Java, Android, algorithm, network, etc., and I also recommend books and blogs related to these knowledge points. I hope you can improve and organize your own knowledge system after reading. I wish you all an early entry into their ideal company ~~
Note, the whole article is a summary of knowledge points, does not contain the answer, we need to read the source code, knowledge only to explore and discover their own, will be precious!
Java Basics
The Jvm related
- Java memory structure and partitioning
- Creation, storage, and access of Java objects
- Java Determine object survival and garbage Collection algorithm (GC)
- A common garbage collector in the Jvm
- Java class loading process
- Java class loader (parent delegate model)
Recommended reading:
- In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 2 Java Memory regions and memory overflow exceptions
- In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 3 garbage collector and Memory allocation Strategies
- In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 6 class file structures
- In Depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 7 virtual machine class loading mechanisms
- Java VIRTUAL Machine Specification Java SE Version 8
A collection of related
- ArrayList analysis
- LinkedList analysis
- A HashMap analysis
- HashTable analysis
- LinkedHashMap analysis
- HashSet analysis
- LinkedHashSet analysis
- ArrayMap, SparseArray, comparison with HashMap
- ConcurrentHashMap analysis
Recommended reading
- If you don’t mind, check out my –>ArrayList analysis
- If you don’t mind, check out my –>LinkedList analysis
- If you don’t mind, you can take a look at my hash table for the first time
- Understand HashTable from top to bottom
- Meituan technical team -Java8 series rethinking HashMap
- Overview of Map (II) : Understand LinkedHashMap from top to bottom
- The Art of Concurrent Programming in Java, Chapter 6, Section 6.1, Implementation principles and usage of CocurrrentHashMap (based on JDK 1.6, 1.7 analysis
- ConcurrentHashMap1.8
Concurrent related
- Java memory model
- Principle of volatile
- The principle of Synchronized
- AQS principle
- Condition principle
- Already the principle
- Fair and unfair locks
- ReentrantReadWriteLock principle
Recommended reading:
- The Art of Concurrent Programming in Java. Chapter 2: The underlying implementation of Java concurrency
- The art of Concurrent Programming in Java. Chapter 3 memory models
- The Art of Concurrent Programming in Java. Chapter 5 locking in Java
- Java memory model for Java concurrent programming
- Java concurrent programming JavaCAS operations
- Volatile for Concurrent programming in Java
- Synchronized in Java concurrent programming
- Introduction to Java concurrent programming locking mechanism
- Lock interface for Java concurrent programming locking mechanism
- Concurrent Java programming of locking mechanism of AQS (AbstractQueuedSynchronizer)
- LockSupport tool for Java concurrent programming locking mechanism
- Condition interface for Java concurrent programming locking mechanism
- Reentrant locking for Concurrent programming in Java
- Read/write locking for Concurrent programming in Java
Thread related
- Starting and terminating a thread
- Interthread communication
- Wait/notification mechanism
Recommended reading:
The Art of Concurrent Programming in Java. Chapter 4: The Basics of Concurrent programming in Java
Thread pool correlation
- Reasons for using thread pools
- Internal principles of thread pools
- Several important parameters and flow descriptions in thread pools
- Several common work queues in thread pools
- Several common thread pools and usage scenarios.
Recommended reading: The Art of Concurrent Programming in Java, chapter 9 thread pools in Java
IO related
- IO related interview questions -Socket
- IO Related Interview Questions -BIO/NIO
Recommended reading:
- NIO related basics one
- NIO related basics part II
- NIO related basics three
- “UNIX Network Programming, Volume 1: Socket Networking API version 3.” Chapter 6 I/O Reuse: Select and Poll
- In depth understanding advanced Features and best practices of the Java Virtual Machine JVM. Chapter 2 Java memory regions and Memory overflow Exceptions section 2.7 Direct memory introduction
Android Basics
The Activity related to the
- Life cycle in a typical case
- Life cycle in exceptional cases
- Save data in abnormal cases
- The life cycle of the target Activity and the current Activity when jumping to an Activity in various cases
- The startup mode and application scenario of the Activity
- Process and application life cycles
Recommended reading:
- Android Development Art Exploration Chapter 1 Activity lifecycle and startup mode
- The working process of Activity in Chapter 9, Section 9.2, Android Development Art Exploration
- Google- Process and application lifecycle
- Google- Tasks and back stack
The Service related
- The definition and functions of Service
- Service Two startup modes startService and bindService difference and life cycle
- Service Binds three implementations of the Service, extending Binder classes, using Messenger, and using AIDL
- About the conversion between start service and bind service, bind service before start service, start service after bind service
- The difference between Service and Thread is Thread
- Implicit booting for Android 5.0 + and its solution
- How can services not be killed
- IntentService usage and principle
Recommended reading:
- The working process of Service in Chapter 9, Section 9.3, Android Development Art Quest
- Everything you need to know about what Android Services really are all about
- IntentService Android multithreaded IntentService
- Android multithreading HandlerThread complete details
BroadcastReceiver related
- BroadcastReceiver Definition, functions, and application scenarios
- BroadcastReceiver is registered in static mode and dynamic mode
- The timing of BroadcastReceiver registration and cancellation
- Different types of BroadcastReceiver include broadcast, system broadcast, ordered broadcast, sticky broadcast, and application broadcast
Recommended reading:
- Chapter 9, Section 9.4, BroadcastReceiver
- The most comprehensive breakdown in BroadcastReceiver history
- Broadcast adaptation under 7.0, 8.0, 9.0
Fragments related
- Fragment life cycle
- Lazy loading of fragments
- Fragment Communication between fragments
- The difference between FragmentPagerAdapter and FragmentStatePagerAdapter
- Why not just pass in data using a new Fragment
Recommended reading:
- Holes you stepped on in those years
- Google – an overview of the fragments
- Google- Communicate with other fragments
Serialization correlation
- Definition and difference between serialization and deserialization
- Serializable serialVersionUID and transient keyword function
- Serialization: Difference between Parcelable and Serializable
Recommended reading:
- Serialization and deserialization of Parcelable and Serializable analysis
- Android Development Art Exploration chapter 2 IPC basic concept introduction
The IPC related
- Under what circumstances will the multi-process mode be used in Android, and how to enable multi-process
- Why did Android use Binder as an IPC mechanism
- Common IPC methods include Bundle, file sharing, Messenger, AIDL, ContentProvider, and Socket
- AIDL semantic
- How is AIDL created
- AIDL generates Java files for detailed analysis
Recommended reading:
- Chapter 2: IPC Mechanics
- Chapter 3, Process 3.2, process descriptors
- Binder principle analysis for Android application engineers
- If you need more in-depth understanding, I recommend GitYuan’s large Binder series articles
View event mechanism related
- View coordinate system
- View slides in several ways, using ScrollTo/ScrollBy, using animation, and changing layout parameters
- Principle and realization of elastic sliding
- View event distribution mechanism, click on the event transfer rules, event distribution source interpretation
- Handle sliding conflict scenarios and solutions
Recommended reading:
Android Development Art Exploration chapter 3 View event System
View drawing correlation
- DecorView, Window, ViewRootImpl, etc
- MeasureSpec concept
- View workflow, measure process, layout process, draw process
- Precautions for customizing a View
- The relationship between Activity, Window, and View
Recommended reading:
- Android Development Art Exploration chapter 4 how View works
- Understanding Windows and Windows Manager in Chapter 8 of Exploring the Art of Android Development
- Android custom control trilogy article index
View animation related
- Commonly used animation View animation (tween animation), property animation and frame animation
- Tween animation is different from property animation
- Differentiator and estimator understanding
- How property animation works
Recommended reading:
- Android custom control trilogy article index
- Android development art exploration chapter 7 Android animation in-depth analysis
Handler associated
- ThreadLocal for the Handler mechanism
- Handler: Looper, Handler, message queue
- Handler mechanism for sending and retrieving messages
- Message Handler mechanism and Message recycling mechanism
- The exit of the circular message queue by the Handler mechanism
- Leaks exist in the Handler mechanism
- Understanding and using the IdleHandle Handler mechanism
Recommended reading:
- Chapter 10, Section 10.2, Android Messaging
- —–> Do you know android MessageQueue.IdleHandler?
- —–> Do you really know Handler? Handler q&a
- If you don’t mind, you can see my summary of the Handler mechanism —–>Anroid Handler mechanism directory
AsyncTask related
- Usage and precautions of AsyncTask
- AsyncTask several important methods doInBackgound, onProgressUpdate, onPostExecute and so on
- Understanding of the working principle and source code of AsyncTask
Recommended reading:
- Exploring the art of Android Development. Chapter 11 Android threads and thread pools
- The Art of Concurrent Programming in Java. Chapter 9 thread pools in Java. Chapter 10 Executor Framework
Bitmap compression reclamation related
- Memory occupied by Bitmap
- Commonly used compression images
- LruCache principle
- DiskLruCache principle
- Principle of LinkedHashMap
Recommended reading:
- Image memory ratio formula: resolution * size per pixel, rigorous?
- Luban picture compression
- Overview of Map (II) : Understand LinkedHashMap from top to bottom
ListView is related to RecyclerView
- ListView principle and reuse mechanism
- ListView and RecyclerView
Recommended reading:
- Android ListView working principle fully analyzed, with you from the source point of view of a thorough understanding
- Deep understanding of Android cache mechanism (two)RecyclerView and ListView cache mechanism comparison
Data storage-related
- Common database framework GreenDao, official Room
- Database data migration problems
- GreenDao one-to-one, one-to-many, many-to-many relationships
- SharedPreferences SharedPreferences SharedPreferences SharedPreferences
Recommended reading:
- Database Basics 1
- Database Basics 2
- Database Basics 3
- GreenDao official help document
- SharedPreferences at a glance
- GreenDao database MigrationHelper class MigrationHelper
Android open source framework knowledge
OkHttp related
- The advantages of OkHttp
- OkHttp performs the entire flow of the request
- Interceptors in OkHttp
- OkHttp synchronous request and asynchronous request understanding and source code
- Design patterns involved in OkHttp
- OkHttp low-level network request implementation, socket or URLConnection
Recommended reading:
Detaching the Wheel series – Detaching OkHttp
Retrofit related
- Retrofit performs the entire flow of requests
- Understanding of ConverterFactory and CallAdapterFactory in Retrofit
- Adapter schema for CallAdapter in Retrofit
Recommended reading:
Dismantle the Wheel Series: Dismantle Retrofit
RxJava related
- RxJava commonly uses create, from, just, interval, range, etc
- RxJava commonly uses combineLatest, join, merge, zip, etc
- RxJava error handling operators onErrorReturn, onErrorResumeNext, onExceptionResumeNext, and so on
- RxJava filter operators filter, ofType, sample, take, etc
- Rxjava back pressure related understanding
- Actual use of RxJava in development: network request polling, nested callback of network request, fetching cached data from disk/memory cache, etc
Recommended reading:
- Android Rxjava: This is a clear and easy to understand introduction to Rxjava
- If you want to write the Demo directly, I’ve already written a summary of the RxJava operators here
Glide correlation
- Glide’s execution process
- Glide’s caching mechanism
- Glide picture conversion
- Glide picture loading function with progress
- Glide memory, disk cache, priority use
Recommended reading:
- Android picture loading framework most complete analysis (a), Glide basic usage
- Android picture loading framework the most complete analysis (two), from the perspective of the source understanding Glide’s execution process
- Android picture loading framework the most complete analysis (three), explore Glide cache mechanism
- Android picture loading framework the most complete analysis (four), play Glide callback and monitoring
- Android picture loading framework most complete analysis (five), Glide powerful picture conversion function
- Android picture loading framework most complete analysis (six), explore Glide’s custom module function
ButterKnife related
- Java annotations are associated with annotations
- APT tools for Java annotations
- ButterKnife annotation framework principle
Recommended reading:
- Android Annotations APT Tools (3)
- Android Annotations (2)
- ButterKnife principle analysis
EventBus related
- EventBus principle, and the use of index classes
Recommended reading:
- Android Annotations APT Tools (3)
- Android Annotations (2)
- Tencent Bugly – Drivers teach you how to “bang” EventBus3
Android Performance Optimization
- Performance optimization: layout optimization, rendering optimization, threading optimization, etc
- ANR exception: Time-consuming operations are performed on the main thread, for example, the BroadcastReceiver(BroadcastReceiver for 10s, BroadcastReceiver for 60s) and Service(BroadcastReceiver for 20s, and Service for 200s) do not finish processing related tasks
- OOM exception: The memory overflows
- Memory leaks: Several scenarios of memory leaks, such as leaks caused by singleton patterns, leaks caused by static variables, memory leaks caused by property animations, etc
Recommended reading:
- Chapter 15 Android Performance Optimization
- The use of Memory profilers
- LeakCanary library description
Android screen adaptation knowledge points
- Toutiao adaptation
- Width and height qualifier adaptation
- SmallestWidth adaptation
Recommended reading:
- The current stable and efficient UI adaptation scheme of Android
- Toutiao adaptation
- SmallestWidth qualifier adaptation scheme
Android packaging
- Android signature understanding
- Gradle is packaged in multiple channels
Recommended reading: The Definitive Guide to Android Gradle
Android Architecture
- MVC architecture design pattern interview question explanation
- MVP architecture design mode interview question explanation
- MVVM architecture design mode interview question explanation
Recommended reading:
- MVP Architecture Design
- MVVM architecture design
- googlesamples/android-architecture
Features of different Android versions
Recommended reading:
- Features in different Versions of Android
- Broadcast adaptation under 7.0, 8.0, 9.0
- Adaptation for Android 6.0
- Android 7.0 Application Sharing Files (FileProvider)
- Android 7.0 shared file usage
Network knowledge
- There are three kinds of computer network architecture, OSI architecture (7 layers), TCP/IP architecture (4 layers) and five layers architecture
- TCP connection management (three-message handshake, four-message handshake)
- Understanding and differences between TCP and UDP
- Basic concepts and packet structure of Http
- Common Http error codes
- Http1.0 vs. Http1.1 vs. Http2.0
- The difference between GET and POST requests in Http
- The difference between cookies and sessions in Http
- Differences between Http and Https
- Https encryption algorithm related interview questions, signature certificates, public and private keys, digital digest understanding
Recommended reading:
- “Architecture”. Chapter 1, sections 1.7.1 to 1.7.5
- TCP three-message handshake and four-message handshake — “Computer Network 7th edition Xie Xiren”, chapter 5, section 5.9 TCP transport connection management
- Understanding TCP and UDP — “Computer Network 7th edition Xie Xiren” chapter 5 transport layer
- Computer Network 7th edition Xie Xiren chapter 6 Application layer chapter 7 Network security
- The differences between HTTP1.0, HTTP1.1, and HTTP2.0
- A clear guide to the basics of computer networking
Design pattern knowledge
- The singleton pattern
- Builder pattern
- Decorative pattern
- The strategy pattern
- Template method
- Observer model
- , etc…
Android source code design Pattern analysis and combat
Algorithmic knowledge point
- There are eight common sorting methods
- Calculation of time complexity
- Linked list correlation algorithm, linked list flipping, linked list merging, etc
- Binary tree correlation algorithm pre-order, mid-order, post-order traversal (recursive, iterative)
- Red black tree and BL tree
- Etc.
Recommended reading:
- Java Data Structures and Algorithms, 2nd Edition
- Time Complexity Learning (I)
- Time Complexity Learning (PART 2)
- Brush the topic — – > LeetCode