Recommended books for Android game development! Some common questions and interview topics in Android development, successfully joined Ali

Preface

There are many instructions on programmer resumes on the Internet, so I won’t repeat them here. You can search for the summary of other great gods on the Internet and modify them based on your own situation. I have a few suggestions:

1. Try not to be fancy, programmers and designers or product operations are not the same. The decision on the success of our resume lies with the technical interviewer, and what they value is the description of your project experience and technology.

2. Skill description should only write what you know and have a deep understanding. You can add some new technologies or popular frameworks as appropriate. However, this part needs to be understood. If you haven't had time to read the source code, you can read the summary of the great gods. heap.

3. Try to add keywords to the project experience, such as what technologies are used, what design patterns are used, optimized data comparison, and expanded summary. Instead of blindly introducing the content of this project (that is the description of the product manager), such as performance optimization, it is divided into UI performance optimization, memory optimization, database optimization, network optimization, power consumption optimization, and so on. It can be described in terms of 1. how to find the problem, 2. how to solve the problem, and 3. the comparison of the solution effect. To give a simple example-UI optimization, what problems can occur in the UI (stuttering is not smooth), how to find the problem (mobile phone developer permissions> GPU overdrawing to find hierarchical problems, TraceView CPU usage analysis), how to solve the problem (reduce Level, custom View drawing problems, etc.), after the problem is solved, the performance is compared again.

First side

The interviewer looks very young, and he feels like a young guy who has just graduated. He has a green voice. Hahahaha
. When I started the interview, I was confused. He just woke up from a nap, and he still hadn’t been relieved.

Computer network part:

1. What is the process of http?

2. What is the process of https initiating a connection?

3. What fields are included in the request header of the http request? (I forgot a lot of fields here, only three or four are mentioned, woo woo woo)

4. What is the structure of an http request? (Because of the Internet problem, I listened to it three times and finally understood what the interviewer meant, woo woo woo)

operating system:

1. Can you briefly talk about the difference between threads and processes?

2. Do you know the methods of inter-process communication?

3. Have you heard of Messenger? (I know, but the bottom layer is still in the form of AIDL+Handler, and the bottom layer of AIDL is still using Binder driver)

database:

1. Can you briefly talk about how the database can modify the data in a table?

2. What keyword should be used to add a field to a table?

Java:

1. Can you briefly talk about the relationship between Lock, synchronize, and CAS, as well as specific practical scenarios?

2. Can you elaborate on what CAS is? How does AtomicInteger achieve thread safety?

3. Can you briefly talk about the specific lock upgrade mechanism?

4. Can you briefly talk about the proxy model? What is the difference between dynamic proxy and static proxy?

Android:

1. Can you briefly talk about the event distribution mechanism?

2. What does MeasureSpec.UNSPECIFIED mean? If the mode of the outer ViewGroup is AT_MOST and the inner layer is match_parent, what is the final mode passed to the inner layer? (AT_MOST) ps: This question is meaningless

(I heard you said that there are scrollTo and scrollBy in View, then we analyze a scene problem)

3. Scenario question: First, there is a FrameLayout with two layers of View nested in it. When we rewrite onTouchEvent, how do we make the upper View slide and expose the lower View? (There is a pit here. The interviewer said scrollTo and scrollBy. I was thinking about how to expose the lower-level View on these two. Finally, I suddenly thought that the layout of the entire View could be adjusted through events)

Source code:

1. Have you seen the source code of those excellent open source frameworks?

2. Know those design patterns related to the source code?

3. HashMap briefly talk about the principle

Two sides:

Ermian is a female interviewer, probably around 40 years old

Design Patterns:

1. Familiar with those design patterns?

2. How is the bottom layer of the dynamic proxy implemented?

3. Tell me about the dynamic agent of Retrofit

Java:

1. Can you briefly talk about the purpose of the JVM memory model and which areas are divided into memory?

2. What about the memory recovery mechanism?

3. A complete and detailed description of the class loading mechanism

4. Can you talk about the parent delegation principle of the class loader? (There is a question here, I said that the parent-child class loader is not an inheritance relationship, and then the interviewer said that it is not right, I have a little question here, please let me know)

5. Can you talk about the structure of Java .class files?

6. Do you understand the basic mechanism of thread pool? How does the non-core thread guarantee the end of the delay?

7. Why does the inner class hold the reference of the outer class by default?

Android:

1. Handler message mechanism briefly (how is the delayed message sent? And how is the delayed message handled through Looper.loop()?)

2. Why does Handler have a memory leak?

3. What is the difference between the post in the View and the post in the handler? (I said that the handler in the view has been rewritten to handle the drawing events related to the View. Then the interviewer said that only part of the answer was correct. I have some questions. Are there any other differences?)

4. Is there any memory leak detection framework useful? Do you know the principle? (It is the JVM memory recovery mechanism mentioned above)

5. Do you know anything about performance optimization? Can you talk briefly? (Layout, asynchronous, transition drawing)

6. Can you talk about the startup process of Activity?

7. I heard you talk about inter-process communication. What is the way for PackageManagerService and ActivityManagerService to communicate?

8. Do you understand the underlying principle of Binder driver? (Mmap memory address mapping)

9. What is the difference between Serializable and Parcable? how to use?

10. I heard you talk about sp (SharedPreference), do you know that sp can communicate across processes?

Learn to share

In the current era of information sharing, many resources can be found on the Internet, depending on whether you are willing to find or find the right method.

Many friends are not without information, most of them have dozens or hundreds of Gs, but they are messy and they don’t know how to look at them, or even forget them after reading.

If you feel that the information you find on the Internet is very messy and fragmented, I will share a set of them with you. It is more systematic, and I usually study it a lot by myself.

2021 The latest tens of thousands of pages of real interview questions

Learning materials for seven modules: such as NDK module development, Android framework architecture...

Only systematic and directional learning can quickly improve one's own technology within a period of time.

This system study notes is suitable for the crowd:
**First, **The learning knowledge is relatively fragmented, and there is no reasonable learning route and advanced direction.
**Second, **Development for several years, I don't know how to advance further, I am confused.
Third , at the right age, I don’t know how to develop, transform management, or strengthen technical research in the future. If you need it, I happen to have why, don’t come to receive it! Maybe it can change your current state!
Due to the large content of the article, the length of the article is not allowed, and part of the unshown content is displayed in the form of screenshots. If you need to get a complete document, please click on my GitHub to get it for free.

BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)免费获取。**

Guess you like

Origin blog.csdn.net/chayel123/article/details/113979075