1. View’s draw and touch event mechanism.

The impact on the drawing process after calling the invalidate or reqeustLayout method.

  1. Java memory model and virtual machine memory model.
  2. The principle of volatile keyword for multithreading.
  3. How much do you know about TCP?
  4. How HTTPS is encrypted.
  5. The data structure of HashMap, and the flow of PUT and GET.
  6. How Android shows control layout through XML files.
  7. Dex subcontracting principle, which is put in the main DEX.
  8. What CAS is and how it works.
  9. How synchronized guarantees atomicity, visibility, and order.
  10. The drawing process of Flutter.

This is the big question about Flutter.

  1. How HashMap uses segmental locking to keep threads safe.
  2. The main thread Handler passes an object to the main thread via Message’s obj, and the child thread switches to the main thread to make it visible.
  3. CAS ABA problem, how to solve.
  4. Click the app to the first Activity to see what happens.
  5. StartingWindow display timing.
  6. More on the Binder mechanism.
  7. The relationship between Skiga and openGL, which points each is responsible for.
  8. How the Kotlin coroutine hangs and wakes up.
  9. How much http2 knows.
  10. What are the means of implementing AOP, and when are the entry points?
  11. How to determine if an object is recyclable.
  12. What are the garbage collection algorithms?
  13. How many threads are generated when your application starts.

Maybe you want to know if the whole thread is scheduled.

  1. What pitfalls Kotlin encountered during mixed development with Java.
  2. The relationship and difference between processes and threads.
  3. What does HandlerThread do for us?
  4. What animations are available in Android, and what their respective pit points are.
  5. Difference between HashMap and Hashtable.

The main difference is thread-safe, but other data structures, expansion, null values are also good to mention, and how Hashtable is thread-safe.

  1. How the Retrofit by RxJava2CallAdapterFactory RxJava chain of the call.
  2. The connection and difference between LiveData and RxJava.
  3. Hot start display startup page, how to implement.
  4. RecyclerView cache mechanism.
  5. Algorithm part:
  • There is an infinite full binary tree whose nodes are numbered layer by layer from left to right by the root, which is numbered 1. Now we have two nodes a and B. Please design an algorithm to find the number of the nearest common ancestor of points A and B.

Given two ints a,b. Is the number of a given node. Return the number of the most recent common ancestor of A and B. Notice that the node itself can also be considered its ancestor.

  • Gets the maximum value per level of a binary tree.
  • Add large numbers using linked lists.

Such as: 1 – > 2 – > 3 – > 4, and 5 – > 6-7 – > > 8 additive, get a 6 – > 9 – > 2 – > 1.

  • Reverse a linked list of two nodes as a group.

For example: 1 -> 2 -> 3 -> 4, get 2 -> 1 -> 4 -> 3.

  • How to iterate once to get the KTH last node of a linked list.
  • Gets the path of the binary tree from the root node and as target.
  • How to determine if a string consisting of ‘{‘, ‘}’, ‘[‘, ‘]’, ‘(‘, ‘)’ is valid.
  • Combining two ordered lists yields an ordered list.
  • List a binary tree.