知识点
Animator
- 参考文章
Application
参考文章
单例实现
- 定义静态成员变量:private static MyApplication mApplication = null;
- 在onCreate赋值:mApplication = this;
- 静态方法提供实例:{@link #getApplication()}
设置全局Activity生命周期回调监听: registerActivityLifecycleCallbacks()
AppOpsManager
AsyncTask
ConcurrentHashMap
ConstraintLayout
CoordinatorLayout + AppBarLayout + Toolbar
Data Binding
- 参考文章
DrawerLayout-侧滑菜单
ExecutorService
ExpendableListView
Handler
- RemoveAll防止引起内存泄漏
HttpUrlConnection
invalidate()和requestLayout()的区别
JackSon
JSONArray
LinkedBlockingQueue
MVP模型
- 参考文章
NavigationView
Observable和Observer
Pair
ProgressDialog
- 参考文章
Reflect 反射
- Class对象的获取
- 对象的getClass()方法;
- 类的.class(最安全/性能最好)属性;
- 运用Class.forName(String className)动态加载类,className需要是类的全限定名(最常用) - 进行初始化
- context.getClassLoader().loadClass(String className) - 不进行初始化
- 参考文章
String
- format
TabLayout + ViewPager + FragmentStatePagerAdapter
TypedArray + TypedValue
- 参考文章
Thread.UncaughtExceptionHandler
volatile
WeakReference-弱引用
设计模式
装饰者模式
- 参考文章
单例模式
性能优化
绘制优化
- OverDraw过度绘制
- getWindow.setBackgroundDrawable(null)