新闻
- 《5.0 版本 1 月增长 1.6%》:谷歌周一更新了 Android 版本分布图。最新版的 Android 5.0 Lollipop 终于在上月呈现增长,且增势压过 4.4 KitKat 的风头。KitKat 是在一月到二月期间,除了 Lollipop 外,唯一仍保持份额上涨的旧版本。
- 《2014 年 Android 手机卖出 10 亿多部,全球份额 81%》:Strategy Analytics 公司最新数据显示,2014 年全球智能手机出货达 12.8 亿,其中 Android 手机出货 10.42 亿部,占全球 81% 市场份额;苹果手机出货 1.93 亿部,占 15% 市场份额;Windows Phone 出货 3900 万,市场份额显得微不足道。Android 主要在南美、亚洲等新兴市场实现增长,欧美等地区市场已几乎饱和,各手机厂商都在关注开辟新兴市场。更多廉价手机的出现是 Android 发力的重要手段,而这也确实让 Android 市场进一步扩张。
- 《开发不易!2015 年移动应用开发趋势总结》:硬件性能的提升,新技术的出现都是影响移动应用发展的重要因素,而最近几年里,这两个方面都有着不小的进步。从不断增加的屏幕分辨率,64 位处理器,到支持所有平台开发的 HTML5 技术逐步成熟,每个方面都不容小觑。不过,在这种情况下,最辛苦的应该是开发人员,因为他们的技能也需要随之提升。但在刻苦专研技能的同时,也有必要了解一下 2015 年移动应用开发的发展趋势,从而为自己的努力找到方向。
教程
- 《我眼中的下拉刷新》:本文的作者是下拉刷新 android-Ultra-Pull-To-Refresh 开源项目的开发者。在 APP 交互中,下拉刷新是非常常见的一种交互方式。但在两三年之前,Android 的类库打包对自定义组件的支持是很弱的,res-auto 这样的 xml 布局属性命名空间是在 SDK Tool Version 17 中才支持的,相信很多开发者都有过自己写下拉刷新组件的经历。作者在文中分析了下拉刷新的发展历史,详细介绍了实现一款兼容多种组件下拉刷新的方法及其原理。
- 《如何使用 mitmproxy 调试 Android HTTP 请求》:在 Android 开发中我们常常会和 API 打交道,大部分情况下,调试发送网络请求和接收响应的过程都是十分痛苦的。这个时候,代理的作用就显示出来了。mitmproxy 是一款可以进行 API 调试使用的代理软件,文章中作者介绍了 mitmproxy 的安装过程、使用场景、使用方法。
- 《Android 反编译及 smali 语法》:开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译的方式,解开其他的程序,来了解一些它的做法。同时,还可以借鉴别人的软件结构,资源文件,等等。作者讲解了一些关于反编译相关的知识,主要分三篇,第一篇介绍反编译的工具和方法,第二篇,介绍 smali 的语法,第三篇介绍如何防止反编译。反编译后可以得到 jar 或者得到 smali 文件。Android 采用的是 java 语言进行开发,但是 Android 系统有自己的虚拟机 Dalvik,代码编译最终不是采用的 java 的 class,而是使用的 smali。我们反编译得到的代码,jar 的话可能很多地方无法正确的解释出来,如果我们反编译的是 smali 则可以正确的理解程序的意思。因此,我们有必要熟悉 smali 语法。
- 《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 Animation 和 View Animation 的相关知识,收藏该文,可以作为备忘使用。
- 《是否有必要在Android 项目中使用IOC 框架》:IOC 就是Inversion of Control,控制反转。在Java 开发中,IOC 意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。Android 中IOC 框架有 Dagger 、 RoboGuice 等。在 Spring 中 IOC 更多的是依靠 xml 的配置,而 Android 上的 IOC 框架均不使用 xml 配置系统,阅读文章,了解 Android 中是否有必要使用 IOC 框架。
- 《Handling Android resources with non-standard formats》:Android 开发者每天都需要为多款屏幕做兼容,同一个界面,在小屏幕上需要全屏,但在平板上,或许只需要像一个 Dialog 弹出就可以,那么如何设置 layout_width 呢?作者讲解了简单的实现方法,介绍了 View’s attributes 的一些知识,并且推荐开发者阅读系统的 attrs.xml。
开源项目
- CircleMenu :CircleMenu 实现了建行圆形菜单的效果,可以随意旋转,效果很酷。作者还写了一篇博客介绍了该项目的一些实现。建议大家阅读源码,了解更多自定义控件、绘图方面的知识。
- soas :soas 汇总了一些项目、组件的使用方法,适合新手学习,特别是 Lollipop and Material 的初学者。包括 Toolbar、Drawer、Vollery、JSON、Themes、Gradle 等等。
- Material Dialogs :Material Design 风格的弹出框,支持所有的 Android 版本。支持自定义多个点击按钮、自定义不同的主题风格。Android 开发中经常使用的弹出效果,该组件都可以实现,开发者可以非常方便的集成到自己的项目中。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论