First, job responsibilities
First of all, let’s look at the job responsibilities
1. Responsible for Android mobile platform development; 2.Android framework development and maintenance, SDK development
- Upgrade and optimize technical architecture to improve the efficiency of business research and development
Two, job requirements
More than 3 years of Android client development experience 2, Solid foundation of JAVA, understanding IO, multithreading, collection and other basic framework, have a certain understanding of the principle of JVM 3, master the common Android components, framework, and technology principle 4, proficient in Android underlying framework, Proficient in Android performance tuning, familiar with Android source code 5. Strong sense of responsibility and team spirit, good communication and cooperation; Able to complete design and coding independently
Three, how to highlight the resume to write
I think the function of a resume is to allow the reader to quickly and accurately capture useful information and see your difference
1.who are you ? Who are you? 2.what did you do? What did you do? 3. What do you stand out from?
These few days are enough
3.1 the content
It mainly contains the following modules: Basic information: name, phone number, email, personal website (GitHub) Work experience: company name, in-service time, work content (brief description of responsibility, what business to participate in) Project experience: none of the most important! Other: Briefly describe anything you want the interviewer to know, such as community influence, GitHub Star rating, nuggets rating, etc
The project experience is one of the most important parts of development
3.2 highlight
Work: what is the business background of the project, what is the outstanding part of the business, how to promote the operation of the business and other technical implementation: what is the overall technical implementation idea of the project, what is the outstanding technology used in the project, what are the difficult problems solved and so on
Don’t write about mastery unless you’re really cool, or there’s a cool technology in a project that you didn’t write but don’t know much about.
Beautiful skins are all the same, interesting souls are one in a million in daily business:
- What the hell does this project do
- What the hell did you do on the project
- What awesome technology did you use to solve any difficult problems
Project experience is a very important part, I will ask in detail, highlight my strengths and explain them clearly
3.3 Professional skills
If you want to get 30-50K, you must have relative professional skills. Solid foundation of JAVA, understanding of IO, multithreading, collection and other basic frameworks, have a certain understanding of the principle of JVM, master the principle of common Android components, frameworks and technologies, master the underlying Framework of Android, and master the performance tuning of Android. Familiar with Android source code passionate about Android development business, proficient in SDK, hot repair, performance optimization and so on
Expertise can be a plus or a minus, treat it with caution
Iv. Interview review roadmap
I used to review mostly after 20 o ‘clock, because I can concentrate on it in the evening, so I can make a study plan. I should not review scattered, and it is better to review systematically, so that I can win
The main contents are as follows:
- BAT’s interview questions are relevant
- Performance optimization is related
- Multithreaded correlation
- Java related
- Source code parsing
- Network programming related
- Algorithm set correlation
- Data structure correlation
- Design pattern correlation
- A little bit of summary
4.1丶BAT related pilot:
- 1. Communication principle and mechanism of Binder
- 2. Multi-process communication
- 3. Componentization: The difference between plug-in and how to choose
- 4. Plug-in understanding
- 5. Principle of hot repair
- 6. Understanding of AMS
- 7. What is the difference between AOP and OOP? How does AOP work
- 8.QQ skin changing principle and general idea
- 9. The Android virtual machine
- 10. Specific steps and applications of picture compression
- 11. How does decompilation and encryption work
- 12. Principles of serialization and deserialization
- 13. Principles and understanding of Handler
4.2, algorithm set notes
- 1.Hash
- 2. Minimum spanning tree algorithm
- 3. Shortest path algorithm
- 4. The KMP algorithm
- 5. Search algorithm
- 6. Sorting algorithms
4.3, thread. Multithreading. Thread pools and interview trivia
- 1. Enable the thread
- 2. The run() and start() methods differ
- 3. How to control the number of concurrent access threads allowed by a method?
- 4. Differences between Wait and SEELp in Java
- 5. Causes of thread blocking
- 6. How do threads close?
- 7. How to synchronize and ensure thread safety
- 8. Reduce the size of APK packages
- 9. Optimization and solution of memory leakage and memory jitter
4.4, small knowledge list
- 1. The difference between object-oriented and object-oriented
- 2. The difference between Java and C++
- 3. Object-oriented characteristics
- 4. The difference between interfaces and abstract classes
The last
It is said that three years is a hurdle for programmers, whether to promote or improve their core competitiveness, these years are very critical.
With technology moving so fast, where do you start to learn to become a senior engineer and eventually an Android architect/technical specialist? I’ve summarized these five chunks;
I collected the interview questions from Alibaba, Tencent, Bytedance, Huawei, Xiaomi and other companies over the years, and organized the interview requirements and technical points into a large and comprehensive “Android Architect” interview PDF (actually more effort than expected), including the knowledge context + branch details.
Java language and Principles; Big factories, small factories. The Android interview starts with your familiarity with the Java language
Advanced UI and custom View; Custom view, basic skills of Android development.
Performance tuning; Data structure algorithms, design patterns. These are the key foundations and points that need to be mastered.
The NDK development; Future direction, high salary will be.
Cutting-edge technology; Componentization, thermal upgrade, thermal repair, frame design
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 technical system has a direction reference for everyone.
When I was building these technical frameworks, I also organized the advanced tutorial of the system, which will be much better than my own fragmented learning effect, visible on GitHub; Android Architecture Video + Learning Notes
Of course, it is not easy to learn and master these skills. We all know how to learn and how hard it is to work as a programmer, but no matter how busy you are, you should devote 2 hours a week to study.
Within six months, you’ll see the change!