秋高气爽,创想时空。笔者参加在798 D-park召开#谷歌创想时空#。感觉不错,分享一下所见所闻所得。
现场篇 :
当天一大早就赶到会场。果然是google创想时空,签到处就弥漫着创意,墙壁天花板布满google创意logo,琳琅满目,瞬间让你进入遐想。前台一排美女,笑语相迎。不信,有图,有真相。
签完到,进入主会场,首先是g+社区体验,用google的彩带环绕立体,下面是各色美食。用户体验就是好,让没吃早餐的攻城狮们情何以堪。
会场的分布,是根据google的几个业务线划分。
最吸引眼球的是:
以为是google的无人驾驶技术呢,其实是展示googleMaps的街景技术。还别说,坐上车,驰骋在巴黎城,好是浪漫。不由感慨,这些数据,得花多少银子呀。
随后,来到youtube展区。展区的MM,介绍youtube不单单是视频,而且能够和用户互动,有情感化的交换,让用户join进去。
Chrome 展区,体现了各终端下Chrome,对HTML5支持体验。同时看到了Chrome本本,体验一下真正的上网本,感觉不太适应,想想一台电脑,只有浏览器,啥感觉?
下一个,Google Search 就不多说了,传统强项。
来到g+ 中间可以体验g+社区的服务,值得一提的是, hangout,可以多人视频会议,参与你感兴趣的话题,充满开放、分享。有点像 OpenPatry online版。
还有一个展区(Google Art Project),让人瞠目结舌:把全世界著名博物馆、美术馆的名画以70亿像素的高清晰度呈现于互联网。感兴趣可以体验一下 http://www.googleartproject.com/ 。能看到油画中油彩缝隙下画布的纹理。
其他展区就不一一细说了。还是上干货吧。
技术篇:
主要是一个主会场,两个分会场。
主会场:主要是讲了一些google IO大会情况,新技术动向,比如可穿戴设备、智能家电等。Chrome对HTML5支持,以及html5本身研究。Android平台技术、android 4.1的新特性。google对开发者的重视,有很多通道可以直接和专家对话:1、 android 官网获取android的动态、2、youtube dev频道最新技术的教学视频3、google+的groups 世界级开发者社区4、G+ Hangout On air 和专家对话。貌似很多通道都被墙掉了。旁边一个哥们说:“好服务都被和谐掉了,能和谐吗?”。Google也知道,国内开发者需要才能参与进去,特意为国内准备了 http://www.chinagdg.com/ (不用翻,笔者逛了逛,论坛刚刚起步,没啥内容)。请发邮件到freeget.one@gmail.com获得翻强软件。
分会场二:介绍android技术。
主讲人是负责google Play的香港帅哥,国语一般,但是干货不少。主要是讲了android现状和趋势,android4.1新特性、android 产品设计、android 应用在官方market的推广。
结合当天的讲座笔记和官网4.1文档,其他对4.1的介绍的文章。整理了一下4.1的新特性:
1、 使用界面触摸反应更灵敏、更快,更顺畅:
- 提供一个轻松,直观的用户界面。
- 最佳性能和最低的触摸延迟:4.1 把Vsync计时扩展到所有的图纸和动画显示。一切运行都保持与 16毫秒Vsync心跳 步调一致,包括应用的渲染、触摸事件、画面构图、显示刷新等,所以界面的帧不会被延迟或超过屏幕刷新率而造成”拖影”或 断开现象 (Tear)。
- 4.1版本为图像加速增加了 三重缓冲(Triple Buffering) ,使图像的渲染更加一致,使页面的滚动、换页、及动画等感觉更加顺畅。
- VSYNC计时被扩展到所有的图纸和动画显示。
具体如下:(参见http://www.androidpolice.com/2012/07/12/getting-to-know-android-4-1-part-3-project-butter-how-it-works-and-what-it-added/)
(1)VSync的作用
上面是一张没有Vsync控制的画图过程:当frame0在屏幕上显示时,frame1先在CPU里准备,再在GPU中render到显示内存,最后在下一个VSYN来到时,把frame1切换到屏幕。由于在Android4.1(JellyBean)之前,所有的绘制画图都是以一种“自由的,松散的”的方式调用,这样开始调用画图的时间不定(就是调用View::onDraw()的时间不定),所以当系统负荷很重时,frame2的onDraw()方法可能很晚才调用,在VSyn信号来时,Frame2还没有准备好,显示只好在显示frame1了。造成画面停顿。
引入VSYN就是解决这个问题。其实显示系统一直是用Vsync来切换图像的,只有在VSync信号下,显示内存的图像才会切换到屏幕。在JellyBean中,VSYNC被引入到上层的View绘图。View::onDraw()保证在VSync来到时被调用。示意图如下:
这样View::onDraw()保证在VSync信号到达时调用,避免的延迟。
其实用VSync只解决了View::onDraw()延时调用的问题。如果CPU或GPU画图的时间超过16ms(两个VSync信号的间隔),那一样会使两个连续的VSync显示一个frame,造成画面停顿。
如上图,GPU处理frameB的时间过长,导致VSync来到时,frameB没有render完成。
(2)Tipple Buffer的示意
三缓冲(Tripple buffer)的机制就是解决这个问题。
引入BufferC。新的VSync来到时,并且bufferB还在使用时,新的bufferC被引入。画图在新的bufferC中进行,BufferB被拖后到第三帧显示,整个UI显示时间被拖后一帧。但每一帧都按一定的顺序一定的时间片显示。这就是tripple buffer的原理。
2、可扩展的通知显示(Notifications):
- 4.1版本为通知框架带来了重大的更新。应用程序现在可以通过用户的捏、刷的动作,扩展或缩减通知信息显示元素。
- 通知显示支持新类型的内容、如照片。用户可以设置的显示的优先权,还可以包括多个动作。
- 应用可以在通知显示下加入新的三项行动的选择,让用户可以不用进入发通知的应用、直接回应通知信息。比如选择通过电子邮件或电话的方式回复。
- 由展示空间最大64dp 扩展到256dp哦
3、 进一步增强的无障碍使用功能:
- 新的API让开发者加入处理手势动作,管理与无障碍使用功能相关辅助对焦(Accessibility Focus)
- 一套新的API,让开发者为用户提供无障碍使用功能:通过屏幕上的内容和导航按钮,使用辅助手势、配件和其它输入方便使用手机。
- 新的对讲系统,以及重新设计的通过触摸进行使用方法探索的功能,让开发者加入新的无障碍使用功能
4、 双向文字和其他语言的支持:
- 4.1版本加入了在TextView和EditText元素上显示双向文字的支持,让你开发面向世界范围内更多用户的应用和游戏。
- 应用程序可以在文字显示或文字编辑处理上显示从左到右或从右到左的脚本。
- 应用和游戏现在可以方便地使用新的阿拉伯语和希伯来语的语言环境和相关字体、新的日语字体
- 没有专门的粗字形的字体,可以采用合成粗体(Synthetic Bold)。
5、 可调整大小的应用程序小部件
- 4.1版本加入了可调整大小的应用程序小部件: App Widgets的显示大小可以根据用户放在主屏幕上位置、用户手控的大小、以及主屏幕上的空间来决定。
- 新的应用程序API让你利用这个部件大小的变化来,充分优化你的应用程序部件的内容。当部件的大小变化时,系统会通知应用程序,可以重新调入widget的显示资源。
- 开发者完全控制Widget的尺寸
6、 与游戏开发有关的新功能:
- 游戏可以通过API得到被添加或删除的外接设备信息,比如新接上的键盘或操纵杆
- 游戏可以利用Vibrator Service来控制游戏操纵杆震动
- 图像和动画
- 新的编导类(Choreographer class)让游戏利用VSync计时, 请求对下一个VSync框架:是个安排动画的有效方式
- 新的动画功能和过渡类型
- 动画框架让开发者设定动画运行的开始和结束点,帮助一个动画与其他动画或应用程序进行同步
- 新的ViewPropertyAnimator让开发者在动画过程中使用层面(Layer)
7、 新的多媒体功能
- 4.1新版本提供了访问设备硬件的底层媒体解码器(Media Codec),查询和发现设备上的媒体编解码器
- 支持USB音频输出,让硬件厂商开发与Android接口的音频码头(audio docks)等硬件设备
- 4.1支持多声道音频设备:通过HDMI端口上的硬件输出多声道音频,让游戏为用户提供更丰富的媒体体验
- 4.1新版本还增加了对AAC 5.1编码/解码音频的支持
- 效果音频处理:让录音质量通过噪声抑制、回声消除等手段改善音质
- 新的媒体路由器(Media Router) 开发接口提供有线耳机,A2DP蓝牙耳机和扬声器等使用控制界面
8、 其它重要的新功能:
- Renderscript的功能进一步提高
- Renderscript脚本代码中可以设定浮点运算精确度,这可以让开发者使用NEON指令进行快速的矢量数学运算
- 在x86的模拟器和硬件上可以调试Renderscript计算脚本
- Android浏览器和WebView功能的更新和增强
- 更好的HTML5视频的用户体验,包括touch-to-play/pause、从网页局部到全屏显示的平稳过渡
- 网页显示的滚动和缩放性能提高了渲染速度和减少了内存使用而更加流畅
- HTML5里的CSS3和Canvas功能、以及动画的速度性能进一步提高
- JavaScript Engine (V8) 的速度性能进一步得到提高
参考及扩展阅读:
1、 http://developer.android.com/about/versions/jelly-bean.html
2、 http://blog.csdn.net/aaa2832/article/details/7716471
其他零碎笔记 :
1、 google最新数据:android 设备 超过 5亿+,每天100万+的激活量。Android应用在132国家有收费应用,并且收费国家中92%城市都有下载收费应用的用户。
2、 AIDE是一个Android Java集成开发环境(IDE),可以通过安装使用AIDE,开发者可直接在Android系统内进行Android软件及游戏等应用的开发。它不仅仅是一个编辑器,更支持“编写-编译-调试运行”整个周期。
3、 Google 官方Market 怎么样自己应用容易被搜索到。在应用的介绍(spam) 增加流行关键字,容易被搜索到。类似SEO。官方审核的拒绝邮件,一定认真对待,有些分析的地方都是和商量的,如果你不理不猜,再次犯错时,有可能终身禁赛。不过公司大小、背景如何。
4、Android 4.1 SDK中提供一个新的名为systrace的工具,能够从Kernel到系统层对App进行性能优化。此外,还为开发者提供了多种除错及调校功能,例如视窗图层更新、GPU图形处理等。App更新也更加智能,可以仅更新APK有修改的部分,而非像以往那样必须完整下载新版应用程序,如此一来,能够节省2/3的下载流量
5、android design,建议纯android程序,多用action Bar、区分 up 和back键的区别 、每个应用页面左右边框28dp。
参考:http://developer.android.com/design/index.html
http://design.eoeandroid.com/