Android development for five years, share some industry experience

Android development for five years, share some industry experience

1. Android is not cool, but it's harder to mix than before

Seven years ago, Android suddenly emerged and became a new trillion-level market. Countless nuggets poured in, hoping to show their fists.

At that time, in the mobile gaming circle in the big environment, as long as you had a runable Lianliankan, you could find a job, and you were pushed forward by the wave on the track, and the industry was not bright.

2020 is coming, the wave speed has slowed down, and the message of bad Android is flying all over the sky. "Cool" is the most common word.

But rest assured, Android is really cool!

Getting started with Android is relatively simple. There are many and many elementary Androids, which are approaching saturation. You can open a recruitment app at will to judge it intuitively. Now the conditions for Android access are getting higher and higher.

When the standards of an industry are getting higher and higher and the basic things are getting more and more stable, this is not called cool or mature.

Android development for five years, share some industry experience

2. Another battlefield

The reason for the decline of Android's current development is that basic application development has been replaced by small programs and cross-platform front-ends. For the time being, higher-level things are left alone. If we change our focus, we have another battlefield.

The TV box does not require performance here, but most of the main interface uses the native implementation framework, which is around the development of a Launcher, so those who do desktops will enter this field.

The Internet of Things and the vehicle network connect the front and back ends. To a large extent, the web team is introduced. At the same time, it recruits several system tailoring and coordination with system research and development and framework design personnel.

System tailoring is to use the previous wave of embedded development and transplantation. At the same time, the system can solve the problem of connecting from the bottom driver to the application layer interface.

Android development for five years, share some industry experience

3. New technologies to be paid attention to this year

A) Kotlin: Kotlin's main advantage is full interoperability with Java, which means that developers can migrate old code as much as possible without having to completely rewrite the entire application.

B) Jetpack: Time-saving first place

4. Android Studio is awesome

Common Functions:

The device simulator can test applications on different devices and various Android versions.

The Android PK analyzer can analyze the size of the program by detecting the APK size.

Realtime Profilers can perform real-time statistical analysis on CPU, memory and network usage.

Firebase Assistant can connect an application with it, and all Firebase services can be added in just a few steps.

Vector Asset Studio can help create a new bitmap image for each density (density refers to the available space for storing data on the disk).

Android development for five years, share some industry experience

5. Four-character mantra

It’s important to stay hungry, and it’s always right to keep learning.

The metabolism rate of the entire industry is very fast. Wouldn't it be possible to wait for the 35-year-old to be "optimized" if you didn't raise your energy? Come on, go up with an annual salary of one million, and go down, but the evening scene is bleak, the elementary is saturated, we will move to the advanced level, what are we still worried about when we reach the tip of the pyramid?

How to improve

I have been doing Android development by myself in the 5th year. In the second year after graduation, I was fortunate to join the big family of ByteDance. In the 4 years of Byte, I have witnessed too many people coming and going, and I am deeply impressed by a colleague who switched jobs to Ali and directly doubled his salary, but I also saw many people bumping into the wall with gold plated with "big factory". Technically!

I may be considered a successful example myself. I achieved 2-2 from 1-1 in 4 years. Of course, the "sorrowful tears" behind this will be discussed later. In general, thanks to my continuous learning, review and summary, and improve my skills! Let me share my specific study route and notes in the past 4 years, hoping to help friends who are interested in improving technology!

  • Essential skills for architects

At present, the mainstream language for Android APP development is the Java language. The biggest feature of the Java language is to increase the possibility of software interaction. It can be said that almost all applications on Android phones are written in the Java language.

Knowledge points:
1. In-depth understanding of Java generics
2. Explaining in-depth explanations
3. Concurrent programming
4. Data transmission and serialization
5. Principles of Java virtual machine
6. Efficient IO

Essential skills for architects

  • Interpretation of open source framework for design thinking

With the continuous development of Internet companies, there are more and more modules in product projects, and user experience requirements are getting higher and higher. It is becoming more and more difficult to achieve the purpose of small steps and fast iterations, and the application of plug-in technology is born. If there is no plug-in technology, the applications that integrate a large number of "app" such as Meituan and Taobao may be as big as a few g.

Therefore, today's Android mobile development will not be hot-fixed, plug-inized, or componentized, and more than 80% of the interviews will not pass.

