Android知识系统
2025-09-29 13:40:55 0 举报
AI智能生成
基础
作者其他创作
大纲/内容
Android基础
Context
四大组件
Activity
生命周期
启动模式和任务栈的管理
启动模式
应用场景
数据传递、数据返回、数据恢复
启动流程分析
横竖屏切换时,生命周期的变化
Fragment
生命周期
fragment 之间数据交互
fragment 和 activity 数据交互
PendingIntent
点击通知栏跳转
定时任务
更新App Widget内容
更新定位
Service
生命周期
两种方式启动
IntentService
JobIntentService
JobService
IntentService工作原理
前台service
BroadcastReceiver
简单本地广播
开机广播
ContentProvider
View
绘制原理
invalidate
ConstraintLayout
自定义View
Window、Activity、DecorView、RootView之间的关系
动画
帧动画
属性动画
矢量动画
Lottie
属性动画
矢量动画
Lottie
第三方
绘制流程
处理用户交互
样式
selectror
透明度
RecyclerView
viewpager
屏幕适配
判断控件是否绘制完成
Android 消息机制
Handler
Looper
MessageQueue
postDelayed的实现
Handler
原理
Handler 如果没有消息处理,会处于阻塞状态。
Looper是死循环但为什么没有导致ANR
每个线程只能有一个 Looper,一个 Looper 对象只能对应一个消息队列(MessageQueue)。而每个线程可以拥有多个 Handler 对象
removeCallbacksAndMessages
如何做到线程切换
delay不靠谱,不精准,收到系统繁忙度的影响
Android 事件处理机制
事件的分发流程
数据存储
SharePreference、mmkv
SQlite
room
realm
litepal
greendao
sqlcipher加密
工具
文件
okio
LruCache
多进程、多线程
IPC
AIDL
demo
多线程的几种方式
AsyncTask
跨进程通信几种方式
Binder原理
多进程
第三方库
RxJava
音视频
camera2
ffmpeg
编译
Android demo
ffplay、ffprobe
Audio
音频播放
MediaPlayer
SoundPool
AudioManager
三方库
录制
AudioRecord
Video
视频播放
VideoView
MediaPlayer
ExoPlayer
TextureView
使用第三方库
录制
AIDL
JNI
静态绑定
常规用法
编译时确定方法,性能更好
编译时确定方法,性能更好
动态绑定
数据
data序列化
版本控制的标识符serialVersionUID
图像
glide,功能全,维护简单
fresco,大量图片,高级特性
Picasso,简单,轻量
android-gif-drawable
Android高级
组件化:模块化开发
插件化:动态加载库
AOP
lancet
热修复
唤醒、保活
PowerManager 与 WakeLock 屏幕常亮、最大亮度
前台service
架构设计
MVC
MVP
例子
MVVM
Data Binding
View Binding
LiveData
ViewModel
AAC
性能优化
启动速度
启动页
耗时操作异步处理
资源、模块延迟加载、视图懒加载
常用数据缓存
App startup?
包大小
内存泄漏、垃圾回收、OOM
内存溢出
内存泄漏
工具
UI优化:布局、卡顿、绘制
fps流畅度
crash:java、native
anr
bitmap的处理
编译构建
Groovy、kotlin、shell脚本
gradle
编译过程
groovy -> ktx
安全
代码混淆
资源混淆、压缩
反编译常用工具
JNI交互流程
接口完全
本地数据安全
动态调试
smali语法
隐藏API
反射获取方法
跨平台
React Native
Flutter
kotlin
作用域函數
集合操作函数
子主题
协程
例子
好处:异步代码可按同步方式写,避免多次回调,切换线程更方便
网络
tcp三次握手
socket使用
Android7.0网络适配
常用工具
git
命令行
powershell
测试
暗码
stetho
十大神器
Android百大框架源码解析.pdf
glide
retrofit
okhttp
room
ViewModel 和 LiveData
Jetpack Compose
butterknife
rxjava
依赖注入
dagger2
流程
hilt
koin
0 条评论
下一页