Android development must learn! After the interview with Tencent, I found out that I didn’t master all of these knowledge points. Actual analysis

Preface

From the end of last year to a few days ago, I was constantly stimulated by friends from all walks of life. They all told me the same thing: I changed my job, my salary doubled, and I went to a company called Bytedance.

What surprised me even more was that a friend who was doing mobile development on Weibo told me that he had abandoned the year-end bonus and invested in this company before the Spring Festival. This made me think that this friend was a pyramid scheme.

To be honest, my heart has long been swayed by the news of these friends' successful job-hopping. In this spring night, my code also began to beating. Tonight, I will share the story of these friends' job-hopping. .

Today this article mainly explains:

APK file decompilation

  • What is decompilation
  • How to prevent decompilation
  • Basic structure of APK file

The principle of APK reinforcement

  • APK reinforcement overall architecture
  • The basic process of APK packaging
  • The meaning of Dex files

AES encryption project combat

  • APK reinforcement project combat
  • APK unpacking technology combat

1. APK file decompilation

1. What is decompilation
  • Definition: The process of
    using a compiler to generate a target program from a source program written in a source language
2. How to decompile?

First understand the file structure of apk

2. Reinforcement plan ideas

A programmer’s story:

After working hard to find a partner, he was found to be a dominatrix after marriage. She slept on her stomach when she slept at night, which made the programmer unable to wash her feet. However, this programmer works very hard. In addition to going to work, he can also do some outsourcing and earn some extra money. So he thought of handing in the salary card, and put the extra money earned in his own small vault. Live a sex life since then

An encrypted story:

The purpose of protecting the core dex file is achieved by exposing the non-core dex file.

3. Basic principles

3.1 Apk packaging process

Packing is to add a protective shell on the basis of the original apk. If the dex file is modified, it needs to be repackaged, otherwise the apk cannot be installed. This requires us to learn in detail how to package the apk

3.2 What is a Dex file

The purpose of reinforcement is to protect the dex, directly speaking, it is to operate the dex file. You must know what the dex file is and whether you can directly use the knife

3.3 Dex file loading process

The packed file cannot be used directly. The dex file is encrypted, so we need to decrypt it. How to load the decrypted dex file?

3.4 How the APK file is produced

image.png

4. Reinforce the overall framework


So here comes the question:

  • How to achieve the encryption effect?
  • Why are there two series of dex?
  • How did the shell dex come from
  • How does shell dex protect source dex?
  • How to sign?
  • How to run new dex (how to unpack)?
4.1 Encryption process

4.2 How to sign APK files


4.3 How to run APK files (unpacking)

4.4 How to formulate certain classes in main dex
  • multiDexKeepFile: Manually add the class to be placed in Main.dex
com.umeng.analytics.Abb.class
  • multiDexKeepProguard: Use Proguard to manually add the classes to be placed in Main.dex
-keep public class com.tencent.bugly.**{*;}

How to do a good job interview surprise and plan the learning direction?

The interview question set can help you find out and fill up the vacancies, have a direction and targeted learning, and prepare for future entry into a large factory. But if you just read it again, don't study and delve into it. Then this interview question will be of limited help to you. In the end, we must rely on senior technical level to speak.

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. It is recommended to make a study plan first and associate the knowledge points according to the study plan to form a systematic knowledge system.

The learning direction is easy to plan, but if only through fragmented learning, it is very slow to improve oneself.

At the same time, I also collected and sorted out ByteDance in 2020, as well as interview questions from companies such as Tencent, Ali, Huawei, Xiaomi, etc., and sorted out the requirements and technical points of the interview into a large and comprehensive "Android Architect" interview Xmind (in fact, it is better than Expected to spend a lot of energy), including the knowledge context + branch details .

image

When building these technical frameworks, I also organized the system's advanced advanced tutorials, which will be much better than my own fragmented learning effect.

image

Click: "Android Architecture Video + BAT Interview Special PDF + Study Notes" can be obtained for free~

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) can be obtained for free~

There are a lot of materials for learning Android on the Internet, but if the knowledge learned is not structured, and when you encounter problems, you just taste it and stop studying it in depth, then it is difficult to achieve real technological improvement. I hope that this systematic technical system will provide you with a direction reference.

Guess you like

Origin blog.csdn.net/fanzhang_vip0723/article/details/112941176