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