A letter to andriod programmers in 2023

Hi, fans and friends:
Hello everyone! Recently, many fans and friends have been saying that it is very difficult to find Android jobs. There are thousands of resumes for each position... Everyone is very anxious. Today I am going to write a letter to you and share some experiences and methods with you to help fans and friends spend this cold winter better.

layoff storm

I believe that 2023 will definitely be the most difficult year since the emergence of us Android programmers, and also the most difficult year for the Internet. During this year, we suddenly discovered that the mass layoffs were so close to us. We had only heard stories about layoffs before, but now they were happening to us or those closest to us one by one.
Insert image description here

Although the environment is so difficult, each of us as individuals must continue to survive. Most of our classmates do not have many skills. Most of them only work as android programmers and get paid for their work. So most of us have no other choice but to use our abilities to find a better job and get more salary. But most people are more anxious, including many fans at the beginning. They complained to me every day, saying that it was difficult to find jobs outside, and the interviews were not ideal. It seemed to me that they could not find a job at all. Haha, is this really the case? In this environment, many students can successfully pass the interview, successfully land in a big factory, and find a good job.

So instead of complaining about the bad environment every day, it is better for us to calm down and cultivate our own internal skills. When you are almost done practicing, you can firmly control it once a good interview opportunity comes. If you just blindly Anxiety, if you don’t work hard to find ways to improve and enrich yourself, then as your working age increases, your competitiveness will become worse later. Then you have to think about what else you can do besides being a programmer?

future plan

For Android programmers, Ma Ge gives some suggestions:
1. Internet application development direction
– in addition to normal business development, you can consider in-depth research on performance optimization direction, focusing on accumulating experience in this area, recruitment and work in this area Opportunities used to be the most abundant, and this direction also supported the mobile Internet. However, now the overall Internet market and apps have basically been taken away by the top apps, so employment in the latter area will only become more and more difficult, and the employment will become more and more difficult. Come and roll.
2. Android device system application development direction
– This is actually different from Internet application development as follows:
Internet apps value constant business updates and have a fast iteration rhythm. They like to use various fancy technologies and third libraries, and most of the time they do it repeatedly. As for business, it is reflected here that there will be a lot of things to do, and the level of knowledge and innovation will be high, but it is basically based on SDK development. Even if you don't understand the system framework, etc., there will be no problem.
After all, system applications belong to Android device manufacturers, and the update cycle is slow. Generally, there may be two high-demand versions a year, each of which takes 1-2 months. The rest of the time is spent mostly on maintaining bugs and optimizing performance to ensure the system application app. The stability and demand often affect the system, so you need to be familiar with the system framework and other system application functions. You need to polish it carefully and be more precise about each knowledge point. You also have requirements for the principles of Android knowledge and performance optimization. higher.
The main businesses include launcher, systemui, setting, clock, calendar, etc. However, the direction of this Android device company has actually been very stable. After all, they are companies that sell physical devices, so the employment rate in this area has always been relatively stable. , but to be honest, most system applications are prone to growth bottlenecks after a long time, and most of them will want to do framework development in the future.

3. The direction of Android framework development
is the same as that of system application development companies, which are generally Android device companies, such as mobile phone companies, automobile companies (to be honest, Android employment this year depends on car and machine development), televisions, advertising machines, etc., basically Most of the devices that you can see the screen on now are Android devices. Framework development is a system-level thing and is more difficult than app development. There are actually relatively few people in the market who know how to do it, but there is a lot of demand, and the salary is relatively high. The technology stack developed by the most important framework is relatively deep and is divided into many business modules, such as binder, input, wms, ams, pms, surfaceflinegr, audioflinger, split-screen multi-window, etc. Basically, each module is enough for one person to study for a long time. long time. Therefore, it is difficult to find someone on the market who can say that he is proficient in all the framework modules of the system. The main work content is also to deal with system requirements and system bug repairs. This framework requirement should be modified the most for large manufacturers. Generally speaking, there are more engineers over 35 years old in this framework part of the employment age. There is no such thing as saying that older people do not need it. The main reason is that it is relatively difficult and it is difficult to reach a very in-depth level without long-term accumulation.

