A, the Android

1. Activity

1. Ha ha ha

A, the Android

\

1.Activity

* * * *

OnSaveInstanceState (),onRestoreInstanceState usage time 3. Activity startup mode and usage scenario 4. Order of life cycle execution 5. To switch between horizontal and vertical screens, press the Home button and the Back button to lock and unlock the screen, jump to the transparent Activity interface, and start an Activity with the Theme as Dialog. The difference between onStart and onResume, onPause and onStop, and the difference between onStart and onResume, onPause and onStop. 8. When does the Activity’s onNewIntent() method execute 9? The four scenarios of ANR 12. The difference between onCreate and onRestoreInstance when restoring data 13. The way of transferring data between Activty 14. 15. What is the Activity task stack 16. 17. How is the data saved for an Activity? How is the saved data recovered after the process is killed

\

2.Service

* * * *

Service startup process 3. How to implement communication between service and Activity 4. What is IntentService? Application Scenarios And the difference between Service and onStartCommand 5. How many return values does the onStartCommand method of Service have? What does each stand for? 6. BindService and startService mixed life cycle and how to close

\

3.BroadcastReceiver

* * * *

1. Classification and Application scenarios of broadcast 2. Differences between the two registration modes of broadcast 3. 4. The difference between local broadcast and global broadcast

\

4.ContentProvider

* * * *

1. What is a ContentProvider and use 2. ContentProvider, ContentResolver, ContentObserver (3) the relationship between the implementation principle of ContentProvider 4. Advantages of ContentProvider 5. What is Uri

\

5.Handler

* * * *

Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler Handler A thread can have several handlers, several Loopers, and several MessageQueue objects. Message.obtain() how to maintain the Message pool 6. What are the methods used by the Handler to send messages 7. The difference between post and sendMessage and the application scenarios 8. PostDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds, postDelay 10 seconds How to ensure that there is only one MessageQueue ThreadLocal in the Handler mechanism 11. What is the HandlerThread? 14. Can sub-threads update the UI? 15. Why does Android not recommend sub-threads access the UI Block when there is no message, how to recover? 17. How does a looper distinguish between multiple handlers when an Activity has multiple handlers? How to distinguish the current message which Handler by dealing with the message is how can anyone know which callback to 18. The stars. The difference between the quit/quitSafely 19. Looper () ¶ How does Handler associate Thread with Looper () MessageQueue enqueueMessage() method how to synchronize threads 24.MessageQueue next() method internal principle 25. Whether a MainLooper can be used to create a Handler in a child thread, and whether Looper and Handler must be on the same thread

\

6. The View map

* * * *

MeasureSpec (MeasureSpec) 3. Custom Viewwrap_content does not work. There are several ways to get the width and height of a View in an Activity. 6. Why can’t onCreate get the width and height of a View 10. What is double buffering 11. Why use SurfaceView 12. SurfaceView, SurfaceTexture, GLSurfaceView, SurfaceTexture, SurfaceView, SurfaceTexture, SurfaceView The getWidth() method is different from getMeasureWidth(). The invalidate() method is different from postInvalidate(). Which is the most efficient LinearLayout, FrameLayout or RelativeLayout? The process and precautions of customizing View 22. How to customize View to consider model adaptation 23. 25.View loading process (setContentView)

\

7.View event distribution

* * * *

2. View onTouchEvent, Priority of onTouch methods OnClickListerner and OnTouchListener 3. Difference between onTouch and onTouchEvent 4. When ACTION_CANCEL is triggered 5. Click on the event that is blocked, but wants to pass to the View below, how do 7. 8. Consume ACTION_DOWN events in onTouchEvent in ViewGroup Activity ViewGroup and View do not consume ACTION_DOWN, so how to pass ACTION_UP event 10. At the same time for the parent View and the View Settings click method, priority response which 11. RequestDisallowInterceptTouchEvent call time

\

8.RecycleView

* * * *

1.RecyclerView multi-level cache mechanism, what is the specific role of each level of cache, which cache will be used in what scenarios respectively 2 Why pre-layout 5. The difference between ListView and RecyclerView 6.RecyclerView performance optimization

\

9.Viewpager&Fragment

* * * *

2. How activities communicate with fragments, and how they communicate with each other 3. Why use Fragment.setargUments (Bundle) to pass parameters 4. What are the differences between FragmentPageAdapter and FragmentStatePageAdapter 6.ViewPager2 differs from ViewPager 7

\

10.WebView

* * * *

1. How to improve the loading speed of WebView 2. Interaction between WebView and JS 3

\

11. The animation

* * * *

ObjectAnimator, ValueAnimator and its differences 4.TimeInterpolator interpolator 5.TypeEvaluator

\

12.Bitmap

* * * *

Calculation of Bitmap memory usage 2. Difference between getByteCount() and getAllocationByteCount() 3. Compression method of Bitmap 4. How to design an image loading library 6. Have a very large image, how to load this large image 7. How image memory changes if you move an image from drawable-xxhdpi to drawable-xhdpi. 8. If the image is placed under hdPI, xxhdPI, the loading priority. If 400800,10801920, priority of loading.

\

13.mvc&mvp&mvvm

* * * *

How does MVP manage the Presenter’s life cycle and when to cancel network requests

\

14.Binder

* * * *

