项目实战-SM

知识点

Animator

  • 参考文章
    • Android群英传
    • Android艺术开发
    • 走进绚烂多彩的属性动画-Property Animation(上篇)
    • 走进绚烂多彩的属性动画-Property Animation之TimeInterpolator和TypeEvaluator(下篇)
    • 属性动画-Property Animation之ViewPropertyAnimator 你应该知道的一切
    • Android布局动画之animateLayoutChanges与LayoutTransition

Application

  • 参考文章

    • Android基础之自定义Application
    • Application和四大组件启动时的方法顺序和相关注意事项
    • Activity生命周期管理
    • Component监听onLowMemory& onTrimMemory
  • 单例实现

    1. 定义静态成员变量:private static MyApplication mApplication = null;
    2. 在onCreate赋值:mApplication = this;
    3. 静态方法提供实例:{@link #getApplication()}
  • 设置全局Activity生命周期回调监听: registerActivityLifecycleCallbacks()

AppOpsManager

  • 参考文章
    • AppOpsMananger source

AsyncTask

  • 参考文章
    • Android开发艺术P392
    • 异步任务AsyncTask的使用与源码分析

ConcurrentHashMap

  • 参考文章
    • Android开发进阶P88
    • ConcurrentHashMap总结

ConstraintLayout

  • 参考文章
    • Android新特性介绍,ConstraintLayout完全解析

CoordinatorLayout + AppBarLayout + Toolbar

  • 参考文章
    • CoordinatorLayout的使用如此简单
    • 玩转AppBarLayout,更酷炫的顶部栏

Data Binding

  • 参考文章
    • DataBinding使用全面详解

DrawerLayout-侧滑菜单

  • 参考文章
    • DrawerLayout和NavigationView使用详解

ExecutorService

  • 参考文章
    • Android开发进阶P81
    • Android开发艺术P406

ExpendableListView

  • 参考文章
    • Android中ExpandableListView的使用(一)

Handler

  • RemoveAll防止引起内存泄漏

HttpUrlConnection

  • 参考文章
    • Android开发进阶P109
    • HttpURLConnection

invalidate()和requestLayout()的区别

  • 参考文章
    • Android自定义View之measure、layout、draw

JackSon

  • 参考文章
    • Jackson使用
    • FastJson、Gson、Jackson json解析性能比较

JSONArray

  • 参考文章
    • JSONObject和JSONArray区别及基本用法

LinkedBlockingQueue

  • 参考文章
    • Android开发进阶P88
    • JDK源码分析—— ArrayBlockingQueue 和 LinkedBlockingQueue

MVP模型

  • 参考文章
    • 教你认清MVC,MVP和MVVM
  • 参考文章
    • Android5.0之NavigationView的使用
    • 自己实现 NavigationView

Observable和Observer

  • 参考文章
    • Android之Observer和Observable

Pair

  • 参考文章
    • Android 表示一对“组元素”的Pair类

ProgressDialog

  • 参考文章
    • ProgressDialog使用总结

Reflect 反射

  • Class对象的获取
    1. 对象的getClass()方法;
    2. 类的.class(最安全/性能最好)属性;
    3. 运用Class.forName(String className)动态加载类,className需要是类的全限定名(最常用) - 进行初始化
    4. context.getClassLoader().loadClass(String className) - 不进行初始化
  • 参考文章
    • Java 反射

String

  • format
    • String.format详解

TabLayout + ViewPager + FragmentStatePagerAdapter

  • 参考文章
    • Design库-TabLayout属性详解
    • Design库-TabLayout仿京东商品详情Tab

TypedArray + TypedValue

  • 参考文章
    • Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
    • ?attr/selectableItemBackground的使用(TypedArray,TypedValue)

Thread.UncaughtExceptionHandler

  • 参考文章
    • JAVA多线程之UncaughtExceptionHandler
    • Android Thread.UncaughtExceptionHandler捕获

volatile

  • Java并发编程:volatile关键字解析

WeakReference-弱引用

  • 参考文章
    • Android开发优化之的强引用、软引用、弱引用的使用

设计模式

装饰者模式

  • 参考文章
    • Android设计模式P403

单例模式

  • 参考文章
    • Android设计模式P23
    • Java帝国之单例设计模式

性能优化

绘制优化

  • OverDraw过度绘制
    • getWindow.setBackgroundDrawable(null)

你可能感兴趣的:(Android开发)