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:

  1. In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 2 Java Memory regions and memory overflow exceptions
  2. In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 3 garbage collector and Memory allocation Strategies
  3. In depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 6 class file structures
  4. In Depth understanding advanced features and best practices of the Java Virtual Machine JVM. Chapter 7 virtual machine class loading mechanisms
  5. 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

  1. If you don’t mind, check out my –>ArrayList analysis
  2. If you don’t mind, check out my –>LinkedList analysis
  3. If you don’t mind, you can take a look at my hash table for the first time
  4. Understand HashTable from top to bottom
  5. Meituan technical team -Java8 series rethinking HashMap
  6. Overview of Map (II) : Understand LinkedHashMap from top to bottom
  7. 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
  8. 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:

  1. The Art of Concurrent Programming in Java. Chapter 2: The underlying implementation of Java concurrency
  2. The art of Concurrent Programming in Java. Chapter 3 memory models
  3. The Art of Concurrent Programming in Java. Chapter 5 locking in Java
  4. Java memory model for Java concurrent programming
  5. Java concurrent programming JavaCAS operations
  6. Volatile for Concurrent programming in Java
  7. Synchronized in Java concurrent programming
  8. Introduction to Java concurrent programming locking mechanism
  9. Lock interface for Java concurrent programming locking mechanism
  10. Concurrent Java programming of locking mechanism of AQS (AbstractQueuedSynchronizer)
  11. LockSupport tool for Java concurrent programming locking mechanism
  12. Condition interface for Java concurrent programming locking mechanism
  13. Reentrant locking for Concurrent programming in Java
  14. 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:

  1. NIO related basics one
  2. NIO related basics part II
  3. NIO related basics three
  4. “UNIX Network Programming, Volume 1: Socket Networking API version 3.” Chapter 6 I/O Reuse: Select and Poll
  5. 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:

  1. Android Development Art Exploration Chapter 1 Activity lifecycle and startup mode
  2. The working process of Activity in Chapter 9, Section 9.2, Android Development Art Exploration
  3. Google- Process and application lifecycle
  4. 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:

  1. The working process of Service in Chapter 9, Section 9.3, Android Development Art Quest
  2. Everything you need to know about what Android Services really are all about
  3. IntentService Android multithreaded IntentService
  4. 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:

  1. Chapter 9, Section 9.4, BroadcastReceiver
  2. The most comprehensive breakdown in BroadcastReceiver history
  3. 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:

  1. Holes you stepped on in those years
  2. Google – an overview of the fragments
  3. 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:

  1. Serialization and deserialization of Parcelable and Serializable analysis
  2. 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:

  1. Chapter 2: IPC Mechanics
  2. Chapter 3, Process 3.2, process descriptors
  3. Binder principle analysis for Android application engineers
  4. 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:

  1. Android Development Art Exploration chapter 4 how View works
  2. Understanding Windows and Windows Manager in Chapter 8 of Exploring the Art of Android Development
  3. 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:

  1. Android custom control trilogy article index
  2. 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:

  1. Chapter 10, Section 10.2, Android Messaging
  2. —–> Do you know android MessageQueue.IdleHandler?
  3. —–> Do you really know Handler? Handler q&a
  4. 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:

  1. Exploring the art of Android Development. Chapter 11 Android threads and thread pools
  2. 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:

  1. Image memory ratio formula: resolution * size per pixel, rigorous?
  2. Luban picture compression
  3. 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:

  1. Android ListView working principle fully analyzed, with you from the source point of view of a thorough understanding
  2. 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:

  1. Database Basics 1
  2. Database Basics 2
  3. Database Basics 3
  4. GreenDao official help document
  5. SharedPreferences at a glance
  6. 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:

  1. Android Rxjava: This is a clear and easy to understand introduction to Rxjava
  2. 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:

  1. Android picture loading framework most complete analysis (a), Glide basic usage
  2. Android picture loading framework the most complete analysis (two), from the perspective of the source understanding Glide’s execution process
  3. Android picture loading framework the most complete analysis (three), explore Glide cache mechanism
  4. Android picture loading framework the most complete analysis (four), play Glide callback and monitoring
  5. Android picture loading framework most complete analysis (five), Glide powerful picture conversion function
  6. 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:

  1. Android Annotations APT Tools (3)
  2. Android Annotations (2)
  3. ButterKnife principle analysis

EventBus related

  • EventBus principle, and the use of index classes

Recommended reading:

  1. Android Annotations APT Tools (3)
  2. Android Annotations (2)
  3. 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:

  1. Chapter 15 Android Performance Optimization
  2. The use of Memory profilers
  3. LeakCanary library description

Android screen adaptation knowledge points

  • Toutiao adaptation
  • Width and height qualifier adaptation
  • SmallestWidth adaptation

Recommended reading:

  1. The current stable and efficient UI adaptation scheme of Android
  2. Toutiao adaptation
  3. 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:

  1. MVP Architecture Design
  2. MVVM architecture design
  3. googlesamples/android-architecture

Features of different Android versions

Recommended reading:

  1. Features in different Versions of Android
  2. Broadcast adaptation under 7.0, 8.0, 9.0
  3. Adaptation for Android 6.0
  4. Android 7.0 Application Sharing Files (FileProvider)
  5. 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:

  1. “Architecture”. Chapter 1, sections 1.7.1 to 1.7.5
  2. TCP three-message handshake and four-message handshake — “Computer Network 7th edition Xie Xiren”, chapter 5, section 5.9 TCP transport connection management
  3. Understanding TCP and UDP — “Computer Network 7th edition Xie Xiren” chapter 5 transport layer
  4. Computer Network 7th edition Xie Xiren chapter 6 Application layer chapter 7 Network security
  5. The differences between HTTP1.0, HTTP1.1, and HTTP2.0
  6. 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:

  1. Java Data Structures and Algorithms, 2nd Edition
  2. Time Complexity Learning (I)
  3. Time Complexity Learning (PART 2)
  4. Brush the topic — – > LeetCode