低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

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

2015 年 6 月 16 日

新闻

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

2015 年 6 月 16 日 05:542147
用户头像

发布了 121 篇内容, 共 35.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

数据分析师

Nydia

【笔记】第六周 - 第 2 课

Geek_娴子

快速排序算法实现及优化

Silently9527

Java 排序算法 快速排序

阶段性正确

广之巅

阶段性正确

寻找被遗忘的勇气(七)

Changing Lin

3月日更

网红爱心红绿灯爆红网络!这样的户外媒体凭什么更受欢迎?

󠀛Ferry

七日更 3月日更

MT马特量化交易系统开发|MT马特量化交易软件APP开发

开發I852946OIIO

系统开发

GitHub开源的超逼真俄罗斯方块游戏

不脱发的程序猿

GitHub 开源项目 28天写作 俄罗斯方块游戏 3月日更

上线 Python 应用仅需一条命令的开源框架:Zappa(详细教程)

HelloGitHub

Python Serverless 无服务器云函数

IDEA 常用插件与配置

TroyLiu

Java vim ide idea插件 IntelliJ IDEA

递归函数

大忽悠

3月日更

实现一个全链路监控平台很难吗?Pinpoint、SkyWalking、Zipkin,哪个实现比较好?

xcbeyond

架构 技术方案 链路监控 3月日更

拖延症这个毛病「Day 16」

道伟

28天写作

小喜量化交易系统开发|小喜APP软件开发

开發I852946OIIO

系统开发

女神节·走近又美又飒的程序媛

华为云开发者社区

华为 程序媛 IT 工程师 汉服

力扣(LeetCode)刷题,简单题+中等题(第20期)

不脱发的程序猿

LeetCode 力扣 28天写作 算法面经 3月日更

两会热议区块链,未来将呈现四大趋势

CECBC区块链专委会

区块链

世界上最好的排序算法是什么?

Nick

数据结构 算法 快速排序

Python 语言基础之 变量和常量

HoneyMoose

IntellIJ IDEA 命令行运行一个 HelloWorld Python 程序

HoneyMoose

与前端训练营的日子 -- Week18

SamGo

学习笔记

「架构师训练营 4 期」 第九周 - 001&2

凯迪

架构师训练营 4 期

Dubbo SPI 使用源码分析

Yangjing

dubbo spi ProxyFactory 服务暴露 ExtensionFactory

《精通比特币》学习笔记(第四章)

棉花糖

区块链 读书笔记 3月日更

云边协同

lenka

云计算 产品经理 3月日更

5分钟介绍AI人工智能,机器学习和深度学习,John 易筋 ARTS 打卡 Week 40

John(易筋)

ARTS 打卡计划 arts

(28DW-S8-Day16) 在线教育体验课

mtfelix

28天写作

正则表达式.03 - 分组

insight

正则表达式 3月日更

01|PPT教程|为什么我要写这个课程?

青城

PPT 青城 PowerPoint 3月日更

二维码高端路线养成计

happlyfox

学习 技能 28天写作 3月日更

BI掌柜量化交易系统开发|BI掌柜炒币机器人软件APP开发

开發I852946OIIO

系统开发

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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