Android development foundation is not strong? The key points you must know about network optimization, share a little interview experience

beginning

Recently, many netizens have reported that the information they have obtained from various places is too messy, fragmented, and fragmented. When I look at it, I think it is quite useful, but after a long time, I can't remember anything. In fact, this is the consequence of the lack of systematic learning .

In order to improve your learning efficiency, help you quickly master the various knowledge points of Android development. I have compiled a system of advanced study notes for Android developers .

This set of materials not only contains **[Android Developer System Core Knowledge Notes], and [2021 Latest Big Factory Interview Questions Collection]**, a total of 2983 pages of PDF, 580,000 words. Can't show all

PS : This is a high-quality Android communication circle. There are many first-line technical experts in the group, as well as code farmers who are struggling in small factories or outsourcing companies. The members of the group are very active. Here, not only can you get the workplace experience and advice of your predecessors, but the old apes are also willing to answer your technical questions.

I have heard many people say that learning Android is very simple, and you can start using it as an app. There are many job opportunities and it is easier to find a job after graduation. This view may be one of the reasons why many Android developers started their careers.

At the beginning of the work, the work is mainly to implement the functions of the App page according to the business requirements, and to achieve the effect of the page according to the designer's design draft.

In the process of implementation, the following requirements are always raised:

Can this word be bigger or more prominent?
I feel that the color is different from the design draft. Can I adjust it again?
Why do you keep crashing, okay?

Therefore, after a year of work, you will find that your focus is to find various components and frameworks, drag and drop, and change the style. **After a problem occurs in extreme cases (such as crashes on some models and slow loading of pictures), I don’t know how to solve it! I am embarrassed to say that I am a technical one.

There are two reasons for this situation:

**1.** The functional requirements of the developed App are not complicated. In terms of performance, there is no need for the ultimate pursuit;
2. I don’t have enough awareness and don’t know how to extract optimizable points from ordinary work. There is also no complete plan for upward promotion .

From the perspective of own planning, the technological advancement is divided into the following stages:

**1. Do a good job of business requirements . This is the ability that a junior programmer should have.

**2.** Solve technical problems in extreme situations, such as performance optimization, OOM, etc. **Slightly large companies will definitely encounter this kind of problem, such as the app crashing on some models and the page not loading. It's just that most programmers find it difficult to reproduce, or they ignore it because of a small probability event. **In the process of ignoring these issues, it also gave up the possibility of further improvement. **There are still some programmers who have seen these problems, but have never known how to solve them, because these problems are basically caused by looking for the underlying framework, and usually only focus on the upper-level business logic code, so they have not studied in depth The underlying principle leads to the lack of energy and surplus.
**3.** Make a fuss about the development framework and efficiency. **For example, many programmers say that their energy is wasted in the tearing of the product, but have you ever thought that you can save yourself from the complicated and non-technical work through technical means? For example, whether it is possible to write the code only once, or to change a configuration parameter to be able to run on different platforms. A higher requirement is whether these solutions can be made into general frameworks or products.

In the stages listed above, we must first force ourselves to persecute ourselves constantly from the way of thinking, and don't be lazy. Secondly, if we want to develop in accordance with the above-mentioned stages, we also need to implement it and learn continuously in the specific technical system.

for example:

For OOM, you need to know what optimization tools can be used (Lint, MAT, etc.), how to detect OOM, and the in-depth principles of garbage collection mechanisms. For performance optimization , how to reduce the size of apk, dynamic loading of resources, etc. are inevitable. The following is a mind map related to performance optimization** (There are more advanced learning materials for Android architecture at the end of the article for free sharing)**

In the systematic learning process, blogs, books, and video courses are all better learning methods.

In view of the fact that Android is also based on the Java language, many basics related to Java must also be mastered, such as "In-depth Understanding of the Java Virtual Machine", "Effective Java" and other related books are also required.

Android-related books include "Android Authoritative Programming Guide", "Exploration of Android Development Art" and so on. Further, you can read Android-related source code. Cooperating with books such as "Android Source Code Design Pattern Analysis and Actual Combat", it is of great benefit to reading the source code.

At last

Due to the length of the article, I only listed the interview questions. The detailed answers were compiled into a PDF document. This document also includes  advanced architecture technology advanced brain maps, Android development interview topics , and advanced The advanced structure information helps everyone learn to improve the advanced level, and also saves everyone's time to search for information on the Internet to learn.

oid develops interview topic materials** and advanced advanced framework materials to help everyone learn to advance and save everyone's time to search for materials on the Internet to learn.

Friends in need can send me a private message [answer] or click here to receive it for free

Guess you like

Origin blog.csdn.net/fjfdhduuffududu/article/details/112837915