Android 知识技能图谱
2021-10-11 16:20:35 3 举报
AI智能生成
Android 开发相关的知识技能图谱
作者其他创作
大纲/内容
跨平台
H5
React Native
Weex
Flutter
小程序
Kotlin
数据结构和算法
数组、链表
栈和队列
树、堆、图
散列表
常用算法
排序
双指针、滑动窗口、字符串
递归、分治、二分
回溯、贪心、动态规划
海量数据处理
网络
分层模型
TCP
UDP
HTTP、HTTPS
数据分析
项目管理
面试题精选
Android基础
Activity
为什么会有Activity?
生命周期方法
启动模式和任务栈的管理
standard、singleTop、singleInstance、singleTask
应用场景
intent filter
main
category
Intent flag
NEW TASK
CLEAR TOP
SINGLE TOP
task affinity
Activity启动流程
首次启动:首次安装该 App 时的启动事件
热启动:进程还在,从后台唤醒到前台
冷启动:进程不再
数据恢复
数据保存
数据恢复
横竖屏切换时,生命周期的变化
扩展
影响 Activity 启动速度的因素有哪些?如何优化 Activity 的启动速度?
微信、支付宝支付界面的启动方案如何设计,有哪些借鉴意义?
Activity 的数据恢复的其他方案有哪些(至少 3 种),这些方案各有哪些优劣?
LifeCycle 如何观察 Activity 的声明周期?使用了何种设计模式,阐述下核心的设计流程
四种启动模式,各自典型的应用场景有哪些,如果自己设计管理 Activity 的任务栈,有哪些思路可以参考?
从 Activity 关键生命周期方法中,如何统计一个 Activity 的用户使用时长,在做的时候,应该注意哪些问题?(类似友盟、TalkingData 这样的数据分析平台,会提供基本的应用使用数据,如果自己实现该功能,应该怎么做?)
Activity 、Window和 View 之间的关系
Service
定义
是什么
可以在后台长时间执行而没有用户交互的组件
Service 与 Thread 的区别?
生命周期管理
主动启动
绑定启动
onCreate
onStartCommand
onBind
onDestory
分类
foreground
background
bound
派生类
IntentService
JobIntentService
JobService
BroadcastReceiver
应用场景
类型
注册方式
系统广播发送和接收的实现原理
本地广播发送和接收的原理
ContentProvider
系统的 ContentProvider
自定义 ContentProvider
不同版本之间从差异
安全问题
Fragment
Fragment 设计的初衷
解决多屏适配的问题
关键生命周期、状态管理、懒加载
添加 Fragment 的方式
相关的类
FragmentManager
FragmentTransaction
Fragment数据传输方式
Fragment 与 Activity 之间的数据交互方式
Fragment 之间的数据交互方式
Fragment嵌套
官方控件的理解
ListView/RecyclerView
Dialog/Popup
ConstraintLayout
Toolbar/StatusBar
ViewPager/ViewPager2
WebView
Android中常用的布局,如何做UI适配
Jetpack
LIfeCycle
ViewModel
LiveData
Databinding
Android 消息机制
Handler
Looper
MessageQueue
postDelayed的实现
Android 事件处理机制
事件的分发流程
事件的消费流程
事件冲突的解决方案
自定义View
View、ViewGroup绘制流程
自定义View的效率问题
Window、Activity、DecorView、RootView之间的关系
动画
帧动画
属性动画
矢量动画
Lottie
基础库的理解和应用
Glide
OKHttp
Rxjava
Retrofit
EventBus
数据存储
SharePreference
多线程、多进程
异步
效率问题
SQlite
常用的关键字
sql 语法
事务
ORM框架
GreenDAO
Room
文件
文件锁
多线程、多进程
MMKV
实现原理
效率特点
mmap 的原理机制
LruCache的原理解析
App的主题、资源
换肤
资源压缩
多进程、多线程
多进程
Linux IPC
管道
socket
信号量
消息队列
共享内存
Android
Binder
Intent
共享文件
AIDL
ContentProvider
Socket
多线程
线程同步
线程池
多进程
Android高级知识
性能优化
启动速度
内存、内存泄露、OOM
卡顿
UI绘制
安装包大小
native crash、ANR
组件化
组件的原子设计
路由机制
组件之间解耦方案设计
状态、数据同步
插件化
四大组件的加载
资源加载流程、资源冲突解决方案
插件的管理
AOP
AspectJ
ASM
https://github.com/eleme/lancet/blob/develop/README_zh.md
Android进程间通信方式
Binder
AIDL
Broadcast
权限处理
热修复原理
Tinker
Roboost
Android系统
系统架构
Dalvik
ART
系统启动
类加载
APK打包
APK 安装
播放器
Java基础知识
字符串
泛型擦除
容器
StringBuilder
集合
ConcurrentHashMap
Set
Map
HashMap
HashTable
HashSet
ArrayMap
SparseArray
List
ArrayList
LinkedList
IO
NIO
OKIO
Exception
同步
Volatile
wait
synchronized
lock
死锁
乐观锁
可重入锁
Java并发
Java虚拟机
JVM内存模型
JVM内存结构
GC
四种引用
ClassLoader
架构设计
MVC
MVP
MVVM
AAC
设计模式及原则
6大原则
开闭原则
对扩展开放,对修改关闭
单一职责
一个类、方法职责单一
依赖倒置
高层次模块不依赖低层次模块的具体实现,抽象不应该依赖细节
里式替换
引用基类的地方都能替换成子类
接口隔离
类之间的依赖关系应该建立在最小的接口上
迪米特原则
一个类对其他的对象,应该有尽量少的了解
23种模式
创建型(5)
结构型(7)
行为型(11)
Android中的具体应用场景
动态代理原理及其实现
性能优化
启动速度
内存、内存泄露
FPS
UI绘制
安装包大小
ANR
OOM
native crash
工程效率
AS 中的构建过程
打包方式、编译效率
持续交付、定制化打包
Groovy、kotlin、shell脚本
lint
编码规范
静态代码扫描
Gradle Transform
Javassist
ASM
安全
代码混淆
资源混淆、压缩
反编译常用工具
JNI交互流程
接口完全
本地数据安全
动态调试
smali语法
收藏
收藏
0 条评论
下一页