Preface I remember that when I was a sophomore, I "didn't do my job properly" and taught myself Android and followed the teacher to do projects. In my junior year, I started to intern in my current company. It has been more than half a year since I graduated, and I have been learning Android for more than 3 years! But I always feel that the knowledge points are scattered and not in-depth enough, and I have encountered bottlenecks, so I wrote this article. This article is a summary, reflection and introspection of my own Android programming skills, aiming to systematically and deeply learn the key points and difficulties of Android and take my abilities to the next level. Below I will list the more frequent, important or difficult knowledge points in the Android knowledge system, and in the future I will study and research the knowledge points listed in this article one by one, and write a series of articles as my own learning summary notes. I also hope that you can learn and communicate with me~ Note: This article is not about interview experience, but a self-summary. I am not going to list points and say the results without saying the reasons like many articles on the Internet, and then memorize them by rote, knowing the reasons but not the results. Instead, I plan to study the following knowledge points in depth and write articles for each knowledge point from source code or examples, so that you can know both the results and the results. I don't know if I can do it, but I will keep working hard and set a flag~
Main text Android advanced key points Java
To learn Android well, you must have a solid foundation in Java (of course, there is also Kotlin now). Here are only four points, but the Java system is very large, and the key points are of course not limited to these. The ones listed are commonly used or common in actual projects and interviews. Android common/important classes
These classes in Android are frequently used in programming, so I plan to read the source code of these classes carefully. These classes are also frequently asked in interviews, such as Activity startup process, Binder communication principle, etc., so it is very worth reading! Android basic technology and high-frequency interview knowledge points
These knowledge points are relatively basic, but also very important! Unfortunately, they are rarely used in actual projects, so I often forget these knowledge. So I plan to write them into an article to deepen my impression. NDK and JNI I have a headache when I talk about this. I believe many people are like me. If you just call the C layer interface, it's okay, but if you want to write C code, it will be very embarrassing. But we can't always avoid difficulties, but face them head-on! So I made up my mind to cross this hurdle in my heart! Algorithms and Data Structures
The algorithm books at home are all covered in dust... The points listed are not difficult, and they are basically what you need to master, but I always forget what I have read, and I still can't remember what I have read again... So I also plan to write an article to enhance my memory. In addition, if you are doing application-level development, mastering these knowledge points is basically enough, after all, Java collections also provide sorting interfaces. But you still need to master them, after all, different algorithms are used in different scenarios. Plugin/Hotfix As a skill that must be mastered for advanced Android development, if you don't know this, you will be embarrassed to say that you are an Android developer. I read the source code of RePlugin for a month before, and I feel that I am not good enough. I don't quite understand the processing or adaptation of many codes, such as the mechanism of Binder. So this requires a lot of knowledge as support to complete the understanding. See you in the future! Third-party excellent open source library
"RTFSC (Read The F**king Source Code)". Everyone has his or her own programming style. If you don't learn from and refer to other people's code, your horizons will always be so narrow and it will be difficult to further improve your programming level. Therefore, it is very necessary to read other people's excellent code! Common architectural patterns in Android
Decoupling! Decoupling! The most important thing in using Android's architecture model is decoupling. Developing code is not difficult, but maintaining code is the most difficult. If the code is decoupled, the maintenance cost will be reduced and the work efficiency will naturally increase. Gradle and Groovy I believe that most people now use Android Studio for development. Gradle is a very powerful build tool. I think it can completely replace Java's compile-time annotations, and it is even better than that. Because even files can be modified at compile time, it is very powerful, so it is also worth learning. General Skills
In addition to Android knowledge, you also need to master some general skills. After all, knowing more will give you the confidence to fight with the backend, haha. Written in *** Since the knowledge points listed in this article are summarized by myself, and due to my limited level, I cannot mention all of them. I welcome the experts to supplement them~ In the future, I will study the above knowledge points in depth one by one, and I also hope that friends will study with me and advance together. |
<<: 9 open source payment system projects you should know
>>: Smartphones in 2018: Over the Hill?
The work of short video operation mainly includes...
Below I will briefly tell you about the black tec...
After seeing the news that WeChat and Alipay simu...
In order to better penetrate into various industr...
The annual Chinajoy exhibition officially ended i...
Before the Spring Festival, the native promotion ...
Zhang Zhiqiang · Category Management Thinking Cou...
The good or bad ranking of a website is not due t...
Cook, who is usually gentle and polite, couldn...
The "beauty" of the plant world is ofte...
Friends who don't usually pay attention to di...
WeChat was officially released on January 21, 201...
2025 was declared the "International Year of...
We need a set of operational plans based on the A...
In 1969, the first CCD image sensor was born in B...