Android 开发周报:Android 全球份额达到 81%

阅读数:1699 2015 年 2 月 4 日

话题:Android语言 & 开发架构

新闻

  1. 《5.0 版本 1 月增长 1.6%》:谷歌周一更新了 Android 版本分布图。最新版的 Android 5.0 Lollipop 终于在上月呈现增长,且增势压过 4.4 KitKat 的风头。KitKat 是在一月到二月期间,除了 Lollipop 外,唯一仍保持份额上涨的旧版本。
  2. 《2014 年 Android 手机卖出 10 亿多部,全球份额 81%》:Strategy Analytics 公司最新数据显示,2014 年全球智能手机出货达 12.8 亿,其中 Android 手机出货 10.42 亿部,占全球 81% 市场份额;苹果手机出货 1.93 亿部,占 15% 市场份额;Windows Phone 出货 3900 万,市场份额显得微不足道。Android 主要在南美、亚洲等新兴市场实现增长,欧美等地区市场已几乎饱和,各手机厂商都在关注开辟新兴市场。更多廉价手机的出现是 Android 发力的重要手段,而这也确实让 Android 市场进一步扩张。
  3. 《开发不易!2015 年移动应用开发趋势总结》:硬件性能的提升,新技术的出现都是影响移动应用发展的重要因素,而最近几年里,这两个方面都有着不小的进步。从不断增加的屏幕分辨率,64 位处理器,到支持所有平台开发的 HTML5 技术逐步成熟,每个方面都不容小觑。不过,在这种情况下,最辛苦的应该是开发人员,因为他们的技能也需要随之提升。但在刻苦专研技能的同时,也有必要了解一下 2015 年移动应用开发的发展趋势,从而为自己的努力找到方向。

教程

  1. 《我眼中的下拉刷新》:本文的作者是下拉刷新android-Ultra-Pull-To-Refresh开源项目的开发者。在 APP 交互中,下拉刷新是非常常见的一种交互方式。但在两三年之前,Android 的类库打包对自定义组件的支持是很弱的,res-auto 这样的 xml 布局属性命名空间是在 SDK Tool Version 17 中才支持的,相信很多开发者都有过自己写下拉刷新组件的经历。作者在文中分析了下拉刷新的发展历史,详细介绍了实现一款兼容多种组件下拉刷新的方法及其原理。

  2. 《如何使用 mitmproxy 调试 Android HTTP 请求》:在 Android 开发中我们常常会和 API 打交道,大部分情况下,调试发送网络请求和接收响应的过程都是十分痛苦的。这个时候,代理的作用就显示出来了。mitmproxy 是一款可以进行 API 调试使用的代理软件,文章中作者介绍了 mitmproxy 的安装过程、使用场景、使用方法。

  3. 《Android 反编译及 smali 语法》:开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它的做法。同时,还可以借鉴别人的软件结构,资源文件,等等。作者讲解了一些关于反编译相关的知识,主要分三篇,第一篇介绍反编译的工具和方法,第二篇,介绍 smali 的语法,第三篇介绍如何防止反编译。反编译后可以得到 jar 或者得到 smali 文件。Android 采用的是 java 语言进行开发,但是 Android 系统有自己的虚拟机 Dalvik,代码编译最终不是采用的 java 的 class,而是使用的 smali。我们反编译得到的代码,jar 的话可能很多地方无法正确的解释出来,如果我们反编译的是 smali 则可以正确的理解程序的意思。因此,我们有必要熟悉 smali 语法。
  4. 《Android 动画》:Android 3.0 以前,支持两种动画模式:Tween Animation 和 Frame Animation,在 Android 3.0 中又引入了一个新的动画系统:Property Animation,这三种动画模式在 SDK 中被称为 Property Animation,View Animation,Drawable Animation。 可通过 NineOldAndroids 项目在 3.0 之前的系统中使用 Property Animation。另外,还有 activity 之间的过渡动画,Android5.0 增加的矢量动画,过渡效果等。作者分别总结了Frame AnimationView Animation的相关知识,收藏该文,可以作为备忘使用。
  5. 《是否有必要在 Android 项目中使用 IOC 框架》:IOC 就是 Inversion of Control,控制反转。在 Java 开发中,IOC 意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。Android 中 IOC 框架有DaggerRoboGuice等。在 Spring 中 IOC 更多的是依靠 xml 的配置,而 Android 上的 IOC 框架均不使用 xml 配置系统,阅读文章,了解 Android 中是否有必要使用 IOC 框架。
  6. 《Handling Android resources with non-standard formats》:Android 开发者每天都需要为多款屏幕做兼容,同一个界面,在小屏幕上需要全屏,但在平板上,或许只需要像一个 Dialog 弹出就可以,那么如何设置 layout_width 呢?作者讲解了简单的实现方法,介绍了 View's attributes 的一些知识,并且推荐开发者阅读系统的 attrs.xml。

开源项目

  1. CircleMenu:CircleMenu 实现了建行圆形菜单的效果,可以随意旋转,效果很酷。作者还写了一篇博客介绍了该项目的一些实现。建议大家阅读源码,了解更多自定义控件、绘图方面的知识。
  2. soas:soas 汇总了一些项目、组件的使用方法,适合新手学习,特别是 Lollipop and Material 的初学者。包括 Toolbar、Drawer、Vollery、JSON、Themes、Gradle 等等。
  3. Material Dialogs:Material Design 风格的弹出框,支持所有的 Android 版本。支持自定义多个点击按钮、自定义不同的主题风格。Android 开发中经常使用的弹出效果,该组件都可以实现,开发者可以非常方便的集成到自己的项目中。

感谢郭蕾对本文的审校。

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