关于开发模式的感想
1 mvp 模式
其实很简单 mvp模式 就是把网络请求的那边放到一个类。然后设置参数回调就行了,在需要的地方 实现回调接口就可以拿到数据。但是用过之后发觉有很大的问题。就是容易陷入 代码臃肿。特别是在业务逻辑比较复杂的地方。 比如我只需要这个表的查询 。我在其他地方有用到。但是我在使用这个查询的回调的时候却不得不实现其他的方法回调。虽然我不会做处理。但是这样会导致代码的冗余.所以不是很好。
2 mvvm 模式
网上有很多就是说的地方。其实在没用databing 之前 我不是很理解。最近用的很多 然后习惯之后 。回过头一看才理解到。databing 确实是个好东西。但是在gradle 3.2以上版本 编译坑死人。经常报错。只能降低到2.14.1才好编译。个人对于mvvm.理解到 好的一点就是 viewmodel 这个点。如果业务不算是复杂 。就真的就可以做到就是说ui 和业务逻辑完全隔离开。今晚看了谷歌公众号之后,又理解到一个新的点 就是你页面上的值就是viewmodel 去设置的。所以说你的页面在摧毁和重建的时候。可以用内存中缓存的viewmodel 去拿到值。就没有必要去每次都是获取数据。通过设置值进去xml ui 这样的方式 可以让你的viewmodel 专注于业务逻辑。在activity 中你可以通过用event bus 来做为一些 必要的操作的ui 更新和必要的接口处理请求数据提交。这样代码就会少掉一些。
但是这还不够。因为我们知道 比如说界面上多几个输入框。如果我们需要监听 那么代码一点会变得很多。很烦。
于是 rxjava 就出现了
rxjava 有个很重要的点就是可以摆脱回调地狱。而且在复杂的业务逻辑可以保持代码的整洁和高效的可读性。写得很好的文章技术抛物线那个文章网上有 可以自己看。多写就理解到了。
3 自从把thinker 移除之后 然后再在4.4版本的虚拟机包类找不到。不出意外就是发生方法书过多了。因为是Dalvik.看如何只讲thinker 分割那块移植进来或者 直接用心得阿里巴巴的Sophix 移植进来。
4 理解到eventbus 和广播作为比较。广播是比较重量级的。但是功能很齐全。eventbus 虽然轻量级。但是很方便。消耗少。越来越觉得安卓的binder机制设计是真心厉害。好牛逼。
5 关于android系统的启动过程: 1 首先是是启动linux 内核。有一个叫做zygote。在这个进程中会去加载 我们安卓的系统资源。这个地方是通过配置文件去实现的是可以修改的。然后加载完成系统资源之后然后就启动完成了。然后我们的android每个应用都是运行在沙盒机制中,好处是及时这个APP崩溃不会影响其他的app.然后是每次启动一个app 我们的android 的application 会起fork 一个进程在liunx 中。因为复制比创建更快。所以每个应用都是对应的一个独立的Linux进程管理的。但是有个疑问就是。我们知道android 系统是运行在Dalvik 虚拟机中的。所以在frok进程的时候。这个时候代表是有2个虚拟机了吗?待我看完android内核在来解释
网友评论