Android 开发周报:Google Play 提供试用功能、MVP 架构设计

  • 郭亮

2016 年 3 月 23 日

话题:移动Android语言 & 开发架构

新闻

  1. 《Android N 内部名称曝光:纽约芝士蛋糕》:谷歌已经放出了 Android N 的第一个开发者预览版,最终名称应该为安卓 7.0,根据惯例谷歌每次都会为新系统取一个甜点的代号,这次的甜点是以 N 打头。而现在最新的消息是,Android N 的内部名称也已曝光,为 New York Cheesecake。
  2. 《安卓又现新漏洞:2.75 亿部设备受影响》:以色列软件研究公司 NorthBit 今日发布报告称,由于 Android 系统的媒体服务器和多媒体库 Stagefright 中存在安全漏洞,上亿部 Android 设备可能会遭到黑客攻击。这并非 Stagefright 首次被发现存在安全漏洞,早在去年 10 月时,就有媒体报道称超过 10 亿部 Android 设备可能会因为 Stagefright 中的一个安全漏洞而被入侵。
  3. 《Google Play 提供应用试用功能》:最初,当你在应用商店搜索一个应用时,只能看到相关的文字介绍和几张应用截图。为了让用户在下载前更好地了解一款应用,2014 年,Google 和苹果应用商店先后推出了视频预览功能,允许开发者在介绍页面放一段 15 到 30 秒的视频,来更好地展示自己的应用。现在,Google 决定更进一步,除了截图和视频,用户可以在下载一款应用前,直接试用 10 分钟。

教程

  1. 《Android MVP 架构中的 Presentation 层应该怎么设计》:本文作者发现,当人们从遗留代码库迁移到 MVP 架构时,会面临部分代码不知道放到 Presentation 层还是 UI 层的问题,甚至作者之前的项目还有人评论说:他不知道某段代码是否属于业务代码。如果连这都不能分清的话,今后在分离代码职责的时候一定会犯错误。本文通过介绍作者对 Presentation 层的设计,来理清这些问题。
  2. 《Android 安全攻防战,反编译与混淆技术完全解析(下)》:Apk 如果没有采取一定的安全处理,很容易反编译。这样就有可能泄漏核心技术,因此一款安全性高的程序最起码要做到的一件事就是:对代码进行混淆。混淆代码并不是让代码无法被反编译,而是将代码中的类、方法、变量等信息进行重命名,把它们改成一些毫无意义的名字。混淆代码可以在不影响程序正常运行的前提下让破解者很头疼,从而大大提升了程序的安全性。本文详细讲解了 Apk 的混淆技术。
  3. 《不要写死!天猫 App 的动态化配置中心实践》:不要写死,一个永恒的话题,这个话题会一直持续下去。而动态性这件事,是移动设备 App 当下最热门的话题。在 PC 时代,我们的系统经历了 C/S 到 B/S 的转换,终于实现了最大程度的动态化。而在无线时代,移动设备有他独特的属性,B/S 模式无法满足无线时代的业务需求,至少当下是这样。那么 Native 动态化这条路,就还需要我们坚定的走下去,这条路的尽头可能是另一个 B/S 模式,也可能我们找到了完美的 Dynamic Wireless C/S 模式。本文详细讲解了手机天猫在配置动态化上的心路历程。
  4. 《dagger2 让你爱不释手 - 基础依赖注入框架篇》:使用依赖注入带来的好处非常明显,比如依赖的注入和配置独立于组件之外。因为对象是在一个独立、不耦合的地方初始化,所以当注入抽象方法的时候,我们只需要修改对象的实现方法,而不用大改代码库。依赖也可以注入到一个组件中:我们可以注入这些依赖的模拟实现,这样使得测试更加简单。dagger2 是一款知名的依赖注入库,本文是一篇介绍 dagger2 基础的文章,有助于我们快速上手 dagger2。

  5. 《Butter Knife 源码解析》:ButterKnife 是一个专注于 Android 系统的 View 注入框架,可以让开发人员从繁琐、臃肿的代码中解脱出来,并且实现这些只需要几行代码。ButterKnife 能够提供的注解类型太多了,本文以解析 @Bind 注解为例,为我们介绍了 Butter Knife 的实现原理。

  6. 《大型项目 Gradle 的常用库和版本管理》:随着 Android 开发的成熟,模块越来越多,引入库也随之增加, 需要统一管理这些库和版本号。 根据自己的开发经验, 本文介绍使用 Gradle 参数配置实现库的规范管理。
  7. 《一种快速毛玻璃虚化效果实现》:在 iOS 设备上我们随处可见毛玻璃效果,恰到好处的虚化效果能很好的改善用户体验,能让 App 显得更加优雅。但目前在 Android 上很少见到毛玻璃效果,作者认为一个重要的原因是性能问题,虚化一张图片所需要的时间会因设备而异,如果为了虚化使得用户需要刻意等待,那么就是弊大于利。而本文为我们介绍了一种快速、高效的毛玻璃实现方法。
  8. 《天猫 App A/B 测试实践》:对于目前 Native 这种开发环境下,每一个产品决策会变得异常谨慎,因为一个错误的决策要持续整个版本周期才可能被修复。所以具备快速验证和及时修正这两个能力就显得非常重要,打造这样的能力需要一个完整的解决方案。天猫的团队认为这个方案是一个以 A/B 测试为核心,结合周边多个系统能力,共同组成的一个试错平台。在这个平台上,团队中不管是业务方还是工程师,都可以快速应变,不畏惧出错,变得灵动起来。本文为我们解析了天猫团队的 A/B 测试实践。
  9. 《Android 界面性能调优手册》:界面是 Android 应用中直接影响用户体验最关键的部分。如果代码实现得不好,界面容易发生卡顿且导致应用占用大量内存。本文是一篇界面性能优化的高质量文章,作者结合自己的实践经验,讲解了渲染知识、检测及调试技巧等。并且给出了实用的界面优化建议。

开源项目

  1. BottomBar:这是一具 Material Design 风格的底部切换控件。
  2. NodeFlow:NodeFlow 提供了一个简单的方法来可视化多级内容,能够完美显示项目中的分类 / 子类。
  3. RxJavaApp:RxJavaApp 是一个用于学习 RxJava 操作符的完整项目,该项目有助于开发者快速上手 RxJava。
  4. CoCoin:CoCoin 是一款多视图记账 APP,功能比较全面,涉及到报表绘制、界面自定义等多个知识点。

感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

移动Android语言 & 开发架构