framework learning experience sharing

Junior learners of the android framework. Most of them are app developers who want to switch to framework development. They generally have the following confusion and pain points: 1. I don’t know what I can do after learning the framework. I think that learning the framework
is just to look at the source code combing process. It has no practical use
. 2. I don’t know how to learn the framework or what to learn. I have taught myself a lot, but I feel like I haven’t learned anything. 3. I always get
stuck when analyzing the system source code. It is difficult to analyze the source code from the beginning by myself.
4 , I have learned so much source code, I can’t remember it at all, and I can’t use it in actual work.
5. I don’t know how to solve the problem of the framework at work, and I don’t know how to troubleshoot it.

If you have just started learning the framework and have the above problems, it is normal. Here I will share some of my learning experience:
1.
Although framework source code analysis is source code analysis, it must be more practical than just looking at the code and reading books. Here I hope to learn the framework in practical terms. You must compile and run your own aosp system. This environment has not been set up. So if you go to the web page to look at the source code, you will basically rely on guessing, or you will just stop at reading other people's content. Because you can’t understand the framework deeply just by looking at the code. Why? Because the framework has too much system source code, and a method may have thousands of lines. If you don't actually add log and debug, can you know which branch to take after entering the method? Because there are too many codes and too many conditional judgments, if you don't debug, print, etc., you won't know where it is going. Only if you follow it and analyze it, and find out that the order of execution is different from the place you guessed, and understand the relevant reasons, can you remember this pit deeply. Otherwise, to be honest, I will watch it today and forget it tomorrow.
2. When self-study, learn to think about the needs related to the framework. For example, when you are learning the split-screen module of the framework, you can use the split-screen function of your mobile phone to conduct research. When researching some functions, if you have not implemented them yet, you can consider it. , try to modify where in the framework you should modify. You may not know how to implement it, but you can use your existing knowledge of the framework to investigate in various ways to see how others implement it. Gradually, you accumulate more and more knowledge, and you Your framework skills will grow quickly.
3. Learn to use related dumpsys and other related debugging commands. In fact, the output content of these debugging and other commands can well show the running status of a certain module of the current framework. You must learn to use these commands and view the module. Information situation, these outputs can be used to further consolidate the mastery of the module. You can also use these outputs to analyze related bugs and competitive product research.
4. For some bug problems at work, you must have the spirit to trace the root cause. When working in the framework, students often check related bugs. For the sake of simplicity or that they have not investigated the root cause at all, they often use some methods that only change the superficial reasons. method. This kind of behavior is very bad. First of all, the root cause is not found, and you have no way to evaluate the impact of the modification plan on the problem. It is very likely that another problem will arise if you modify it here. Also, don’t miss an opportunity that gives you the opportunity to go deep into the system. When Marco used to work in the company, he often analyzed some problems such as frame blackouts, screen freezes, performance, etc. In many cases, it was normal to track down an issue for a week. of.

Well, I will tell you this much for now. The main reason is that I hope that everyone can calm down in this widespread unemployment environment and not be in a state of anxiety every day. Being anxious means that you are actually worried about the future. , but you don’t know what to do. Therefore, the best way to solve anxiety is to reposition yourself, clarify your goals, and do it wholeheartedly.
Finally, I would like to recommend Ma Ge’s practical android framework development collection course. First of all, this full version is paid. The characteristic of this framework course is that you must practice it. The study time is at least 1.5 months for full-time study and 3 months for part-time study. You can privately chat with me on the public account.
Follow and watch my B-station videos for free:
https://www.bilibili.com/video/BV1ah411d7Y3/
Insert image description here

おすすめ

転載: blog.csdn.net/learnframework/article/details/133125138