转载

Android开发周报:Android M、iOS9比拼、多种组件源码分析

新闻

  1. 《越来越像:iOS9与Android M简单上手对比》 :谷歌和苹果都已经在日前先后放出了下一代系统的开发者预览版本,既Android M 开发者预览版以及iOS9 开发者预览版。今年的Android M和iOS重点都集中在底层改进、用户体验提升以及电池续航管理上,纯粹视觉上的变化并不显著。而且两者目前都处在早期的开发者预览版阶段.而现在,是时候将两者放在一起进行一番对比了。
  2. 《谷歌建网站帮用户挑选Android手机》 :目前市面上有许多不同的产品,如何选择一款最适合自己的手机也非常困难。这种选择对于新手用户来说尤为困难,因此谷歌最近专门推出了一个新网站,可以帮助用户选择目前最适合自己的智能手机。这个网站只需要用户按照步骤回答问题,就可以筛选出最适合自己的那一款。这里是 Which Phone 网址。

教程

  1. 《Google Developing for Android —— Tools》 :Andorid提供了很多可以帮助开发者debug和分析问题的工具,它们可以让App拥有更好的性能。这些检测工具涵盖了内存分析,比如Allocation Tracker(在DDMS和Android Studio中都有)和设备性能。知道这些工具很重要,但更重要的是能够充分的使用这些工具,保证你的应用拥有期望的表现(60帧限制,避免垃圾回收器搅动),尽可能的优化和提高整体体验。
  2. 《Android应用程序UI硬件加速渲染的Display List渲染过程分析》 : 在硬件加速渲染环境中,Android应用程序窗口的UI渲染是分两步进行的。第一步是构建Display List,发生在应用程序进程的Main Thread中;第二步是渲染Display List,发生在应用程序进程的Render Thread中。Display List的渲染不是简单地执行绘制命令,而是包含了一系列优化操作,例如绘制命令的合并执行。本文就详细分析Display List的渲染过程。
  3. 《LocalBroadcastManager 的实现原理》 :对LocalBroadcastManager 大家应该都不陌生,相对BroadcastReceiver,它只能用于应用内通信,安全性更好,同时拥有更高的运行效率,也是需要发送应用内广播时的官方推荐。我们知道BroadcastReceiver的通信是通过 Binder 机制实现,而 LocalBroadcastManager 因为叫LocalBroadcast,是否也是 Binder 通讯方式为底层实现的呢?本文为我们揭晓了答案。
  4. 《Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析》 :Android屏幕显示的就是Window和各种View,Activity在其中的作用主要是管理生命周期、建立窗口等。也就是说Window相关的东西对于Android屏幕来说是至关重要的。本文分析了Android应用中Activity、Dialog、PopWindow加载显示机制以及Window、WindowManager相关的一些知识。
  5. 《面向UI的单元测试框架——AndroidUITestRunner》 :通常我们使用的单元测试框架都是用来测试一些非UI的逻辑的,如JUnit,CPPUnit。单元测试是非常好的习惯,一方面单元测试本身就是一份文档,另一方面单元测试有助于强迫使你的代码耦合更加松散(模块可以独立测试)。移动应用一般都是MVC的结构,Mode层面使用JUnit进行单元测试很方便,但是想测试View就无能为力了,本文介绍了一种可行的UI单元测试方案——AndroidUITestRunner。
  6. 《深入理解PackageManagerService》 :PackageManagerService负责管理系统的Package,包括APK的安装,卸载,信息的查询等等。它的功能非常的多,也非常的强大。PackageManagerService和Java中其他系统服务一样,也是一个Service,作者结合源码详细分析了PackageManagerService的相关知识,有助于我们了解Apk的整个安装、运行过程。
  7. 《自定义NavigationView》 :Google I/O 2015 给大家带来了Android Design Support Library,对于希望做md风格的App来说,简直是天大的喜讯了,大家可以通过 Android Design Support Library 该文章对其进行了解,也可以直接在github上下载示例代码运行学习。本文首先介绍了NavigationView的使用,然后介绍了如何自己去编写该控件。
  8. 《谷歌如何找回「失散多年」的设计师》 :本文是一篇非技术文章,不过对我们设计优秀的产品或许有一些帮助。与苹果相比,谷歌更多地是一家技术驱动的科技公司,其产品设计充满着浓厚的工程师思维,正因为如此,其设计也一直为用户所诟病。但是现在的谷歌比任何时候更加注重设计,运用Material Design的安卓5.0给人眼前一亮的感觉:清爽的界面,清晰的交互逻辑,应用统一的设计风格。本文将详细介绍谷歌设计的演变过程、谷歌领导层的思想是如何一步步转变,设计如何使得谷歌更加团结。

开源项目

  1. ProductTour :该项目实现了Google系App特有的引导页面,包含parallax effect效果,色彩背景的渐变动画等。该项目实现的效果、体验都很赞,我们可以将该引导页快速的集成到自己的生产项目中。
  2. velocimeter-view :该项目是一个效果很赞的速度计,可以自定义表盘颜色、指针速度。
  3. Notes :Notes是一款基于Material Design 的开源笔记本应用,支持多款彩色主题的选择、分享功能等。下载运行该项目,了解更多功能。

工具

  1. infer :infer是Facebook开源的一个Java,Object-C静态检测工具,可帮助Android,iOS开发者检测一些潜在的bug及资源泄漏问题,infer已经被用于Facebook的Messenger,Instagram等自家App开发之中,和Square的内存泄漏检测工具 leak canary有一拼。

感谢徐川对本文的审校。

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

正文到此结束
Loading...