Service生命周期:
call startservice:oncreate->onStartCommond->onDestory (绑定关系,退出就一起退出。多次start之后调用一次oncreate)
call bindService: onCreate->onBind ->onUnbind->onDestory
UncaughtExceptionHandler
MVVM:View,ViewModel(业务逻辑操作),Model(数据层)
LiveData,Data Binding
MVP:Model,Presenter,View
OnMeasure()——>OnLayout()——>OnDraw()
OnMeasure():测量视图大小
OnLayout():确定View位置
OnDraw():绘制视图
ViewGroup包含onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent三个相关事件。
View包含dispatchTouchEvent、onTouchEvent两个相关事件。
帧动画:一帧一帧
补间动画:Alpha、Scale、Translate、Rotate
属性动画:旋转,放大,缩小
ClassLoader
内存泄漏:
Handler 引起的内存泄漏
单例模式引起的内存泄漏
非静态内部类创建静态实例引起的内存泄漏
注册/反注册未成对使用引起的内存泄漏
资源对象没有关闭引起的内存泄漏
页面掉帧卡顿的原因:
(1)过于复杂的布局.
(2)UI线程的复杂运算
(3)频繁的GC
Standard:标准的启动模式
SingeTop:如果启动的activity已经位于栈顶,那么就不会重新创建一个新的activity实例
SingleTask:如果位于activity栈中,就会复用该activity
singlestance的启动模式的activity会单独的开启一个共享栈,这个栈中只存在当前的activity实例对象。
onCreate -> onRestart(不一定) -> onStart -> onResume -> onPause -> onStop -> onDestory
onAttach -> onCreate -> onCreateView -> onActivityCreate ->onStart -> onResume -> onPause -> onStop -> onDestroyView -> onDestroy() -> onDetach
广播
onStart(Intent intent) :会多次触发onStart
onBind(Intent intent) :不会多次触发onStart
Message
MessageQueue
Handler
Looper
创建线程有两种方式:
一、继承 Thread 类,扩展线程。
二、实现 Runnable 接口。