Android 开发周报:谷歌发布 50 美元手机、Dexposed 框架使用详解

  • 郭亮

2015 年 8 月 10 日

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

新闻

  1. 《谷歌将发布 Android One 手机 定价才 50 美元》:Android One 是谷歌在去年推出的一项计划,该公司旨在通过这项计划让 Android 系统覆盖更多的发展中国家市场。为了实现这个目的,谷歌已经与众多 OEM 伙伴联手打造了一批极具竞争力的机型。日前谷歌东南亚负责人拉贾恩•阿南丹(Rajan Anandan)表示,公司将在未来几周针对 Android One 推出一个全新的计划,这一次它的目标是推出售价 50 美元(约合 310 元人民币)的智能手机。
  2. 《苹果开始做 Android:好大的“阴谋”》:近日,媒体注意到,苹果公司在官网发布招聘启事,招募安卓开发员,要开发更多新的安卓软件。或许苹果开发安卓软件,并不简单是为自己的互联网服务开拓用户,到目前为止,苹果只有两个安卓软件,分别是苹果音乐的安卓客户端(尚未发布正式版)以及一个帮助安卓用户迁移数据到苹果手机的工具。苹果招聘启事强调,招聘岗位将开发“新“的安卓工具。
  3. 《数据展示有多少人从 Android 转投 iOS》:在上个月的苹果季度财报会议上,苹果公司 CEO 蒂姆·库克表示苹果公司上季度从 Android 阵营转投到 iOS 阵营的人数创了新高。当然出现用户转换阵营的现象并不奇怪。此前很多调查显示 iOS 用户的忠诚度高于 Android 用户。可是转换阵营的人数到底有多少,至今都没有相关数据说明。

教程

  1. 《Android 平台免 Root 无侵入 AOP 框架 Dexposed 使用详解》:Dexposed 是阿里巴巴无线事业部最近开源的 Android 平台下无侵入运行期 AOP 框架,该框架基于 AOP 思想,支持经典的 AOP 使用场景,可应用于日志记录、性能统计、安全控制、事务处理、异常处理等方面。针对 Android 平台,Dexposed 支持函数级别的在线热更新。本文作者详细介绍了 Dexposed 的使用方法,相信能够帮助我们快速上手这个强大的工具。
  2. 《Android Hotpatch 系列之项目介绍》:阿里开源的 Dexposed 框架提供了在线热更新功能,但很多同学对这个技术还是感觉比较陌生,不知从何下手。比如是否需要自己去写服务器端代码?APK 如何下载到本地?如何实现 APK 替换?现在这些都不是问题了,本文作者是手淘的开发人员,以 Demo 的形式给出了客户端 + 服务器端的完整实现。
  3. 《Android Context 是什么?》:Context 对于 Android 开发人员来说并不陌生,项目中我们会经常使用 Context 来获取 APP 资源、创建 UI、获取系统 Service 服务、启动 Activity、绑定 Service、发送广播、获取 APP 信息等等。那么 Context 到底是什么?Context 又是怎么来实现以上功能的?在什么场景下使用不同的 Context?一个 APP 中总共有多少个 Context?本文作者从源码角度详细分析了以上这些问题。
  4. 《Android MVPR 架构模式》:全面的单元测试能提高内部系统的代码质量,因为系统的每一个组件都需要被测试,因此每个单元都需要在系统外被构建,在测试环境中进行测试。对对象进行单元测试需要创建该对象,提供该对象需要的依赖,并与它进行交互,最终检验测试环境的输出是否与预期一致。因此,为了让一个类易于进行单元测试,类的依赖必须明确,而且能够轻易地被替代和明确被调用和验证的责任。在软件工程领域中,这就意味着代码必须松耦合、高内聚。阅读文章,了解作者是如何规划一个适合单元测试的架构。
  5. 《谈谈 Android Material Design 中的 Tint》:我们在使用 appcompat-v7 包的时候,为了实现 Material Design 的效果,会去设置主题里的几个颜色,重要的比如 primaryColor,colorControlNormal,colorControlActived 等,而我们使用的一些组件,比如 EditText 就会自动变成我们想要的背景颜色,在背景图只有一张的情况下,这样的做法极大的减少了 APK 包的大小。实现的方式就是用一个颜色为背景图片设置 Tint(着色)。本文详细讲解了 Tint 的相关知识。
  6. 《Cool Android API 整理》: 作者根据网上的一些文章,整理了 Android 中那些我们平时常用或者不常用,但是很 Cool 的 API。如果大家有好的 tips 也可以给作者留言推荐。
  7. 《Android 应用开发之所有动画使用详解》:动画是我们开发移动应用最常用到的知识之一,Android 中的动画可以分为三大类: View Animation(视图动画)、Drawable Animation(Drawable 动画)、Property Animation(属性动画)。View 动画只能够为 View 添加动画,如果想为非 View 对象添加动画须自己实现。并且 View 动画支持的种类很少,尤其是他改变的是 View 的绘制效果,View 的属性其实并没有改变。Property 动画弥补了 View 动画的缺陷,你可以为一个对象的任意属性添加动画,对象自己的属性会被真的改变。本文详细分析了 Android 中的这三种动画,并且分别给出了详细的使用说明。
  8. 《Android 上玩玩 Hook?》:还没有接触过 Hook 技术的读者一定会对 Hook 一词感觉到特别的陌生,Hook 英文翻译过来就是“钩子”的意思,那我们在什么时候使用这个“钩子”呢?在 Android 操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步的向下执行。而“钩子”的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子勾上事件一样。并且能够在勾上事件时,处理一些自己特定的事件。阅读文章,看看如果在 Android 上玩 Hook。

开源项目

  1. LayoutCast:LayoutCast 可以在应用不重启的情况下,将 res 文件夹下的改动直接同步到手机上。使用 LayoutCast,可以节约 Android 开发者的大量编译等待时间,非常适合真机调试界面的时候使用,推荐每一位开发者安装该利器。
  2. AndroidSweetSheet:AndroidSweetSheet 是一个富有动感的 Sheet(选择器),实现效果很赞。这里是作者关于该控件的详细说明。
  3. Android-RatioLayout:RatioLayout 是屏幕适配、多样布局的又一神器,使用 RatioLayout 可以自定义 View 的宽高比例。该库重写了 Android 中的 TextView、Button 等大部分 View。开发者不再需要通过代码去修改 View 的比例,所有的操作完全可以通过 xml 去实现。

工具

  1. AWebDB:AWebDB 是一款可以通过浏览器查看 Android Sqlite Database 的库。
  2. Android Studio 1.3.1 Beta 发布:近日 Google 发布了 Android Studio 1.3.1Beta 版本,这里是墙内下载地址。

感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

移动Android语言 & 开发架构