1.Activity和Service和Application的context是不一样的,Activity的context继承自ContextThemeWrapper。其他继承自ContextWrapper。
2.每一个Activity和Service以及Application的context都是一个新的contextImpl对象。
3.在Activity和Service中,可以通过getApplication()用来获取Application的实例。但是在BroadcastReceiver要通过getApplicationContext()来获取Application的实例。getApplicationContext()作用域更广,任何一个Context的实例,调用该方法都可以获取到Application的实例。
4.创建对话框不能使用Application的Context,只能使用Activity的Context。
5.Context的个数 = Activity个数 + Service个数 + 1,这个1就是Application的Context。
2.安卓各个版本的新特性
1.安卓5.0
- MaterialDesign设计风格
- 支持64位ART虚拟机(5.0之前使用的是Dalvik,他们的区别是:Dalvik,每次运行都要通过即时编译器将字节码编译成机器码,而ART在应用第一次被安装的时候,就会将字节码预先编译成机器码。)
2.安卓6.0
- 动态权限管理
3.安卓7.0
- 多窗口支持
- V2签名
4.安卓8.0
- 优化通知
- 画中画模式
- 后台限制
5.安卓9.0
- 室内WiFi定位
- 刘海屏支持
6.安卓10.0
- 暗黑模式
- 桌面模式:提供类似PC的体验,但是远远不能代替PC
- 屏幕录制
3.JSON
JSON是轻量级的文本数据交换格式,独立于语言,具有可描述性,更易理解。
优点:
1.轻量级的数据交换格式
2.读写更加容易
3.易于机器的解析和生成
缺点:
语义性较差,不如xml直观。
参考文章:https://juejin.im/post/5e5c5e306fb9a07cbe346d71#heading-26