1. The relationship between process and thread in Android, the difference 2. Why need to conduct IPC, multi-process communication may occur what problems 3. What is Binder 6. The principle of Binder 7. How do Binder drivers copy in kernel space? 7. Data transmission with Binder 8. Roles of ServiceManager 9. What is AIDL 10. The steps used by AIDL 11. What data types are supported by AIDL 12. How to optimize AIDL for multiple modules 14. What is the maximum limit of data transmission with Binder and what problems will result when it is full 15. What are the important steps in the loading process of Binder drivers 16. The difference between system services and services started by bindService 17. The bindService process of an Activity 18. Communication with Binder is manually coded without AIDL

\

15. Memory leak & Memory overflow

* * * *

1. What is OOM and what is the cause of memory leak? 2. How to load Bitmap to prevent memory overflow 5.MVP how to handle Presenter layer to prevent memory leakage

\

16. Performance optimization

1. Memory optimization 2. Startup optimization 3. Layout loading and drawing optimization 4. Network optimization

\

17.Window&WindowManager

* * * *

1. What is Windows 2. What is WindowManager 3? 6. When does a DecorView add a DecorView to a Window by WindowManager

\

18.WMS

* * * *

What is WMS? How does WMS manage Windows? What is IWindowSession? What is WindowToken 5. What is WindowState 6. 7. A Dialog Context can only be an Activity Context. 8. How the App communicates with the SurfaceFlinger 9. How the View drawing passes data to the SurfaceFlinger. 10. How Relayout applied to SurfaceFlinger for the Surface 11. What is the Surface

\

19.AMS

* * * *

1. What is ActivityManagerService? When was it initialized? What does it do? 2. What is ActivityThread? What is ApplicationThread? 3. What are the differences between them? What is the relationship with ActivityThread? ActivityRecord, TaskRecord, ActivityStack, ActivityStackSupervisor, ProcessRecord 6.ActivityManager, ActivityManagerService, ActivityManagerNative, ActivityManagerProxy 7. Handwritten implementation of simplified AMS

\

20. The system starts

* * * *

Android startup process 2. Relationship between SystemServer, ServiceManager, and SystemServiceManager 3. 4.Zygote IPC uses sockets instead of Binder

\

21.App startup & packaging & Installation

* * * *

Application startup process 2. Apk composition and Android packaging process 3.Android signature mechanism, how to implement signature,v2 compared with v1 signature mechanism changes 4

\

22. The serialization

* * * *

What is serialization 2. Why serialization and deserialization 3. What are the benefits of serialization 4. What is serialVersionUID 6. Why display the value specifying serialVersionUID?

\

23.Art & Dalvik and their differences

* * * *

1.Art & Dalvik and their differences

Modularization & componentization

1. What is modularization 2. What is componentization 3. Component independent debugging 5. Communication between components 6.Aplication dynamic loading 7

\

25. Hot Fixes & plugins

* * * *

Definition of plug-in 2. Advantages of plug-in 3. Comparison of plug-in framework 4. Plug-in process 5. Principle of plug-in class loading 6. Principle of plug-in resource loading 7. The principle of plug-in Activity loading 8. The difference between hot repair and plug-in 9. Principle of thermal repair

\

26.AOP

* * * *

1. What is AOP 2. 3. The advantages of AOP AOP implementations, APT, AspectJ, ASM, epic, hook \

27.jectpack

**

**1.Navigation

2.DataBinding

3.Viewmodel

4.livedata

5.liferecycle

\

Open source frameworks

* * * *

Okhttp: thread pool; addInterceptor; addNetworkdInterceptor; addInterceptor 7.Glide cache mechanism, memory cache, Disk caching 8. Difference between Glide and Picasso 9.LruCache principle 10.Retrofit source code flow, dynamic proxy 11.LeakCanary Weak reference, source code flow 12.Eventbus 13.Rxjava

\

Second, the Java

\

1.HashMap

* * * *

2. How to implement put() in HashMap 3. How to implement get() in HashMap 4. Why HashMap threads are unsafe 6. Why use red-black tree 7 to resolve hash conflicts? Why not use red-black tree 8 in the first place? Instead of a red-black tree, a binary lookup tree can be turned into a red-black tree 10. What are the solutions to hash conflicts? 12. Under what conditions can HashMap be expanded? 13. Why not just use hashcode as a hash instead of 16 bits higher or 16 bits lower than 15? Why expansion is a power of 2 16. What is the time complexity of a list lookup 17. Red and black tree

\

2.ArrayList

\

3.Jvm

* * * *

1. The memory model of the Jvm, and what is stored in each. 2. The order in which objects are instantiated 4. class loaders, parent delegates and their advantages 5. garbage collection mechanism

\

4. A multithreaded

* * * *

1. Create a thread in Java, Callable, Runnable, Future, FutureTask 2. How to avoid thread deadlocks effectively? How to achieve synchronization in multi-threading 5. Use, difference and principle of synchronized and Lock; 6. The difference between volatile, synchronized, and volatile? Why not use volatile instead of synchronized? 7. Lock classification, several states of lock, CAS principle 8. How to ensure thread safety 9. The difference between sleep() and wait(),run and start, Notify and NotifyAll, lock pool, wait pool 10.Java multithreaded communication 11. Why Java uses thread pool 12

\

5. Note

* * * *

1. Annotation classification and underlying implementation principle 2. Custom annotation

\

6. The reflection

* * * *

1. What is reflection 2. Related classes of reflection 3. How to get a Class property object & constructor object & method object 5.Class. GetField and getDeclaredField difference, getDeclaredMethod and getMethod difference 6. Pros and cons of reflection mechanisms

\

7. The generic

\

8. Design patterns