Knowledge points:
1. Hot fix design
2. Plug-in framework design
3. Component framework design
4. Picture loading framework
5. Network access framework design
6. RXJava responsive programming framework design

Interpretation of open source framework for design thinking

  • 360° all-round performance tuning

In the hands of development engineers at different levels, because of the uneven technical level, even if many mobile phones are running with very high software performance, there will still be lag when opening applications.

In addition, with the iteration of product content, the functions become more and more complex, and the UI pages become more and more abundant, which also becomes an obstacle to smooth operation. In summary, the performance optimization of APP has become a comprehensive quality that developers should have, and it is also a guarantee for developers to complete high-quality application works.

1. Design ideas and code quality optimization

2. Program performance optimization

  • Start-up speed and execution efficiency optimization
  • Layout detection and optimization
  • Memory optimization
  • Power consumption optimization
  • Network transmission and data storage optimization
  • APK size optimization

3. Optimization of development efficiency

  • Distributed version control system Git
  • Automated build system Gradle

4. Project actual combat

  • Start speed
  • Fluency
  • The practice of Douyin's APK package size resource optimization
  • Full analysis of Youku's responsive layout technology
  • Network Optimization
  • Revealing the Secret of the Performance Optimization Project on Taobao Double Eleven
  • Analysis of source code dependence of AutoNavi APP full link
  • Sharing of actual combat experience of completely eliminating OOM
  • WeChat Android terminal memory optimization practice

360° all-round performance tuning

  • Android framework architecture

Android framework architecture (advanced UI+FrameWork source code) This piece of knowledge is currently the most users, and we call it the technology of Android from 2013 to 2016.

Android developers are often familiar and unfamiliar with this frequently "used" code because they are used to copying code online: the familiar is dealing with them almost every day, and copying the code every day; the unfamiliar is that although with these codes every day Dealing with codes, but I haven't studied the principles of these codes in depth and the connotations in the depths of the codes.

Key points of this article:
1. Advanced UI promotion
2. Android kernel components
3. Essential IPC for large projects
4. Data persistence and serialization
5. Framework kernel analysis

Android framework architecture

  • NDK module development (audio and video series)

NDK (abbreviation of Native Development Kit) is a software development kit based on native programming interface, which allows you to use C and C++ code tools in Android applications. The program developed by this tool runs directly locally, not a virtual machine.

In Android, NDK is a collection of a series of tools, mainly used to extend the Android SDK. NDK provides a series of tools to help developers quickly develop C or C++ dynamic libraries, and can automatically package so and Java applications into an apk.

Knowledge points in this article:
1. Introduction to C/C++ developed by NDK
2. JNI module development
3. Linux programming
4. Low-level image processing
5. Audio and video development
6. Machine learning

NDK module development

  • Flutter learning advanced

2019 is undoubtedly a year in which Flutter technology is in full swing.

Every mobile developer is crazy about the features and concepts of "rapid development, expressive and flexible UI, native performance" brought by Flutter, from super apps to independent apps, from pure Flutter to hybrid stacks, developers We are happily exploring and applying Flutter technology in different scenarios, and we are also facing a variety of different challenges.

Key points of this article:
1. Overview of Flutter cross-platform development
2. Flutter development environment construction in Windows
3. Writing your first Flutter APP
4. Getting started

with the Flutter Dart language system ...

Flutter learning

  • WeChat applet development

As one of the most popular programming development application scenarios, WeChat applets are very popular in the market, which makes many developers greedy. But for beginners, it's completely at a loss. I don't know what knowledge needs to be learned in the development and production of WeChat applets. Friends in need can refer to this article.

The main points of knowledge in this article:
1. Overview and introduction of
applet 2. UI development of applet
3. API operation
4. Practical combat of shopping mall projects

WeChat applet development

  • Interpretation of Android-related source code
    As long as it is a programmer, whether it is Java or Android, if you don’t read the source code and only look at the API documentation, it will just stay on the skin. This is not good for the establishment and completeness of our knowledge system and the improvement of actual combat technology. of.

Interpretation of Android related source code

Interpretation of part of the Android-related source code

Due to space reasons, if you need the complete study notes pdf above, you can like + comment support, click here to pick it up for free !

Guess you like

Origin blog.csdn.net/m0_46657043/article/details/113604794