Beijing 1:
- Butterknife principle, R2 file?
- Handler Asynchronous message, synchronization barrier? Synchronize messages? When is looper.perpare() created? message.obtain()?
- Vsync, Vsync signal?
- UI slide render optimization?
- Memory leak? Leakcarray principles?
- Oom conditions?
- Open multiple threads causing oom?
- Is bitmap stored in the system? Where is it stored?
- Layout optimization? LinearLayout draw how many times?
- IPC mechanism, understanding of Binder mechanism? Why use thread pools? (One server versus multiple clients)
- Flutter rendering mechanism? Flutter in the tree?
Beijing 2:
- Mobile terminal automation development
- EventBus principles? Advantages? Weaknesses? How to switch threads
- ViewModel+LiveData
- The difference between speakers and mobile phones? Android version, manufacturer room, different customer groups
- Apk thin body?
- Start optimized time detection? Initiator optimization mode
- Componentization? How to design a component
Millet 1:
-
The Activity lifecycle? ActivityA drop-down box when the life cycle? (unchanged) Is onDestory executed immediately?
-
Where is the last frame drawn after the activity starts?
-
How to start android? AOP? Start optimization? Start a thread? AMS, reflection? How do I stake a function?
ASM modifies.class files before generating.dex files, and modifies them between.class and.dex files
-
Leakcanary principles? How to do your own memory leak? What is the time between functions?
-
Bright spot? Directed acyclic graph? Initialization of the ContentProvider?
-
Handler memory leak causes? How to deal with it? Handler holds a strong reference to the Activity, and messageQueue holds a strong reference to the handler
-
Drawing a View? DispatchDraw () and onDraw() execution order?
-
If you draw a circle, make sure that the middle of the circle is not drawn, right? Cavas clipping, the canvas is missing a piece, then the subview cannot be drawn
-
View event distribution? If Dispatch returns true, onInterrcept and onTouch will be intercepted
-
Bitmap optimization? Size calculation of bitmap? If you zoom in on a 2x image and you zoom in on a 1X image, the bitmap gets bigger
-
The thread pool? Block handling? How to catch thread pool errors (ThreadFactory)
-
Producer consumer notification?
-
Thread synchronization? Sychronized, ReentrantLock
-
Hashmap, hash value calculation? Why do you do that? Arraymap and hashmap?
-
What’s the difference between an array and a list?
-
HTTPS encryption
Millet 2 surface:
- Start optimization? Bitmap preloading? How to load images faster? What other optimizations are there?
- How is Glide’s into method executed and displayed in imageView?
- Glide loading process? How does fragment bind? ImageView is loading, loading another image, what does that do?
- Android startup process? The Activity startup process?
- The ViewModel? LiveData understanding? MVVM understanding?
- Network request asynchronous framework? The thread pool?
- List inversion (inverse)
Yy1:
-
Okhttp IO? Okio, the way of IO in Java? Chain of responsibility? Connection pool overcommitment?
-
Glide’s cache structure? Why activieResource?
-
What about EventBus? Bytecode =.class file, annotation mode?
-
RecyclerView cache form?
-
The inner workings of MotionLayout
-
What does Mvvm need to be aware of? Memory leak? Holds a reference to the View
-
LeakCanary principle, gc interval =5s, in idleHandler delay 5s operation, probably after the main thread is idle, wait for verification in 5s to execute GC? How does Fragment listen for memory leaks? FragmentManager. RegisterFragmentLifecycleCallbacks in detection
-
Apk thin body? So libraries merge
Compile all the libraries to be packaged into a static library, then use the following command to merge them into a *. So:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive Copy the code
-
Start optimization? Other optimization frameworks,
-
Threads, processes, coroutines? Time sharding? How does coroutine work? The IO?
-
Handler mechanism? How do I use handler in child threads? PrepareMain (looper. prepare) {prepareMain (looper. prepare) {prepareMain (looper. prepare); The main thread never exits, an infinite loop? Synchronization barrier?
Yy2:
- Audio protocol?
- Coroutine, process, thread?
- The MVVM? Componentization?
- What is the difference between webSocket and HTTP?
- Butterknife principles? Three forms of annotation?
- Dynamic proxy approach? 2? Dynamic proxy association?
- Type wipe out? Plastic?
- Class loading process? When is the class initialized? Initialization of static classes?
- Compiler optimization?
- GCroot? Stack overflow? (recursive)
- How many Java exceptions are there? Can I catch OOM exceptions? If oom is triggered in bitmap, try catch can be performed
- Animation? Differentiator, estimator?
- Binary tree zigzag printing
581:
-
Componentized ARouter frame principle?
Compile-time annotations generate class files, store global routing management, and create objects through reflection.
In the case of an Activity, the Intent is used to jump and pass parameters. Fragments, broadcastReceivers, and services are all created by reflection
-
LiveData, viewModel mechanism, how to bind the life cycle, how does persistence work in viewModel, sticky events in LiveData
Stickiness events are controlled by the version number. When the user enters the active state, the user is notified of the version by comparing the version
-
The starting process of an Activity
-
RecyclerView mechanism
-
Handler mechanism
-
What is the Java locking mechanism, volatile visibility? What does Synchronized mean? What about spin locks? What about ReentrantLock?
-
Coroutines in Kotlin?
Coroutines in Kotlin are processed by suspending functions, using CPS transformation, suspend
Each suspended function is compiled as a Continuation, and the function body is compiled as a state machine
-
ASM
-
Flutter understand? Fish-redux layering? Data flow?
view—–>action—->effect—–>reducer—–>store—–>view
58 2:
- Project related…
36012:
-
Fragment switch, add and replace reuse problem?
-
Fragment visibility Accurately Guaranteed?
-
What are the disadvantages of Fragment construction?
If an Activity withdraws from rebuilding a Fragment abnormally, its Fragment constructors will be executed without arguments. If you pass the parameters through setArguments, the Activity will build the Fragment by reflecting its lunch strength
-
Inline optimization?
-
Difference between AAPT1 and AAPT2
Aapt1 is fully compiled
Aapt2 perform differential compilation
-
Garbage loaded GC root
-
How is the LRU algorithm implemented
-
What are containers in Java? What is thread-safe?
Vector is almost the same as ArrayList, but thread-safe
Stack inherits from Vector
CopyOnWriteArrayList Realist copy
ConcurrentLinkedQueue Basic list synchronization queue
LinkedBlockingQueue
HashTable
ConcurrentHashMap
58 3:
- To sort?
- HTTP request process, HTTPS process
- The difference between arrays and linked lists
- The process of calling a method on the stack
- Implementation of LRU algorithm
Zhihu 1:
- Late life of an Activity
- OnConfigurationChanged? Other times to return? OnSaveInstanceState callback? Split screen?
- ARouter?
- Fragment life cycle? Can onCreateView return NULL?
- How to initialize fragment? Why is it not recommended to carry parameters in fragment? Does androidx provide fragment parameters? Fragments reconstruction?
- ViewModel persistence? The viewmodel reconstruction? Can you store bundles?
- Java memory model? Volatile principles? Visibility, non-atomicity, disallows instruction reordering
- Componentized development?
- Binary tree mirroring?
Zhihu 2:
- The understanding of the MVVM
- Reasons for leaving the company
- Future direction, 2C direction, architecture direction
- The architect is mainly responsible for technology selection
- Why do you choose Zhihu?
- Zhihu interface analysis + selection + scheduling
- Your advantages, why do I offer you?
- Android launcher? Thread pool selection?
- Large file lookup scheme?
- Inverses of integers, excluding cases where the head and tail are 0