android development software! Android performance optimization FAQ, Android school recruitment interview guide

It’s not that Android is not working, it’s that you can’t keep up

Many of my readers have reported that the number of resumes that can be received for a position now is several times that of previous years. We must admit that the status quo of the Android industry is the fact that there are too many monks and porridge , not to mention junior and intermediate engineers, even senior engineers are also a lot. Companies are looking to recruit more and more people. If you don't order "real things", it's really difficult .

A few days ago, I chatted with an Android predecessor. He said that many engineers in the interview were stuck on "used" or "heard of" for special basic questions. Without going deep into the technical details, they can only be eliminated in a highly competitive market.

The following are some of the questions he mentioned. Can you answer them quickly?

  • SoftReference (soft reference) will be recycled by the virtual machine when the memory is insufficient, will it cause OOM?
  • How is the CANCEL event generated in the Android Touch event? Under which scenarios will CANCEL events occur?
  • The Looper in the Handler has an infinite loop, why is it not blocking the UI main thread?
  • You write " proficient in multi-threading " in your resume , then: What does the "working memory" in a thread refer to? Why is it not allowed to use Executors to create a thread pool in the Ali development specifications?

You must want to say "make rockets for interviews, screw the screws at work" . In fact, your answer reflects your deep understanding of technology and your ability to solve problems.

It sounds like a routine, but what companies need is " senior/senior Android development " who can be responsible for submitting code and using every tool .

one side

1. Please program to realize the singleton mode, lazy and full of Chinese writing.
2. Please program to realize the producer-consumer model of Java.
3. The internal structure of HashMap? Internal principle?
4. Please briefly describe the Android event delivery mechanism. When is the ACTION_CANCEL event triggered?
5. The inter-process communication of Android and the inter-process communication of the Linx operating system.
6, JVM virtual machine memory structure, and their role.
This problem is also relatively basic. The memory structure of JVM is shown in the figure below.
7. Briefly describe the Android View drawing process and how the Android wrap_content is calculated.
8. There is an integer array containing positive and negative numbers, and then all the negative numbers in the array are required to be moved to the left of the positive number, and the relative position remains unchanged. The time complexity is O(n) and the space complexity is O (1). For example, {10, -2, 5, 8, -4, 2, -3, 7, 12, -88, -23, 35} changes to {-2, -4, -3, -88, -23 ,5, 8 ,10, 2, 7, 12, 35}.

Two sides

1. The data structure of the bundle, how to store it, since there is Intent.putExtra, why use the bundle.
2. Android's IPC communication method, have you used it
3. How does Android's multi-touch transfer core classes
4. The principle of asynctask AsyncTask is a combination package of Thread and Handler.
5. What are the android picture loading frameworks, and the differences under comparison
6. Some basic knowledge of picture frameworks
7. Other knowledge of modular development, hot update, and componentization of Android.

Three-sided, mainstream framework

  1. EventBus
    (1) EventBus is obtained through annotation + reflection.
    (2) Use ConcurrentHashMap to save the mapping relationship. The construction of the calling entity: Object in the calling entity, that is, the object that actually executes the method should not use strong references but Weak references should be used, because the static life cycle of the Map may be longer than the called object. If you use strong references, memory leaks will occur.
    (3) The execution of the method uses the Dispatcher to dispatch the method, the asynchronous uses the thread pool to process, the synchronization is directly executed, and the UI thread uses the MainLooper to create a Handler, which is delivered to the main thread for execution.

2.
Dynamic agent in
Retrofit Java The role of dynamic agent Retrofit in
Retrofit

3.OkHttp
request task queue
reuse connection pool

to sum up

Nowadays, new technologies are emerging in an endless stream. If we study in-depth every time a new technology is released, it is easy to distract our energy. It may take a long time for us to use the new technology in our work. When the new technology we learn cannot be applied to the application, it is easy to be forgotten by us. When we really need to use it in the end, we have to start from scratch (although it will Faster).

I think as a technical person, you should embrace the new technology. When you enter this industry, you should know that this is an industry that has lived and learned the old, so in the face of new technology, don’t resist, just embrace change. Up.

Flutter is obviously a brand new technology, and for this new technology at the beginning of its release, it is indeed too expensive to spend a month to learn it. But spend a day on the weekend to experience its development process and learn about its advantages and disadvantages, what it can or cannot do. This time is not unacceptable to us.

If you have time, actually reading through the Flutter documentation is the most comprehensive understanding of Flutter. But if we only have 8 hours, I hope to focus on some of the most noteworthy points.

Attached

Android learning PDF+architecture video+interview document+source notes

(Cross-platform development ( Flutter ), Java basics and principles, custom view, NDK, architecture design, performance optimization, complete commercial project development, etc.)

w, NDK, architecture design, performance optimization, complete commercial project development, etc.)

[External link image is being transferred...(img-BgpcE4Ki-1610953519327)]

Guess you like

Origin blog.csdn.net/m0_52308677/article/details/112782637