Skip to content

Latest commit

 

History

History
319 lines (296 loc) · 6.5 KB

AndroidAdvancedKnowledgeMap.md

File metadata and controls

319 lines (296 loc) · 6.5 KB

Knowledge System Catalog

0、Trend

Cross-platform

Machine Learning

AR & VR

Audio & Video

Blockchain

Basic framework

Tool apps

1、Learning System Source Code

Components

Android Four Components

Activity
Launching Process of Activity
Launching Procedure&Mode
Lifecycle
Relationship with Window/View
Relationship with Fragment
Service
IPC(AIDL)、IntentService
Insight into ContentProvider
Insight into BroadcastReceiver

Fragment

Lazy Load
Communicate with Activity

Insight into Context

Window

Toast
Dialog
PopupWindow
Differences between PopupWindow&Dialog

WebView

JSBridge
Deeplink
Accelerate Method

RecyclerView

Level 4 Cache + Partial Refresh
Comparision with ListView

Comparision of LinearLayout & RelativeLayout's efficiency at the Same Layer

System Service

ActivityManagerService

Window&WindowManager

WindowManagerService

ServiceManager

procedure

Starting Procedure in Android System

Starting Procedure of system_server

Android Apk Installation

Android Application Process Launch

Communication

WIFI

NFC

Bluetooth

2、Architecture

Design Patterns

Architecture Pattern

MVP

MVVM

DataBinding

Flux

Clean Architecture

Android Architecture Components

Android Jetpack Architecture

App Framework

Package Designing

Layering

3. Open Source Library

How to thoroughly grasp Open Source Library

ORM Frame

GreenDao

Room

EventBus

EventBus(Open Source Lib)

4 mode and sticky event
Observer Pattern for decoupling

Network

Retrofit

OKHttp

Interceptor(Chain Of Responsibility Model)
Timeout Retransmission & Redirect
Http Cache
Reuse Of Socket Connection Pool

Volley

Image

Glide

Fresco

Picasso

Dependency Injection

ButterKnife

Dagger2

Serialization

Gson

FastJson

ARouter

Responsive Program

RxJava

Commonly used operator
Thread Scheduling
Exception Handling
Flowable Back Pressure

RxBinding

RxAndroid

4. Test

UnitTest

Robolectric

Automated Test

UI Automation

Monkey

5. Common Mechanism

Thread Communication

Handler Principle

AsyncTask

HandlerThread

IntentService

RxJava

Binder Mechanism

Thread

lowmemorykiller

Thread Priority

View System

Custom Control

Event Distribution Mechanism
Custom animation
Lottie Parsing Library
Draw

Android Message Mechanism

Local Storage

Sqlite, SharedPreferences and File

Resource Management System and Resource Loading Mechanism

6. Android Basic Skills

Advanced Java

Java Reflection

Dynamic Proxy

IO & NIO

Multithreading and Concurrency

Network Protocol

Collection

How can I master so many collections?
HashMap
LinkedHashMap
HashTable
ConcurrentHashMap
TreeMap
SparseArray

DataStructure & Algorithm

Operating System

ComputerNetwork

Network protocol : DNS, HTTP/1.X, HTTPS, HTTP/2, TCP UDP

SSL

Java Virtual Machine

JVM

ART & Dalvik

AOT compilation
Bytecode & Dex

GC Mechanism

7. Android Advanced

Resource Management

Theme Style

Multi Resolution Support

AssertManager

Resource

Package

Gradle

Compile

Code Confusion

App Signature

AOP

Dynamic

The development of dynamic technology

Cross-platform

Summary
React Native
Fuchsia+Flutter+Dart
weex
JavaScript Engine
Render Engine
Layout Engine

Android Plugin

class and dex
ClassLoader
Hook Activity Lifecycle
Parent Delegation Model
Plugin principle
Plugin Framework

Hot-Fix

Cross-platform Language

React

Vue

Wechat Mimi-program

Componentization

Router

Message Push & Keep-alive

Long Link 4 Keep-alive

Heartbeat packet

Progress 4 Keep-alive

JNI

Safety

root principle

Binary Loophole

Classic Loophole(eg:cve20143153 cve20153636)

poc & exp

Android Reversing

arm compilation
smali bytecode
DEX and ELF structure
Android and Linux debug and anti-debug technique
apk strengthen and anti-strengthen
Hook

Multimedia

Image

Image Handler
Animation
Image Loading

Audio And Video

Audio Encode&Decode
AudioTrack Play
Video Encode&Decode
OpenGL Measure
Video Editing and Transcoding
Video Filter

Performance Optimization

App start time and code start time

Prevent white screen at startup

Crash collection and analysis

Smooth detection and optimization

ARR
Avoid frequently GC
ViewHolder

Layout optimization

include、merge、ViewStub

Thread optimization

Monitor

User behavior tracking
APM Performance
WebView performance
leakcanary

Memory optimization

OOM
Memory leak
Image compression
Memory Analysis

Reduce app size

Battery optimization

Network optimization

Network Debug
Low Network solution
API optimization
Optimize network data usage

Continuous Integration

Jenkins

8. Others

Python

Linux

kernel source code

SELinux

Memory Map

Docker

9. Android Books

入门

第一行代码

Android群英传

Android编程权威指南

Android编程实战

进阶

Android开发进阶从小工到专家

深入理解Android

Android组件化架构

App研发录

Android 进阶解密

Android 进阶之光

源码

Android源码设计模式解析与实战

Android开发艺术探索

Creating Dynamic UI with Android Fragments

安全

Android安全架构深究

Android软件安全与逆向分析

底层

Android系统源代码情景分析

Android内核剖析

深入理解Android内核设计思想

10. Balance of Breadth and Depth

Team Management

Agile Development

Devops

CodeReview

Code Quality and Specification

Self-management

Back-End

DDD

Microservice

11. Language

Kotlin

Kotlin Coroutine

C、C++(NDK)

SQL(DB)