中国的博客,走近我们的产品、技术和文化
Google 中国的博客,走近我们的产品、技术和文化
创建高性能的表盘主题
2015年5月12日
原作者,林海泉, Android Wear
翻译,陈庆滔,杨智行,林海泉,胡坤
各位Android Wear的开发者,如果你
刚刚创作了一个非常棒的表盘设计,你一定很希望将你设计的最好的一面
展示
给世界欣赏。让你的用户知道这不仅是一个非常好的设计而且是一个用了不少心思创作的艺术作品。
表盘运行时的核心函数为onDraw,它是用来执行绘制操作的。onDraw其实是非常灵活的,但同时却很容易带来很多性能问题。
在这里,我们主要讨论一些性能优化的问题,并且剖析一个实际的案例圣诞老人表盘做详细解释。我们最后不仅可以将圣诞老人表盘的帧率从18fps提高到42fps,而且也可以令动画拥有在亚像素级别(sub-pixel)让动画更加的平滑。
性能优化的起点- 18 fps
为了实现最终的界面效果,我们的圣诞老人表盘主题包含一些互相叠加的位图。从下到上,主要包含以下这些图片:
静态背景图片
动态的云彩图片,从边缘到中间移动
静态小时标记表针图片
静态的圣诞老人和雪橇
圣诞老人的手臂,用来指示小时和分钟
静态的圣诞老人头像
优化就从这些图片开始...
压缩大图像 (+14 fps)
图像的大小对于可穿戴应用动画的动画的性能至关重要。尤其是如果我们需要对那些图像进行加工,举例来说还要被用来图像缩放和旋转。
合并图像 (+7 fps)
虽然最理想的设计情况是这些移动运动的云层从小时标记表盘指针的下面飘过,但是既然云层本身也是透明的,小时标记在云层的上面还是下面,看起来实际上从视觉上没有大太多的差别,因为云层本身也是透明的。因此,为了性能考虑,我们可以把背景图片和表针合并成一张图片。
在onDraw,删除一些性能消耗大的函数 (+3 fps)
onDraw属于表盘主题最核心的函数功能。每一次帧的绘制,都会被调用一次,在绘制下一帧之前,实际的绘制流程必须需要等待上一帧的OnDraw函数执行完毕后才会进行。
反据齿此 vs 和过滤位图参数 标识 - 怎么用才能获得另外的比较两帧 (+2 fps)
因为Android Wear有各种各样的形状和大小。从而导致在绘制到屏幕上之前,所以开发者有时候必须重新调整位图的大小才绘制到屏幕上。
亚像素(sub-pixel)级别的平滑
算到这里,我们目前应该已经可以提升到44fps,但是为什么结果是42fps呢?这个损失的原因是由canvas.drawBitmap的限制造成的。
点亮每个手腕
表盘是Android Wear最突出的UI元素。作为一个优良工匠,我们的责任就是使其大放异彩。让我们点亮每个手腕吧!
更详细的技术实现,请点击
这里
阅读原文。
標籤
编程之夏,UR
创新
创意改善社会 公益温暖中国
促进智能能源利用
大学
谷歌翻译,即时相机翻译,Instant Camera Translation
谷歌十周年系列
谷歌艺术与文化
观妙中国,Shadow Art,智玩皮影
广告
广告安全
互联网,Internet
科技
女性开发者
社会
视频广告
数据中心
数字营销
搜索
网站管理员
文化研究所
艺术计划
音乐搜索
愚人节
增强型广告系列
智能隐形眼镜项目
中小企业
adexchange
Admob
admob sdk
Ads
Adsense
AdWords
android
android m
Android应用开发中国大学生挑战赛
App Inventor
Calendar
cardboard
CES
Chrome
Chrome Web Store
Chrome,Chrome实验
Chrome实验
CI
Code Jam
corporate
Creative
Cross-device
Cultural Institute
culture
Data Center
DevArt
Developer
display
diversity
Doodle
DoubleClick
G+
G2G,Culture
GA&C
gaming
Global Impact Awards
Gmail
Gogle科学挑战赛
Good to Know
Google Ads
Google AdWords
Google Analytics
Google Art Project
Google Arts & Culture
Google Code-in竞赛
Google Demo Day Asia
Google Docs
Google Doodle
Google Drive
Google Drive 云端硬盘
Google Fiber
Google Font
Google for Startups
Google Green
Google I/O
Google Image Search
Google Keep
Google partners
Google Play
Google Science Fair
Google Search
Google Top Contributor Summit
Google Translate
Google Trend
Google Trends
Google Zeitgeist 2012
Google安全系统
Google博士生奖研金
Google翻译
Google奖学金
Google杰出贡献者峰会
Google科学挑战赛
Google网站管理员
Google网站管理员,Webmaster
Google文化研究所
Google在线营销挑战赛
Google中国教育高峰会
IME 输入法
Innovation
Made with Code
maps
mobile ads
mobile ads sdk
Modoo
moonshot
native ads
Nexus
programmatic buying
Project X
Pwn20wn及Pwnium3 黑客大赛
Remarketing. Ads
Search
Security
smb
Solve for X
Street view
student
UR
VR
Web Platform Docs
web security
Webmaster
year in search 2014
YouTube
zeitgeist
博客归档
2024
12月
11月
10月
8月
7月
6月
5月
4月
3月
2月
1月
2023
12月
11月
10月
9月
5月
4月
3月
2月
2022
11月
10月
5月
4月
2月
1月
2021
10月
9月
5月
4月
3月
2月
2020
12月
5月
4月
3月
2019
10月
8月
7月
6月
5月
4月
3月
2018
12月
10月
9月
8月
7月
6月
5月
3月
2月
1月
2017
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2016
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2015
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2014
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2013
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2012
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2011
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2010
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2009
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2008
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2007
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
1月
2006
12月
11月
10月
9月
8月
7月
6月
5月
4月
3月
2月
Feed