Recently, someone is talking about the prospects of Android! Depth analysis of the development trends and essential technical points

A. On the prospects of Android

Constantly I heard a lot of people talking about whether there are prospects do Android, Android development over the hill, Android work hard to find, for these in fact, my view is very simple, it is really not to say that Android developers have no way to go to the point, of course I can not predict how future.

Now major companies are actually missing Android development (senior), constantly hiring, it took a lot of front-line Internet, let alone to interview people, you can not get too many resumes, it takes a lot of time find resume.

Therefore, the students will have experience in the development of Android, you should think about how to more deeply explore, rather than thinking about changing direction, no matter which direction to change, will face a point in time from beginner to advanced and then to senior experts. So I think the right career planning should be pyramid-shaped, core competencies must be strong!

Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

II. Detailed knowledge points list

For now, Android and mobile Internet, we need to master the technology, I made a list:

Generic principles Dian Dian Java Virtual Machine reflection principle principle principle Dian Dian comment thread pool principle Dian serialized
Activity knowledge (Activity life cycle of the task stack Dian Dian Activity Activity startup mode of Dian Dian Fragment View source kernel-related principles such as Dian service )
source framework structural optimization (data structure Dian sorting algorithm Dian design mode)
the APP performance optimization (user experience optimization Dian adapted Dian codes tuning)
hotfix Dian thermal upgrading Dian Hook technology Dian IOC architecture
NDK (c programming Dian C ++ Dian JNI Dian LINUX)
how to improve development efficiency?
MVC MVP Dian Dian MVVM
micro letter applet
Hybrid
Flutter

Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

Wed and analytical knowledge, learn why

1. Data Structures and Algorithms

In fact, data structures and algorithms are separate things, we need to master a variety of data structures, go deeper algorithms, data structures and algorithms in fact belong to the foundation, but it is now more important, so I came up with a separate terms.

The same data structure how deeply I also recommend you look at Tsinghua University, Zhejiang University, or "data structure" open class, especially Tsinghua University, it is worth repeated study.

As for the algorithm, the first thing to do is hands-on, direct dry on LeetCode!

The second phase is to summarize the thoughts and routines of various algorithms, as these recursive algorithms, dynamic programming, etc. are all routine, but also on LeetCode Filter by classifying data structures and algorithms, we can targeted exercises and summary .

Of course, for an Android programmer, can do every day on the question LeetCode brush is very good, so be sure to adhere to, and so you stick to a certain time, you will find you more at ease now, I start from the end of the 18 LeetCode brush on the topic, has more than 200 channels of the brush, millet interview also attaches great importance to the algorithm, but also to write.

And some of the company with particular emphasis on algorithms, this algorithm is very harsh assessment, yes, that is harsh, but not strictly.

2. Design Patterns

Design mode includes design principles for Android developers, in fact, that 23 kinds of design patterns to know and understand these design patterns is the first stage, is only at this stage is not enough, do not ask the general interview your concept of a design pattern, and will let you specifically talk about you in-depth knowledge and use of a certain kind of design patterns, its advantages and disadvantages , so the second stage is to use them , and secondly to Android source code applied to the design mode where binding studies.

For example, the builder pattern, Andoird on the use of Dialog to create, as well as a singleton, the adapter mode, observer mode, etc. are very common design pattern in Android, but also the emergence of a high frequency in the interview.

3. Language Learning Language Development

Android applications are developed by the Java speech, SDK is written in Java, so we have to learn the Java language. In addition, although Kotlin language has also been the official hot push Android, but Kotlin is compiled into Java language run. For Android development is.

As long as there is no SDK rewritten Kotlin, then the Java language is to learn. And Android apk background server program is a high probability Java language to build, so the learning Java is a necessity.

Java then those things are a little more difficult in Android Java foundation we compare relevant almost a threshold, like multi-threading generic Dian Dian Dian JavaIO JVM reflection Dian Dian Dian sequence of notes and so on.

4.APP development framework Knowledge

