Steps to build android development environment! Double non-scumbag Android four years to grind a sword, a detailed Android learning guide

beginning

Recently, an old iron told me that after working for a month, he regretted that he was anxious to join the company. He used to do mobile phone research and development at Meitu. This year, Meitu also had a wave of organizational optimization adjustments this year. He was one of them. After negotiating to leave his job, he was anxious to find a job to work because he had a mortgage and could not live without a source of income. So I hurriedly selected a company, which is actually a large outsourcing company, mainly dispatched to other mobile phone manufacturers to do outsourcing projects. **At that time, I promised that the treatment was not bad, so I started to work immediately. But after I joined the company, I found that the salary package was not what HR said, and that HR had already run away. **Recently, he said he was very distressed and changed jobs to see opportunities. Few companies gave interview opportunities. Many HRs asked him how he went from a big factory to outsourcing. . . In this case, I'm honest and don't know how to suggest (see if you have any suggestions? You can leave a message), this is a problem for me. Because changing jobs frequently is a taboo, especially when changing jobs gets worse. .

As an Android developer, in addition to bugs, you often encounter the following problems:

Application freezes, dropped frames, torn screens, slow refresh of the operation interface, unsightly UI, messy layout... If these problems occur frequently, they may not be used in a year.

When developing an App, do you feel the interface freezes? Especially when customizing the View.

Most of the factors that affect user experience such as freezing and frame loss of Android applications are related to the value of 16ms. The refresh rate of the Android device is also 60Hz. The Android system sends out a VSYNC signal every 16ms to trigger the rendering of the UI. If it exceeds 16ms, we think that a stutter has occurred.

Some common reasons are:

  • The layout is too complicated and too many levels;

  • There are too many drawing units stacked on the UI, and over drawing;

  • Or methods such as onDraw are too time-consuming;

  • CPU or GPU is overloaded;

  • The animation has been executed too many times;

  • Frequent GC, mainly due to memory jitter;

  • UI thread performs time-consuming operations;

  • and many more;

So what can we do to give users a good UI experience?

  1. Optimize the interface layout, flatten the interface layout view, remove unnecessary background colors, and reduce the use of transparent colors; (Minimize the cumulative time of view in the system for measure, layout, and draw)

  2. Reduce data operations in UI threads and use sub-threads to handle time-consuming tasks;

  3. Try to avoid frequently creating new objects and using local variables in the loop logic or onDraw method;

  4. Don't do time-consuming operations in the main process to improve UI drawing speed (reduce the layout level of View, avoid transitional drawing, etc.)

Advanced UI has an inseparable connection with custom View. Customizing View is actually not difficult, why?
Because custom View is nothing more than display + interaction: display the entire process of onMeasure ->onLayout->onDraw will show that the entire process is processed, and the interaction is the processing of touch events; in addition to everything else such as Canvas, Animation, Paint They all revolve around draw, so we need to understand the basic principles.

Learning welfare

[Android detailed knowledge point mind map (skill tree)]

In fact, there are so many knowledge points in Android development, and there are still a few things to ask in interviews. Therefore, there are no other tricks for the interview, just to see how well you prepare for these knowledge points. So, when you go out for an interview, it is good to see which stage you have reached in your review.

Although Android is not as hot as in previous years, the era of finding high-paying jobs with four major components has passed. This can only show that the positions below the intermediate level of Android are saturated. Now senior engineers are still relatively lacking . Many senior positions give very high salaries (you may not be able to find a suitable one if you have more money), so I strive to become a senior engineer. is the most important.

Attached here are dozens of sets of ByteDance related to the above-mentioned interview questions, interview questions from JD.com, Xiaomi, Tencent, Toutiao, Ali, Meituan and other companies in 19 years. The technical points are organized into videos and PDFs (in fact, a lot of effort was spent than expected), including knowledge + many details.

Due to limited space, I will show you a small part in the form of pictures.

Click to view in detail on GitHub;

Android architecture video + BAT interview topic PDF + study notes

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

The knowledge is not a system, and when you encounter problems, you just taste it and stop studying it in depth, so it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

Guess you like

Origin blog.csdn.net/fanzhang_vip0723/article/details/112899170