apk development language! Probably the most detailed Android-resource loading mechanism analysis on the entire network, full of dry goods guidance

Preface

I saw an article mentioning that "there have been a lot of junior Android programmers in China in recent years, but middle and senior Android technical talents are still scarce." This is true. Judging from some interviews I conducted at Baidu, It is indeed not easy to find a suitable senior Android engineer. Generally, a lot of interviews are required to select a more satisfactory one. Why are there not many high-level Android programmers? This is a question that I can't answer, but I want to write an article to describe the learning path of Android, hoping to help more Android programmers improve themselves. Since I also came from a rookie, I will combine my personal experience and my understanding of the Android learning process to write this article. This will make this article more real, rather than just talking about it.

During the interview, in addition to the algorithm questions, the other brothers were turned into brothers. I did not expect the interviewer to give it to him. After three faces a day and a week later, I received the oc. I felt very lucky and finally got the approval of the big factory (although it is a cabbage ). It is suggested that if netizens have their own bright spots, they can still try big companies bravely and boldly. After all, in addition to strength, luck and opportunity also account for a large part. If you meet an interviewer who appreciates you, it will be smoother.

Dedicated to Baidu's Three Faces~

one side:

0. After introducing myself, talk about the project, from the first to the last;

1. Asked what are the common layouts;

2. What are the Activity life cycles, and under what circumstances will they be called back;

3. Ask about inter-process communication, binder, pipe, socket, etc.;

4. Ask about the delivery of View events, activity-window-decorview-view;

5. How the event is transmitted from the finger to the activity;

6. How are LongClick and OnClick triggered respectively;

7. Talk about the Java class loader, what are the Android class loader, and what is the Android top class loader;

8. How to load a class by yourself without letting the parent loader load it, if you load it yourself, how to resolve the references of other class loader;

9. Talk about memory optimization (memory leaks, large object optimization, etc.);

10. Talk about openGL (take an example, make a picture-in-picture);

11. Talk about netty (mentioned in the previous project), based on what threading model, why can carry high concurrency;

12. Talk about what you are best at (talking about x86 project transplantation, algorithm optimization);

13. Write a sorting algorithm, how much time complexity is, how to optimize it (written merge, said Garhill);

14. Write a commonly used animation.

Two sides:

1. Introduce yourself?

2. Find the Kth largest element in a large array?

3. Project related?

4. What language are you good at? Scripting language?

5. Three handshake?

6. What is the length of the UDP data packet?

7. Research experience?

8. Recently read books?

9. Knowledge of Linux environment?

10. What are the status of the process?

11. What do you think is your advantage?

12. What difficulties do you encounter in the usual learning and development process?

13. How many papers have been published?

14. The difference between process and thread? Thread Pool?

15. What issues should be paid attention to in multi-threading?

16. What do you want to ask?

Three sides:

1. Project? Project difficulty? How long did it take?

2. What are the shortest path algorithms? If the speed is not enough, how do you optimize?

3. Which books are you reading recently?

4. What technologies do you usually pay attention to?

5. Understanding of processes and threads? When to use processes and when to use threads?

8. What are some of your usual study habits?

9. Team communication skills?

10. The most difficult thing encountered?

11. What are your advantages? What are the disadvantages?

13. How to choose OFFER? What factors are considered?

14. What do you want to ask?

If you lack direction on your way to advancement, you can click on my [Github] to join our circle and learn and communicate with Android developers!
All the following content is available on GitHub!

  • A full set of manuals for Android advanced learning

    img

  • Android benchmarking Ali P7 learning video

    img

  • BATJ Android high-frequency interview questions

    img

Finally, borrow my favorite Steve Jobs quotation as the end of this article:

People can't do too many things in their lifetime, so everything must be done wonderfully.
Your time is limited, so don't live for others. Don't be limited by dogma, don't live in other people's ideas. Don't let the opinions of others influence your inner voice.
The most important thing is to be brave to follow your own heart and intuition. Only your own heart and intuition can know your true thoughts. Everything else is secondary.

All pieces must be wonderfully done.

Your time is limited, so don't live for others. Don't be limited by dogma, don't live in other people's ideas. Don't let the opinions of others influence your inner voice.
The most important thing is to be brave to follow your own heart and intuition. Only your own heart and intuition can know your true thoughts. Everything else is secondary.

Guess you like

Origin blog.csdn.net/weixin_52746928/article/details/113059806