This is a question from a netizen who read on a forum. He said he felt it was getting harder and harder to develop Android. Here’s what he shared:
I was prepared to be unemployed for months. But these two weeks feel like good interviews. Ten interviews in two weeks feels good.
As an Android developer with 3 years of experience, I don’t think the technical side is too difficult for most companies. As long as the nuggets in the relevant Android articles and practice a few times, coupled with the past writing company projects and open source projects experience, should be enough to meet the majority of small and medium-sized enterprises Android development needs.
Disappointingly, 7 out of 10 companies failed the technical aspect and only 3 made it to the HR interview round. The salary range is 10-15K, much lower than expected.
I only got one Offer. The company that offered the Offer was a start-up company with a lot of overtime. I didn’t really want to go there. But they give the welfare is good, with the eye to check the registered capital is to think quite a lot. Plus, no other company offered me a chance, so I went to this company. I just didn’t expect this company to change after only two days. Being forced out of a job again? It’s so magical.
Therefore, he finally put forward a question, now the medium and large enterprises Android recruitment requirements are increasingly high, it is too bad to go to a small company, three years of development should consider changing careers?
Analysis of the situation
In fact, no matter in any industry, any post, primary technical talent is always oversupply, it is not easy to find a job, Android development is just one of them, iOS, Java, Web front-end are such.
Even if you move into hot industries like big data, artificial intelligence, blockchain algorithms, etc., you will still ask similar questions if you are not skilled enough.
For students with experience in Android development, more should think about how to explore deeper, rather than just thinking about changing the industry, which is equivalent to going back to the origin, starting again, figuratively speaking, is to change a different brick and then move the brick (except high-tech content). Therefore, we should pursue qualitative change, rather than parallel or retrogression. One retrogression can be tolerated, but it is difficult to enter an upward phase after the age of 35 for many retrogressions.
And the industry is neither disappearing nor declining, as long as it exists now has its prospects. An industry will not collapse overnight, Android terminal number one in the world, Android ecosystem will not easily let Android fall. We won’t see Android die in our generation’s lifetime at least.
wages
Now the major companies are in fact very short of Android senior RESEARCH and development, constantly in the recruitment, take a lot of frontline Internet, need to spend a lot of time to find the resume of senior engineers.
Today, I casually looked at the salary of Android developer of Boss Zhihire, based on 3-5 years of work experience in first-tier cities:
This will vary depending on your ability, and it will vary from company to company, but I don’t think the range will vary that much, so the conclusion is probably that experienced Android development senior engineers will still be in demand.
The advanced course
Android has a long way to go, and we’re all on our way. The following is the latest learning materials, have all been uploaded to the open source project [GitHub], friends who need to take.
Advanced UI
The UI piece of knowledge is the most widely used today. That year the popular Android training, learn this small piece of knowledge can casually find a good job.
But obviously now is far from enough, refused to endless CV, personally to project combat, read the source code, research principle!
“Framework Refined Kernel Analysis”
As we all know, Android is an operating system based on Linux implementation. But to the Linux kernel, Android is just another application running on top of the kernel, no different than any other application running on top of the kernel.
Therefore, Android also needs a runtime environment, which requires the Linux kernel to load the resources required by the Android Framework after startup. The appropriate APK application can only be started after the Framework has been initialized.
The main contents include:
- In-depth analysis of Binder
- Parsing Handler in depth
- Dalvik VM process system
- Parse WMS in depth
- PackagerManagerService
“360° All-round Performance Tuning”
Optimizing the performance of Android applications is something every Android developer will inevitably encounter, and it is also a basic question that must be asked in job interview.
Here are a few principles for optimizing APP performance. If you follow these principles, your APP will be smoother, have a better user experience, and be more stable.
The content mainly includes the following points:
1. Design ideas and code quality optimization
2. Program performance optimization
- Optimization of startup speed and execution efficiency
- Layout detection and optimization
- Memory optimization
- Optimize the power consumption
- Network transmission and data storage optimization
- APK size optimization
3. Optimization of development efficiency
- Git, a distributed version control system
- Automated build system Gradle
4. Actual project combat
- startup
- fluency
- The practice of Douyin in APK packet size resource optimization
- Youku responsive layout technology full analysis
- Network optimization
- Mobile Taobao Double 11 performance optimization project revealed
- Autonavi APP full link source code dependency analysis
- Complete the OOM experience sharing
- Wechat Android terminal memory optimization practice
Android Third-party Frameworks
With the continuous development of Internet enterprises, there are more and more modules in product projects, and the user experience requirements are getting higher and higher. It is more and more difficult to achieve the purpose of small steps and quick iterations. There are also problems such as mutual calls between applications, and plug-in technology is applied.
Today’s Android mobile development is not hotfix, plug-in, componentized, and 80% of interviews fail.
Content of this article (1042 pages)
- Thermal repair design
- pluggable
- Component frame design
- Image loading frame
- Network Request Framework
- RXJava responsive programming framework design
- IOC Architecture Design
- Android architecture component Jetpack
NDK Module Development
The NDK is a native development kit that allows Android to use C/C++ code and provides numerous platform libraries.
The main contents include:
- NDK module development
- JNI module
- Native development tools
- Linux programming
- Underlying image processing
- Audio and Video development
- Machine learning
Jetpack Architectural Components from Beginner to Master
Advancements in Flutter Technology
There is a lot of information about Learning Android online, but if the knowledge learned is not systematic, and problems are only tasted, no further research, then it is difficult to achieve real technology improvement. I hope this systematic information has a direction reference for you.
All materials have been uploaded to the open source project“Lot”Help yourself to a friend in need.
As an IT industry veteran, I would like to share some personal advice, hoping to help those who are still confused:
In order to achieve a certain goal, ordinary people need to give up some things.
2. If I have the opportunity to go to a big company or platform in my early career, I should still go to a big company to see the world. A lot of things are not accomplished overnight, if the ability is not enough to take a curve to save the country, as long as the ultimate goal can be achieved.
Technology is fundamental, without technology you have no money. Technology is not the whole story, because you can’t do technology all your life.
4 vision and opportunity are very important, opportunity can meet can not seek, but opportunity comes, vision is not enough to make relatively accurate prediction, make the wrong choice, that is also very hurt.
Education and starting point is not a problem, in fact, ability and vision is the core competitiveness of programmers, big factory is not necessarily an iron rice bowl.
Six people need to learn, and can constantly dare to challenge themselves, to be more likely to succeed.
The road to technological advancement is long, let’s share it