This knowledge is now the largest user, we call Android2013-2016年的技术. However, even this technology, many developers often because the habit of many online copy the code and cause the code to use this piece of familiar and unfamiliar, familiar with every day, and they deal with every day in copying, strange but every day dealing they had no in-depth study, to learn the source code, source code imitate, then hook the source, so as to say that to understand this knowledge.

5.App Performance Optimization

A good performance of app bad we need to analyze two levels:

1, to pay attention to the time of writing, so that their code is highly available high-performance code, the process of writing code for good performance

2, already formed by the tool code detecting code issues, questions by checking to guide our code pruning process called tuning

This creates a performance optimization learning ideas for everyone:

Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

How to write high-performance code that it?

We need to have a deep knowledge of the code , which is the basis of the code, such as: data structures can write a special structure to achieve compliance with the current scene according to application scenarios, such as google developed for the Android platform features SparseArray instead of HashMap In addition, commonly used algorithms. also it has its own unique insights

6.NDK Module Development

High-definition audio and video Dian Dian big picture artificial intelligence Dian vibrato and other live all these years closely associated with the user, the most relevant to our lives technologies are always looking for the final landing platform technology, used to be a Windows system, and now it is a mobile system. The mobile system Android is the biggest proportion. So NDK can say is essential to learning, in addition, codec audio and video streaming protocol, ffmepeg, c, c ++, JNI, linux audio and video development are essential skills. And OpenCV \ OpenGI these image processing is necessary.

NDK thinking about learning module development:

Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

7. How to improve development efficiency?

工欲善其事必先利其器, how to improve development efficiency, many developers in the development due to gradle not use causes a load code is very time-consuming, which is a waste of your job costs. There is using git can also help us manage our code, this is critical, because this tool allows us to modify the code will not result in loss of erroneous operation. In addition, mobile developers we at least need to know how to crawl network packets. The most commonly used stetho is a very handy tool can capture network packets.

The hybrid development

Mixed development flutter now has gradually become the mainstream of the mixed-use development framework, in addition due to the strong presence of Ali, and Ali lead companies are using Weex hybrid architecture, which is an Android engineer to broaden their horizons, essential to the future basic skills.

Flutter learn mind mapping:

Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

IV. How much distance between us and Daniel?

Like many people, I think just graduated as a programmer, if they work hard, with a little talent can get some results.

After working for some time, understanding of their own and other people are also more and more clear, gradually found that the gap between the programmer and perhaps bigger than the gap between humans and monkeys, accept the fact that it makes me depressed for a long time.

Over time, he found himself able to objectively evaluate their own ability, but also aware of the distance is not so important as long as find ways to run faster, would be sufficient.

V. Written in the last

No matter what difficulties, should not be a reason for us to give up!

Many people new to this industry in the face of time or bottleneck, there will always encounter some problems, such as learning a period of time feel no sense of direction, personally think android developers would appear that after two to three years . phenomenon and following basically the same reason:

  1. Reduce the economic needs of poor
  2. Open source library rich lead gradually reduce the development threshold,
  3. For example, the old 2.3-compatible and so on into the experience now completely useless
  4. android compatibility issues due time there will be saturation threshold than ios rate plus there are intelligent home framework development, etc. ratio ios delayed

But we can refer to the above recommendation, or take audio and video, advanced Android development engineers, or turn back, front-end development, the era in evolution, we have to think more about the next, making plans for our future!


Android video learning PDF + Architecture + + source code documentation interview notes

Thank you for patience and ability, La miles long-winded reading my article.

We are willing to stick with you in Android development positions of fellow mutual exchange of learning and common progress!

Here I also share a copy of your collection of finishing Android studying architecture PDF + Video + Interview + document source notes , as well as advanced technical architecture Advanced Brain Mapping, Android interview with thematic development, advanced materials advanced architecture to help you enhance Advanced Learning , but also saves everyone time online in search of information to learn, you can also share with close friends studying together

If you have a need, you can point like + comment , concern me
Recently, someone is talking about the prospects of Android!  Depth analysis of the development trends and essential technical points

Guess you like

Origin blog.51cto.com/14573572/2447925