An overview of the
It is said that gold, silver, bronze and five are the best months for programmers to change jobs. I also changed jobs in early April. Before looking for a job, I read a lot of interview questions and reviewed materials, but I found that it was not good to just read the interview questions, because I could not remember the things on the back of the chair, so it needed to be a system of knowledge. Therefore, the author organized a review outline, which basically covered the knowledge points necessary for Android senior engineer interview. I hope this article can help some friends who want to change jobs better review and prepare for interviews.
This article only lists the outline content, as for the detailed content of each module, a lot of information on the Internet, you can consult by yourself, after the order has time to put some of the information I see when reviewing, so review up knowledge more systematic, get twice the result with half the effort.
1. Java related
- Containers (HashMap, HashSet, LinkedList, ArrayList, array, etc.)
Need to understand the implementation principle, but also flexible use, such as: their own implementation of LinkedList, two stack implementation of a queue, array implementation stack, queue implementation stack, etc.
- The memory model
- Garbage Collection algorithm (JVM)
- Class loading process (need to see more, more understanding, more important for hot fixes and plug-ins)
- reflection
- Multithreading and thread pools
- HTTP, HTTPS, TCP/IP, Socket communication, three-way handshake, four-way wave
- Design patterns (Six basic principles, design patterns commonly used in projects, handwritten singletons, etc.)
- Breakpoint continuingly
2. Android basics
- Custom View (reference link: custom View, have this article is enough – Jane book, Android custom View)
- Event interception distribution (Android event distribution mechanism)
- Solved some performance problems and applied them in the project.
- Performance optimization tools (TraceView, Systrace, Debug GPU overdrawing & GPU rendering mode analysis, Hierarchy Viewer, MAT, Memory Monitor & Heap Viewer & Allocation) The Tracker, etc.)
- Performance optimization (1) Network: API optimization, flow optimization, weak network optimization (2) Memory: OOM processing, memory leakage, memory detection, analysis, Bitmap optimization (3) drawing (4) Electricity: WeakLock mechanism, JobScheduler mechanism (5) APK slim (6) memory jitter (7) memory leak (8) lag (9) Performance optimization: layout optimization, over-rendering processing, ANR processing, monitoring, buried point, Crash upload.
- IntentService principle and application
- How to cache itself (LRUCache principle)
- Graphic image correlation: OpenGL ES pipeline flow, understanding of EGL, Shader correlation
- SurfaceView, TextureView, GLSurfaceView differences and usage scenarios
- Animation, Differentiator, estimator (View animation and property animation in Android – Brief book, Introduction and Use of Android animation)
- MVC, MVP, MVVM
- Handler, ThreadLocal, AsyncTask
- Gradle (Groovy syntax, Gradle plugin development foundation)
- Hot repair, plug-in
3, the Android Framework
- AMS, PMS,
- Activity Startup process
- Binder mechanism (use of IPC, AIDL)
- Why Parcelable and what are the benefits?
- Android image display related process, Vsync signal, etc
4. Tripartite source code
- Glide: Loading, caching, LRU algorithm
- EventBus
- LeakCanary
- ARouter
- Plugins (principles and genres of different plugins, pros and cons. Limitations)
- Hot repair
- RXJava
- Retrofit
5. Algorithms and data structures
- Single linked list: reverse, insert, delete
- Double linked list: insert, delete
- Handwriting common sort, merge sort, heap sort
- Binary trees are traversed pre -, middle -, and back-order
- Maximum K problem
- Breadth and depth first search algorithm
- You can go to brush the LeetCode, to improve their own will be larger.