Android 开发周报:Flyme OS 开源、经典开源项目解析

  • 郭亮

2015 年 7 月 8 日

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

新闻

  1. 《魅族 Flyme OS 源码上线 GitHub》:近日魅族正式发布了 MX5,并且在发布会上,魅族还宣布 Flyme OS 开放适配。随后,魅族正式放出了 Flyme 官方 ROM 适配工具。在众多国产 UI 当中,魅族 Flyme 也算是一款比较有特色的产品。虽然有不少网友戏称之为『Bugme』,但是其还是有一定的受众群体的。本次魅族宣布 Flyme OS 开放适配,也算是一个不错的消息,最起码会有不少没有魅族手机的用户有机会体验一下这款系统。这里是Flyme 的 GitHub 页面
  2. 《Java 版权案谷歌上诉被驳回》:美国最高法院周一驳回了谷歌在一宗软件版权诉案中提出的上诉申请,维持原先的判决,即允许甲骨文向使用其 Java 编程语言的公司收取专利版税。而谷歌在其 Android 移动操作系统中使用了 Java API,这意味着谷歌将要为 Android 掏一大笔钱。

教程

  1. 《Android 百分比布局库解析与扩展》:百分比布局是网页中最常用的布局方式,近日谷歌发布了一个百分比布局的支持库android-percent-support-lib。该库提供了两种布局 PercentRelativeLayout 和 PercentFrameLayout 供开发者使用。随着 Android 手机碎片化的持续发展,App 开发时适配问题越来越成为耗时、不省力的工作,百分比布局最大的好处应该就是解决屏幕适配问题。此处为作者对该库的改进版,赶快行动吧。
  2. 《Chromium 和 WebKit 的智能指针实现原理分析》:C++ 不像 Java 一样,由虚拟机负责对象分配和释放。也就是说,开发人员使用 C++ 编写代码时,要自己负责对象分配和释放。WebKit 和 Chromium 都是使用 C++ 开发的,因此它们也面临上述问题。在解决对象释放问题时,要做到在对象不需要时自动释放,因为手动释放会带来忘记释放或者释放后又继续使用的隐患。智能指针是实现对象自动释放的有效技术手段。本文就分析 Chromium 和 WebKit 的智能指针的实现。
  3. 《DynamicLoadApk 源码解析》:DynamicLoadApk 是一个开源的 Android 插件化框架。插件化的优点包括:模块解耦、动态升级、高效并行开发(编译速度更快)、按需加载、内存占用更低等等。DynamicLoadApk 提供了 3 种开发方式,让开发者在无需理解其工作原理的情况下快速的集成插件化功能。本文详细解读了 DynamicLoadApk 的实现原理。
  4. 《SlidingMenu 源码解析》:SlidingMenu 应该是侧滑菜单中最受开发者欢迎的开源项目,SlidingMenu 的侧边栏可以是一个 Fragment,可包含任何 View,并且 SlidingMenu 支持左滑和右滑、可以自定义侧边栏显示动画。SlidingMenu 的使用也非常方便,逻辑清晰,代码量少。本文是 codekk 源码解析系列里关于 SlidingMenu 的一篇详细解析。
  5. 《Kotlin 在 Android 工程中的应用》:Kotlin 是由 JetBrains 设计的开放源码的编程语言,它正在 Java 开发者中变得越来越流行。Kotlin 通常被吹捧为 Java 的继承者,相比较 Java 而言,Kotlin 提供更为丰富的开发经验,因为它更现代,更具表现力和更简介。本文介绍了在 Android Studio 工程中如何使用 Kotlin 和 Kotlin 插件。
  6. 《从设计到实现,一步步教你实现 Android-Universal-ImageLoader- 缓存》:我们要对图片进行缓存,有两种方式:内存缓存和本地缓存。这两种方式的区别在于,内存缓存是缓存在 Android 系统为应用分配的运行内存之中,读取速度快,但是可能会带来 OOM 的问题;本地缓存一般缓存在 SD 卡中,读取速度较慢,但是缓存空间足。那么我们要怎么来实现内存缓存和本地缓存呢?阅读本文,学习如何写出代码结构清晰,类间耦合度低的代码。
  7. 《如何使用 Android Studio 把自己的 Android library 分发到 jCenter 和 Maven Central》:如果你想在你的项目中引入一个第三方的 library,你只需在 Android Studio 中添加一行代码到模块的 build.gradle 文件中,然后就可以使用这个 library 了。这种技术实在是太酷了,Android Studio 是从哪里得到这个 library 的?其内部是如何运作的?这篇文章将详细讲解该技术运行原理,以及如何把你开发的库发布,分享给世界各地的其他开发者。

开源项目

  1. dexposed:dexposed 是一款无侵入的运行期 AOP 框架,是阿里巴巴无线事业部的第一个重量级 Android 开源项目。该项目是基于 ROOT 社区著名开源项目 Xposed 改造剥离了 ROOT 部分,演化为服务于所在应用自身的 AOP 框架。它支撑了阿里大部分 App 的在线分钟级客户端 bugfix 和线上调试能力。
  2. bubbles-for-android:这是一个可以在桌面上添加聊天头像(或者其它的图标)的应用,支持拖动删除功能。
  3. TourGuide:TourGuid 一个非常赞的开源项目。对于一些复杂的 App,我们希望能够给用户一些引导操作。当用户首次打开应用的时候,可以按照给出的引导来熟悉 App。TourGuid 就是为这种场景而生的项目,动画效果很漂亮,马上收藏备用吧!

感谢徐川对本文的审校。

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

移动Android语言 & 开发架构