BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 郭亮 关注 18 他的粉丝 发布于 2015年6月17日. 估计阅读时间: 8 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

新闻

  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读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT