This is the first day of my participation in Gwen Challenge

Write down the questions that are asked during the interview. The salary range is 25 to 30.

Preparation for this interview:

  • The book “Android Advanced Decryption” quickly brush twice.
  • Focus on learning the four component startup processes and familiarize yourself with the code processes (8.0 and 10.0 codes are different).
  • View drawing process, combined with the problem (View. Post why can get width and height) to see the source code, get twice the result with half the effort
  • Handler, Looper, MessageQueue, Message, ThreadLocal, synchronization barrier, IdleHandler, and main thread Handler.
  • Various optimizations, startup optimization, package volume optimization and other performance optimizations.
  • Locks, thread safety issues Synchornized, volatile, thread pools.
  • Kotlin coroutine principle.
  • Kotlin higher order functions.
  • Jetpack commonly used component principles, LiveData, ViewModel.
  • Common open source library principles, Retrofit, Glide, OkHttp, Rxjava and so on.
  • Data structure, HashMap, ArrayList, etc
  • Principle of LRU algorithm
  • Design patterns

Almost, there are a lot of just need to learn, this interview preparation, focus on the wanandroid daily question module to see small edge dagod answer very harvest, can learn a lot of knowledge points. Come on, come on!

A company:

  • When did ViewModelScope close
  • Pros and cons of LiveData and EventBus
  • Glide principle, Glide BitmapPool design to solve what problems
  • According to the following table item button sliding up and down RecyclerView event is how to deal with
  • Start the optimization
  • The principle of plug-in, resource plug-in
  • View.post() why can I get the width and height of the View
  • How do I write Kotlin’s singleton
  • How do Kotlin coroutines do concurrency
  • How does synchornized work
  • How to use HashMap to achieve thread safety
  • OkHttp chain flow
  • What design patterns are used
  • What version adaptations have been made
  • The data structure
  • The Http protocol
  • Json

Company B:

  • How does LiveData avoid sticky messages
  • How does a HashMap get a hash value
  • ArrayList and LinkedList
  • Four boot modes
  • Kotlin higher order functions
  • Kotlin extends the underlying principles of functions
  • Kotlin inner keyword
  • Coroutines principle
  • Is the Kotlin Object implementation singleton thread safe
  • How to adapt to the AutoSize principle

C:

  • Principle of confusion
  • Signature difference between V1, V2, and V3
  • Performance optimization
  • Optimize image loading
  • Which data structures are thread-safe
  • Video format
  • Char, short, int, long, pointer, and so on in 32/64 bits
  • How do you design an instant chat function

D:

  • Android application startup process
  • Resource hot repair and plug-in
  • The class hot repair
  • LeakCanary principle
  • EventBus principle
  • HashMap
  • Kotlin coroutine principle
  • Intent and PendingIntent
  • The difference between EventBus 2.0 and 3.0

E company:

  • A HashMap principle
  • How to play vest bag
  • How do I get the width and height of a View
  • How does Glide do life cycle related management
  • Glide’s cache structure

F:

  • The ViewModel principle
  • LiveData principle
  • DataBinding annotations
  • Tell me about the thread
  • How do deadlocks occur
  • What is the data structure of the thread pool

G company:

  • Talk about the activity lifecycle
  • Service startup process
  • Package volume optimization
  • What are Kotlin’s strengths

H company:

  • Tell me about voletile
  • What locks are available in Java
  • The difference between core and non-core threads in a thread pool
  • Under what circumstances can a core thread be destroyed
  • Tell me something about the stars
  • How to determine whether the current thread is the main thread
  • Four types of references
  • Activity A-B life cycle
  • SP apply vs. COMMIT
  • What kinds of broadcasts are there
  • Service Registration mode
  • Have you seen the source code for OkHttp
  • Can a child view display exceed the parent view? How
  • In what way is cross-process communication implemented
  • Use a ViewStub

I company:

  • The difference between MVP and MVVP
  • A deadlock
  • Algorithm: 25 horses
  • Implement queues with arrays
  • Do you have any ideas to solve difficult problems recently
  • Load large image display from disk
  • How to compress an image
  • 565 and 8888 difference underlying principle
  • Glide loading picture principle
  • What is StackOverFlow exception

J company:

  • What’s the difference between an instant harmony net
  • What can you learn from Retrofit
  • The paper handler
  • How is ThradLocal implemented
  • What Message does
  • Why ObtainMessage
  • Did Idle have any problems
  • Activity Startup process
  • When did AMS launch
  • What does ActivityThread do
  • Why does Zygote need socket communication
  • When did ActivityThread start? Why do I need to throw an exception
  • Difference between ASM and APT

K:

  • LiveData
  • MVC MVVM
  • Causes of memory leaks and solutions to common memory leaks
  • RecyclerView loading multi-graph speed optimization scheme
  • Difference between Glide and Picasso
  • Kotlin does not encounter potholes during use