日常总结 (MVP 网络框架 屏幕适配)
1.MVP如何进行的抽取封装(基类)
- BaseModel
由于model层大多是数据跟业务逻辑处理,个个model接口与实现类可以说是层出不穷。
- BaseView
视图层可以加入每个视图所需要的视图方法(可以不写)
- BasePresenter
在presenter层中,我们一般要从外获取对应view层以及model层的实例,从而在该类中进行各种操作,为了追求更直接,省去转型的封装方式,我们使用泛型来规定BasePresenter中的view及model实例字段。
- BaseActivity / BaseFragment
在视图层中我们不难发现,在该模式下的activity/fragment中都会有对应presenter的引用,通过该引用设置view层接口。这一块转个方向也是可以抽取封装的,同样用泛型代替。
具体详解:
2. 网络框架的封装
网络封装的一个思维导图
具体详解:
3.还进行过哪些内容的封装:
1.Log封装类
2.sharedPreferences封装类
3.ToastUtils封装类
4.SnackbarUtil封装类
...这里就不再一一详述了
4.屏幕适配的意义和注意事项
由于Android碎片化严重,导致开发中一套代码在不同手机上运行起来效果不是很多好,兼容性不是很好,这就需要对不同分辨率,不同屏幕大小的手机做屏幕适配。屏幕适配主要解决手机屏幕和像素多样化的问题,也就是我们的App能够适应各种各样的手机屏幕。
5.具体适配方案及原理
1.官方方案:
密度无关像素 (dp):密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。
使用尺寸和密度特定资源:使用不同限定符创建资源,如
android-percent-support百分比支持库与ConstraintLayout:这两个就不细说。
2.dimens:通过脚本把既定分辨率按比例生成dimen供引用
3.非官方百分比布局库:目前比较好的是鸿洋的增加版官方百分比库
4.还是鸿洋的AutoLayout
...etc
参考文档