One, foreword

The two words I’ve heard the most in the last two months are

epidemic


layoffs


sorry


ok

Unfortunately, the current project still has a lot of imagination, but it is coming to an end;

ok

Recently, I have been sorting out articles about the interview. Some friends have asked me how TO prepare for the interview, and many others are facing the interview. I also want to talk about my recent ideas and plans for us to discuss.

The whole is divided into the following two aspects:

,

To introduce myself

,

Knowledge reserves

Ii. Self-introduction & project experience

2.1 Self-Introduction

This is the first thing to prepare for. Just do a couple of interviews and work on it slowly. It’s important

organized

,

Previous company, position and direction.

,

Team composition, position and responsibilities within the team.

,

Major contributions to the team, as this section relates

Project experience and knowledge points extended

,

Hobbies that reflect on your strengths.

,

If you can learn from other sources about what the department does, you can also talk about what you know about them and what your own aspirations are.

2.2 Project Experience

Project experience varies from person to person. Pick out what you think is bright and prepare from four aspects:

,

The realization of function modules

,

What was achieved

,

What problems did you encounter and how did you solve them

,

Related knowledge points involved

Project experience and knowledge is a two-way process, to

Trying to find a connection between them

,

When it comes to project experience, say: Done

Do you have an intellectual curiosity

,

1. How about you?

Do you have the ability to put your knowledge into practice

2.3 Problems encountered

It’s important to prepare!
The question involves the knowledge point also should make clear.

Usually the project may be busy, the problem is urgent to solve. But learn to write down the question first and then summarize it in an organized way by following these steps:

,

Have a problem

,

The analysis process

,

The solution

,

The results of

Third, knowledge reserve

A lot of people prepare for the interview, most will be like this, open Baidu, input

This may seem natural, but it’s not

Healthy ways

There is a problem on Zhihu called

How to Study effectively


Build your own knowledge

,

Consolidate your memory.

,

Know yourself and find your strengths and weaknesses.

,

Keep track of your review.

,

Summary of experience.

At present, MY own summary can be divided into the following points:

3.1 Java Basics

,

The basic idea of object orientation

· Object class: several key functions of Object class, constant pool concepts involved in String, serialization & deserialization.

,

Key Keywords:

final
static

,

Inner class: classification, application scenarios, and translation of inner class

class

,

An abstract class

,

Coding: the purpose and classification of coding.

,

Exception: Exception system, custom exception.

,

Annotations: Basic concepts of annotations, classification, compile-time annotations

,

Containers: Important internal implementations of containers, and comparisons between containers.

,

Memory model.

,

Recycling.

,

The process of class loading.

,

Generics: categories, wildcards

,

Reflection: use.

3.2 Android basics

· Dalvik and Art virtual machines

· Activity: life cycle, launchMode.

· Fragment: Lifecycle, lazy loading, the difference between two types of Adapter.

· BroadcastReceiver: basic concept, broadcast classification and permissions.

· Service: life cycle, return value of onStartCommand, difference between startService and bindService, interaction between the same process and different processes, implementation principle of IntentService.

,

Important utility classes

AsyncTask
HandlerThread
Handler
IntentService
LruCache
LinkedHashMap
SparseArray

· RecyclerView: the principle of cache, the comparison with ListView, how Adapter ADAPTS to a variety of layouts.

,

Storage: Database upgrade

ContentProvider
SharePreference

· Compatibility problem of SDK version upgrade.

· Android permission management mechanism.

3.3 the picture

· Bitmap related: Bitmap size calculation, quality, inJustDecodeBounds, inBitmap.

,

Comparison and compression of several image formats.

,

Large image loading:

BitmapRegionDecoder

3.4 algorithm

,

There is no shortcut, brush questions, but brush questions, according to the type of summary.

3.5 Open Source Frameworks

· RxJava: application scenarios of operators, internal implementation of key operators, and comparison with RxJava.

Glide: Process, cache related implementation.

· Retrofit: Process, dynamic proxy & annotation parsing.

· OkHttp: process, queue implementation, cache implementation.

3.6 performance

,

Performance optimization techniques: startup speed optimization, layout optimization, memory optimization, battery optimization,

APK

,

,

Performance optimization tools:

TraceView
Systrace
GPU
GPU
Hierarchy Viewer
MAT
Memory Monitor & Heap Viewer & Allocation Tracker
LeakCanary
Lint

,

,

ANR

,

,

ANR reason

,

,

ANR generation process source code analysis

,

,

Information Collection Process

,

,

Trace file Analysis

,

,

Analyze the basic process

,

,

Concrete example

,

,

How to avoid producing

ANR

,

,

Performance practices: Performance problems solved from

Encounter problem, analyze problem, solve problem, result

,

3.7 the View

,

Drawing process:

measure
layout
draw

,

Event distribution: Principle of event distribution, handled sliding conflicts.

,

The custom

View
Canvas
Path
View

3.8 architecture

· MVP: The idea of MVP & its advantages and disadvantages, application in the project,

3.9 the source code

,

AMS

,

,

WMS

,

,

Binder

,

,

Application Startup Process

,

,

APK related knowledge points

,

,

APK composition: resources.arsc composition, Androidmanifest.xml, aAPT function and principle

,

,

APK packaging process

,

,

APK installation process

,

,

Principle of APK signature & verification

,

,

Dexopt principle

,

3.10 the network

,

Basics: Take a look at the

TCP/UDP
HTTP/HTTPS

3.11 Design Mode

In accordance with the

23

UML

Android

3.12 a multithreaded

,

Look at the art of Concurrent programming, and the contents of this book are the best body of knowledge for multithreading.

,

Encountered multithreading problems, how to solve.

3.13 Gradle

,

Common configurations.

,

Multi-channel packaging.

3.14 the plugin,

,

The core idea of plug-in.

,

Several plug-in framework implementation principle.

3.15 componentization

Arouter

3.16 Kotlin

,

You can take a look.

3.17 multimedia

,

Audio and video playback.

3.18 the big front end

· ReactNative, Flutter: Those who have not learned this can learn about thoughts.

3.19 the JNI

,

Invoke the implementation.

Four, conclusion

I always think the technical interview is not an exam. You memorize the questions before the exam, and you are given a paper to answer and hand in.

First of all, the technical interview is a

Know yourself

What’s more, a technical interview is a two-way process of getting to know each other

Try to find the best in the other person

Looking for a job is nothing more than to see three points: with what person, what to do, how much money, to give these three in their heart division of a proportion.

Again, there are some things that you not only need to understand, but you also need to be able to express them well enough for the interviewer to recognize your understanding, for example