Android基础知识
2024-01-05 09:35:57 10 举报
AI智能生成
Android是一个由Google开发的开源移动操作系统,专为触摸屏移动设备(如智能手机和平板电脑)设计。它包括一套丰富的系统功能,如应用程序框架,丰富的用户界面组件,以及用于联网和媒体功能的API。Android应用程序使用Java编程语言编写,并运行在Android虚拟机(Dalvik或ART)上。该操作系统支持多种硬件配置,包括不同的处理器和屏幕尺寸。Android生态系统包括开发人员,设备制造商,运营商和消费者,共同推动创新和发展。
作者其他创作
大纲/内容
操作系统
并发、并行
线程
线程池
参数
线程池结构
volatile
原子性、可见行
保证有序
锁
synchronized(可重入)
lock
ReadWriteLock
ReentrantLock
atomic
CountDownLatch
多线程问题
进程
进程间通信
管道
信号量
共享内存
socket
binder
aidl
ContentProvider
个数(1MB-8KB)
多线程
用户态和核心态
网络
Https原理
浏览器如何验证HTTPS证书的合法性
浏览器如何验证HTTPS证书的合法性2
对称、非对称算法
Https原理
网络框架
OKHttp
Retrofit
注解
设计模式
简单工厂
抽象工厂
代理模式
静态代理
动态代理
装饰模式
策略模式
观察者模式
责任链模式
builder模式
单例
为什么要用volatile
懒汉
饱汉
内部类
双重校验
枚举
mvc、mvp、mvvm区别
java
并发
线程模型
ULT、KLT(java使用的是KLT)
线程
优先级
MAX_PRIORITY:10
MIN_PRIORITY:1
NORMAL_PRIORITY:5
新建线程将继承它的父线程的优先级
线程调度算法
先进先出(FIFO)
优点
任务切换开销少
吞吐量大
先来先做公平性
缺点
响应时间长
最短耗时任务优先(SJF)
优先调度耗时时间短的(提前预知任务的耗时情况,任务的剩余时间)
优点
响应时间比较低
缺点
耗时时间长的任务一直在等待,形成饥饿
频繁切换线程上下文,额外开销大
时间片轮转(RR)Round Robin
每个任务都分时间片
任务完成时间顺序是以耗时时间从小到大排列
优点
每个任务都是公平调度
哪怕耗时短的任务,在耗时长的任务后面,可以快速调度只是耗时短的任务
缺点
上下文切换开销大,尤其cpu缓存
时间片如何设置?(设置时间短了,调度开销增大,设置时间长了,那最极端的就是FIFO一样)
适用场景
耗时差不多的任务
不适用场景
任务需要大量计算,对IO读写任务
最大最小公平算法
锁
volatile
缓存一致性
单例中使用volatile
list
CopyOnWriteArrayList原理
map
HashMap
对象
继承
聚合
内存
内存区域
内存模型
类的加载方式
双亲委派模型
BootClassLoader
PathClassLoader
DexClassLoader
类的结构
垃圾回收机制
怎么标记一个对象是否可被回收
回收算法
引用
强引用
软引用
弱引用
虚引用
反射
android
四大组件
Activity
activity、window、view关系
生命周期
当由Activity A跳转到Activity B时的执行顺序 > A的onPause() > B的onCreate() > B的onStart() > B的onResume() > A的onStop()
当按返回按钮由Activity B返回到Activity A时的执行顺序 > B的onPause() > A的onStart() > A的onResume() > B的onStop() > B的onDestroy()
ContentProvider
Service
Broadcast
Binder
Android为什么选择使用binder
UI
绘制机制
RecyclerView原理
对比listview优点
事件机制
事件类型
ACTION_DOWN
ACTION_MOVE
ACTION_UP
ACTION_CANCEL
事件传递机制
动画
帧动画
间补动画
属性动画
bitmap
SurfaceView
TextureView
multiDex
主dex
Odex
Handler
原理
如何进行线程切换
Looper死循环
handler内存泄漏原因
内部类持有外部类引用
threadLocal
ANR
原因
activity
service
broadcast
检测
OOM
内存泄漏
没反注册
context没有释放
怎么检测
图片
图片占用内存大小
文件
卡顿
层级深
主进程耗时
字符串格式化
正则
反射
启动流程
打包流程
加固
WebView
如何优化容器性能
容器
HashMap
HashTable
ConcurrentHashMap
CopyOnWriteArrayList
框架
事件总线
EventBus
图片框架
Glide
DownloadImage
Volley
Picasso
Fresco
路由
ARouter
响应式编程
Observer模式
Observerable
Observer
Rxjava
优化
包大小
秒开
启动速度
多渠道打包
混淆
哪些不能混淆
Kotlin
项目
你认为你印象比较深的一件事情
收藏
0 条评论
下一页