在上一篇分享中,我介绍的主题是如何在一个 Android 项目中使用 AppJoint 进行组件化。有读者找到我说:我知道组件化很美好,但是项目改造总是需要成本的,而且这个成本是我们目前承受不了的,我们目前能做的最多的只能是 模块化,即把主 app 模块的功能拆出来,放到新的 library 模块里,但目前面临的最直接的问题就是,拆出来的新模块如何调用主 app 模块里的方法。能否不用组件化那一整套工具,先用 最轻量级的方法 解决这个跨模块方法调用的问题?
在上一篇分享中,我介绍的主题是如何在一个 Android 项目中使用 AppJoint 进行组件化。有读者找到我说:我知道组件化很美好,但是项目改造总是需要成本的,而且这个成本是我们目前承受不了的,我们目前能做的最多的只能是 模块化,即把主 app 模块的功能拆出来,放到新的 library 模块里,但目前面临的最直接的问题就是,拆出来的新模块如何调用主 app 模块里的方法。能否不用组件化那一整套工具,先用 最轻量级的方法 解决这个跨模块方法调用的问题?
Are you building an Android App with multiple modules? If so, I guess you maybe facing the same problem as me, that is: Cross Module Method Invocation. It’s easy to call methods from library modules in our application module. But it’s annoying to invoke methods from the application module in our library modules.
Android 组件化的概念大概从两年前开始有人讨论,到目前为止,技术已经慢慢沉淀下来,越来越多团队开源了自己组件化框架。本人所在团队从去年开始调研组件化框架,在了解社区众多组件化方案之后,决定自研组件化方案。为什么明明已经有很多轮子可以用了,却还是决定要自己造个新轮子呢?
本文是 “RxJava 沉思录” 系列的最后一篇分享。本系列所有分享:
我们在本系列开篇中,曾经留了一个问题:RxJava 是否可以让我们的代码更简洁?作为本系列的最后一篇分享,我们将详细地探讨这个问题。承接前面两篇 “时间维度” 和 “空间维度” 的探讨,我们首先从 RxJava 的维度 开始说起。
本文是 “RxJava 沉思录” 系列的第三篇分享。本系列所有分享:
在上一篇分享中,我们应该已经对 Observable 在空间维度上重新组织事件的能力 印象深刻了,那么自然而然的,我们容易联想到时间维度,事实上就我个人而言,我认为 Observable 在时间维度上的重新组织事件的能力 相比较其空间维度的能力更为突出。与上一篇类似,本文接下来将通过列举真实的例子来阐述这一论点。
本文是 “RxJava 沉思录” 系列的第二篇分享。本系列所有分享:
在上一篇分享中,我们澄清了目前有关 RxJava 的几个最流行的误解,它们分别是:“链式编程是 RxJava 的厉害之处”,“RxJava 等于异步加简洁”,“RxJava 是用来解决 Callback Hell 的”。在上一篇的最后,我们了解了 RxJava 其实给我们最基础的功能就是帮我们统一了所有异步回调的接口。但是 RxJava 并不止于此,本文我们将首先介绍 Observable 在空间维度上重新组织事件的能力。
本人两年前第一次接触 RxJava,和大多数初学者一样,看的第一篇 RxJava 入门文章是扔物线写的《给 Android 开发者的 RxJava 详解》,这篇文章流传之广,相信几乎所有学习 RxJava 的开发者都阅读过。尽管那篇文章定位读者是 RxJava 入门的初学者,但是阅读完之后还是觉得懵懵懂懂,总感觉依然不是很理解这个框架设计理念以及优势。
这是关于如何在 Android 中封装业务流程经验分享的第二篇,第一篇在这里。所谓 业务流程 ,指的是一系列页面的集合,这些页面肩负着一个特定职责,负责和用户交互,从用户端收集信息。业务流程有时候由用户主动触发,而有时候是由于某些条件不满足而触发,当流程完成以后,有时候只是简单地回到发起流程的页面,用流程的结果更新那个页面;而有时候是继续之前 由于触发流程而中断 的操作;还有些时候是则是转入新的流程。
如果你是一个有经验的 Android 程序员,那么你肯定手写过许多 onSaveInstanceState
以及 onRestoreInstanceState
方法用来保持 Activity 的状态,因为 Activity 在变为不可见以后,系统随时可能把它回收用来释放内存。重写 Activity 中的 onSaveInstanceState
方法 是 Google 推荐的用来保持 Activity 状态的做法。
有一定实际 Android 项目开发经验的人,一定曾经在项目中处理过很多重复的业务流程。例如开发一个社交 App ,那么出于用户体验考虑,会需要允许匿名用户(不登录的用户)可以浏览信息流的内容(或者只能浏览受限的内容),当用户想要进一步操作(例如点赞)时,提示用户需要登录或者注册,用户完成这个流程才可以继续刚刚的操作。而如果用户需要进行更深入的互动(例如评论,发布状态),则需要实名认证或者补充手机号这样的流程完成才可以继续操作。