Advanced data transmission and serialization of Android advanced architecture, counter attack surface shared

As a general rule, I was born in 91, worked in Shenzhen after graduating from three books in 164, worked in a small company with a salary of 13K, no house, no car and no registered permanent residence.

At that time, I felt that life was OK. My parents had a pension. I basically didn't have to worry too much. My girlfriend had been together for a long time. She was very considerate and didn't ask me much.

I was satisfied that life had been so smooth, but at the beginning of last year, something happened to my girlfriend's family, and all her savings were given to her. Then the epidemic came, and my family began to urge marriage. I felt the pressure.

The current salary can't meet life. Although there has been a little improvement in recent years, house prices have risen faster, so I decided to change jobs.

Since the end of last year, I have been blindly submitting resumes. Looking back, I have submitted a total of 33 resumes. Only 3 enterprises are interested and 0 enterprises are about to interview.

(I was very sad at first, but I got used to it later...)

Then they fooled around for a while and suddenly realized that both the economic winter and my winter were coming.

In the "Java background learning suggestions for Android programmers" I wrote, it is mentioned that because of the inherent advantages of Java, when Android developers choose to transfer jobs, they transfer to the Java back-end accounts for a large proportion, because the demand for Java back-end jobs is large and the cost of technology migration is low. For example, spring, which is the most widely used in java development:

As an Android Developer, if you have used or known dagger, it is not difficult to understand and use spring. Use various annotations such as @ converter, @ service, @ configuration to indicate the purpose of the class, and use @ Autowired to inject usage. I believe it will make you feel more cordial.

If spring is a container framework for injecting and managing entities similar to dagger, spring MVC is a web framework added based on spring functions.

MVC is certainly no stranger to Android development. In fact, background developers usually write a controller and provide you with a model. Hibernate and mybatis are persistence layer frameworks, which belong to ORM frameworks that can easily use databases such as mysql.

If spring and spring MVC are friendly choices for Android developers, spring boot is your "green channel". Spring boot is also called family bucket because it integrates all kinds of common development frameworks, reduces the threshold of spring development, simplifies various configuration processes, and JetBrains family supports it! So at this stage, I think spring, spring MVC and spring boot are good choices for Android developers to learn about the Java Web.

Of course, as an Android Developer turning to the back end, the biggest problem is the change of development ideas and fields. What you need to focus on is no longer the business logic on a device, but also big data, concurrency, performance optimization, distribution, etc. These are job transfers. You need to start from scratch, which is an inevitable cost.

In my understanding, large front-end generally includes a collection of Web front-end, client and cross platform. For Android development, continuing to engage in UI and user interaction logic is also a way to make a living. However, due to the end of market dividends and development costs, expanding capabilities has become one of the trends of large front-end development.

In my spring course of mobile development, I said: with the rise of various mobile cross platforms, with the support of reactnative, weex, fluent and other frameworks, the ability of Android development is no longer limited to the Android field, and major manufacturers have gradually improved their cross platform deficiencies in recent years.

But this does not mean the "decline" of original development! No matter what kind of cross platform blessing, it is ultimately inseparable from your native system capabilities. After the spring tide, it is more to eliminate "naked swimming", but now the market is becoming more and more front-end. Under the competition, I think the boundary of mobile development can be wider.

Therefore, there will be demand if there is an Android platform. Cross platform development can make our capabilities cover the IOS platform faster. At the same time, such as reactnative, fluent, weex, etc., you can gradually contact and get familiar with the world of the web front end. Later, such frameworks as uni app, myvue, chameleon, taro, etc. can also enrich your applet capabilities, So as to make your business ability to a new peak.

The most difference between Android platform and IOS platform is its open source and influence. Many years later, Android has not only represented the mobile phone platform, but also penetrated and improved in TV, set-top box, building security, automatic sales, billboards, smart appliances, car and other fields. Just like my small partners in Android QQ group, there are not many still engaged in app development, However, many people continue to cultivate Android in the above fields.

In the 5g era, there are likely to be new opportunities in the field of Internet of things. Huawei's Hongmeng smart screen, driverless car tablet and other wireless intelligent platforms realized by Android are all opportunities that Android developers can cultivate.

Of course, just learning or "talking on paper" will only lead to anxiety in the end, so "the best way to learn is to" do it ". Open source projects are your best learning method. Doing it yourself is your best attempt to" transfer jobs ".

Some students in the comments have questions about how to learn material design controls. My suggestion is to search GitHub. There are many examples given by peers. These chestnuts are enough to get started.

A friend said that if you are serious, you need knowledge of NDK and JVM. For the first time * * NDK is not a mysterious thing, * * you can know what's going on by following the official steps. It's nothing more than some code formats and native / JAVA memory interaction. More advanced is native / java thread interaction. Thread interaction is really a little painful, but it's better to avoid it, Besides, what do you care about NDK for beginners? According to my previous experience, I have only used it in audio and video communication and an embedded signal processing (offline). Embedded signal processing is called by Java - > NDK - > so - > matlab. Most of my original matlab code is used in games, General Internet companies will have someone give your so package. As for the part of JVM that should be mastered, believe me, you will master, but you shouldn't. those who specialize in JVM will do it. It's better to save your worry and have a look at the computer system and compilation principle when you have time.

In a word, writing more and practicing more is the most basic quality of programmers. Try to squeeze time and read basic theoretical books. JVM is not the only virtual machine in the next 30 years, and Java may not be popular in the industry in the next 30 years. Other systems and languages will spring up, but your solid theory will enable you to quickly understand and learn a language or framework, If you write more often, you will quickly and skillfully apply the new things to practice. Beginners, one word, practice more.

Let you quickly understand and learn a language or framework. If you usually write more, you will quickly and skillfully apply the new things to practice** Beginners, one word, practice more.

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>