前言:
google一般会在每年的5月份在美国举行开发者大会,然后8-9月份会在中国也举办一次开发者大会,内容主题纲要是一致的,但是由于中国剧本的时间稍微晚一些,所以其内容会更新一些。
每年的开发者大会,会隐隐透露出谷歌的重心和未来的方向。对于开发者来说,跟对方向,才会更轻松/更适配的进行相关开发。比如2019年的时候就透露kotlin First,而如今看谷歌的官方演示文档以及compose开发,甚至官方的源码,使用的都是kotlin开发。诸如Flutter,Compose都新的跨平台框架,就更不用说了。
往年的谷歌开发者大会,都是在上海世博中心举行的,而今年改在了北京国家会议中心,参加的嘉宾也更加重量级了,接下来,就分享一下我所学习和了解到的2024中国谷歌开发者大会。
今年大会的中心就是两个字“AI”,几乎所有的环节和内容都和AI挂上了勾,比如AI新模型发布,AI赋能开发,AI赋能公益等等。
因为分享的内容比较多,很难在一个小时的时间内全部介绍清楚。而且有很多主题演讲的分享其实是有重合的,所以我着重挑出对我们比较有价值的6个点来进行介绍。
-
Google AI
-
Android 新特性
-
移动平台的支持
-
Compose & Flutter
-
Home API
-
OmniLab
一.主旨演讲
开场演讲-陈俊廷(google大中华区总裁)
-
中国取得的成绩斐然;
-
AI驱动业务升级;主要是数据模型Gemini的新版本升级以及Gemma的发布
-
谷歌艺术与文化;
-
点亮非遗之光;
-
谷歌助理农业的典型例子,TensorFlow落地应用;
-
善创未来,黑客马拉松;
-
无障碍技术的应用;
-
数字人才培养计划。
助力开发者-Geanine Banks(Google技术推广部副总裁)
Gemini功能介绍:这里扩展介绍下:Gemini是一款由Google于2023年12月6日发布的人工智能模型,可同时识别文本、图像、音频、视频和代码五种类型信息,还可以理解并生成主流编程语言(如Python、Java、C++)的高质量代码,并拥有全面的安全性评估。
-
Gemini的特点。以及Gemini支持广泛。Android Studio、VSCode、IntelliJ、FireBase等等。
-
Google AI Studio发布。
-
轻量级大模型Gemma的升级版Gemma2,转为TPU和GPU优化。
-
谷歌大黄的应用。
-
Gemini支持更多开发工具的集成
-
Flutter做动画也很棒。
-
小米SU7,整体使用flutter打造。
-
新的Android Studio体验,更流畅的模拟器,支持Compose预览。
-
FireBase。
-
Checks。
-
Project IDX。
-
Oscar。AI重塑软件开发流程,通过构建 AI 智能体开源平台,可以帮助软件产品团队监控开发过程中的问题或错误。
Web平台介绍-Pau Kinlan(Chrome 开发技术推广部主管)
生成式AI
Gemini in Web
Gemini in Console ,根据日志,给出解决方案。
安卓新特性-史婧羽(Android开发技术推广部主管)
Gemini nano在移动端的支持,无需网络通过端侧计算,比如实现聊天中的智能回复。这个后面有体验。
KMP(Kotlin Multiplatform)的支持,原名KMM(Kotlin Multiplatform Mobile)。
Compose持续优化,新特性,比如共享元素;跨屏应用;改进对触控笔/鼠标的使用。
Android Studio中引入更多的测试机型,比如小米,一加,折叠屏。
Gemini in Android studio。简化开发,代码生成/转换,代码内容分享(这个代码安全问题)。功能类似于copilot和通义千问,但是这个对compose的支持效果会更好,会更贴切主流的安卓开发。
FireBase在Android Studio中的使用,协助排查问题。
Cloud-Richard Seroter(Gloud布道师)
主要是Cloud相关的,略。
Google AI-Google Core ML 和 Google Cloud 工程副总裁 Bill Jia
AI的应用一设备制造商应用-唐凯(OPPO 助理副总裁、软件工程事业部总裁)
AI手机。高效利用计算资源-感知现实世界+自我学习能力+创造力
Gemini在OPPO手机中的应用。AI录音摘要功能+AI工具箱(文章阅读/实时翻译/文件总结)
AI的应用二初创企业应用-王小雨(Guru network CEO)
Gemma2的使用。
CodeGemma。生成式代码,优势速度快(本地模型)。
Gemini 1.5Pro。CastChat中的应用。
AI的应用三社会公益项目-邝斌(Google慧眼识教项目志愿开发者)
使用AI进行视频剪辑,慧眼识教助力公益;
Media Pipe,端侧模型;
Imagen根据文本生成相应风格图片;
Google Could文本转语音;
开发者生态-Google 全球开发者生态总监David McLaughlin
各种线下的活动
谷歌出海创业加速器
二.Google AI
Gemini 1.5Pro
Gemini是一款由Google于2023年12月6日发布的人工智能模型,可同时识别文本、图像、音频、视频和代码五种类型信息,还可以理解并生成主流编程语言(如Python、Java、C++)的高质量代码,并拥有全面的安全性评估。
其最突出的特点是支持上下文内容超级长。
Gemini 1.5Flash,是Gemini模型的快速响应版本。生成速度更快,模型更小,但是与Gemini 1.5Pro的生成内容是有区别的。
Gemini可以直接在AI Studio中进行体验和使用,比如直接拖入一个长达1小时的视频,让Gemini总结要点和内容。同样,音频、图片、PRD文档也是支持的。
经过训练之后,还可以进行其它的操作。比如下图中,就是使用训练后的模型,根据一张很粗糙的手工画寻找博物馆中类似的艺术藏品。
Gemini使用流程比较简单,从其他模型迁移到Gemini的成本也比较低。
Google AI Studio
谷歌AI的各种模型的调试和使用工具。
Edge AI
基于的端侧模型训练和生成的,主要有四大优势:低延时+隐私保护+离线使用+节省成本。
目前边缘计算的应用场景也是十分广泛的,支持类型也是很多的,并且接入成本也是很低的,只需短短几行代码即可。
Android应用,可以通过相关SDK直接使用大模型相关的功能,而不需要进行模型训练等操作,无疑大大降低了使用者的成本。但是由于基于Android OS的架构,所以不是所有的机型都支持,只有搭载了Gemini Nano的才支持,目前只有Pixel 8和三星最新旗舰机型材支持。
在展示区也进行了实际的体验,效果目前有一点点不理想。
AI模型之路
AI赋能公益
引导线:助力盲人跑步的梦想,通过语音提示盲人方向。
手语村:根据用户的手语给予打分,判断手语是否准确。
AI大黄
一个支持对话,支持视频源输入的AI聊天工具。
三.Android新特性
Android新特性主要为分为两部分,打造用户卓越体验、开发者工作效率。
卓越体验
不要假设应用的窗口大小是固定的。目前大屏设备越来越多,做界面设计的时候,应该考虑使用适应性布局,而不是传统的相对较为死板的布局,这样对于宽屏和窄屏,一个APK就可以全支持。我们最近也在打造OneImage方案,所以应该在视觉设计的时候,就需要提前考虑不同屏幕的适配方案,这样对于视觉、开发的工作量才是最小的。
下面是两个例子:
安卓新版本,可以自动绑定系统的账号。新版本界面使用了无边框设计,以及预测性返回。
相机方面,引入了弱光增强,左右两张分别为正常效果和引入了弱光增强的效果。但是这块,其实国内的手机生产厂商早就已经实现了。
对于视觉来说,也可以按照谷歌的规范来进行UI的设计。
开发者工作效率
首先讲的是compose。主要是提供了几个支持库,方便使用compose的项目进行开发。主要包含一个cameraX和viewFinder库。
另外,google持续对compose进行优化,并且提供各种更强的支持,方便开发者的使用。比如下面的性能提升,代码编写的优化,支持懒布局,以及对text控件的功能增加。甚至还开始支持compose的共享元素过渡。
其次是KMP支持。KMP,全称Kotlin Multiplatform,原名叫KMM(Kotlin Multiplatform Mobile),后来JetBrains统一命名KMP,第一是明确名称,第二是支持的内容并不限于移动平台。
KMP也是一个跨平台的框架,即为使用kotlin,编写一切平台的代码。这样一名开发只需要懂得kotlin一种语言,就可以完成Android、IOS、Web、桌面的APP开发。这样做首先大大提高了开发效率,因为所有平台只需要开发一遍;其次也打破了平台差异性,一名Android开发也可以去写IOS了。
当然,KMP这个概念提出也已经有一段时间了,进度不如预期。目前还没有看到哪个大的公司全面切换到,只有部分大公司的团队在推进和尝试。本次的交流会,也只是说明对KMP更强的支持,但具体没有细说,也没有实例的演示。
最后是一些工具库的支持。比如androidx中的DataStoreFactory,用于数据存储,各位开发者可以考虑使用它来替代我们常用的SharedPreferences以及sqlLite。它具有更方便,更安全,更高效的特点。
四.移动平台的支持
Android Studio优化
最新版本的AS,默认支持Gemini对话和相关代码生成。
使用Gemini模型进行对话生成代码,效果类似于copilot,但是由于是谷歌自家的产品,所以对compose一类的生成特别友好,反而对java相关代码的生成支持力度稍差。(实际体验下来,目前不支持大陆,翻墙都不行)
主要分为几个功能:
1.和copliot一样的功能,支持对话和代码补全。
2.代码建议功能(暂未支持)。简单来说,就是可以选中一些代码,然后给予一些提示,比如说我觉得这块代码可以写的更精简,然后让Gemini来根据建议进行生成,生成的是diff文件,可以直接导入项目中使用。
3.生成错误报告(暂未支持)。
4.图生代码(暂未支持)。
这一块其实其它平台也有相关的图生代码的功能,这个的意思我感觉主要是功能的整合,直接介入到Android Studio中,使用更加方便。
Material优化
material是谷歌提供的一套控件支持库,提供各种各样的标准的控件供开发者使用,减轻开发者的工作量。material在新版本中,提供了更为广泛的控件,并且支持了大量compoes的控件。
Flutter功能优化-深层链接
Flutter性能优化
APP优化-BaseLine
支持库
五.Compose And Flutter
Flutter
Flutter 是由 Google 开发的开源 UI 软件开发工具包,用于为 iOS、Android、Web 和桌面应用程序创建本地编译的用户界面(UI)。
它主要的特点有:跨平台开发、高性能渲染、热重载、开发效率高。
-
性能方面。Flutter可以做流畅的动画,其性能甚至比原生还要强。下面使用Flutter写的游戏。
-
业内已经有人做了创新尝试,小米汽车。小米su7的手机APP端,以及部分车载APP均使用Flutter进行开发。
-
Flutter的上手成本较低,开发效率更高,也更节省代码。相同的页面,原生需要xml+java,而Flutter只需要一套。
-
在跨平台方案中,相对于H5,Flutter可以提供更流畅的用户体验。
Compose
Compose也是一套声明式UI框架,最初是为 Android 应用程序设计的,名为 Jetpack Compose。Compose本来只是用于新一代原生的安卓开发,但是随着compoes的推进,已经逐渐转变为一个可跨平台的方案。
Compose的主要特点是与安卓高度兼容、可视化开发、未来的跨平台、高效开发。
-
高度兼容。由于本身就属于jetpack开发包,所以与Android原生高度兼容,一项目完成可以部分用Compose,一个原生。
-
可视化开发。调试会更加方便,因为数据和页面都是代码完成,可以直接预览编写,而不用真的运行到车机上。之前XML的方案由于需要解析xml之后配合数据才能看效果,所以效率低。
-
高效开发。首先kotlin更节代码;其次声明式UI更符合主流开发形态;丰富的compose支持库。
感悟
开发提效方面,主要分为横向和纵向。纵向就是利用各种工具,让开发在同样的时间内输出更多的代码,并提高代码的质量。横向就是实现一套代码多平台运行,从而减少平台适配的成本,最典型的例子就是H5。
Compose和Flutter,都是跨平台的方面,他们相对于H5,React Native最大优势就是性能。一般来说,Flutter主要用于移动端开发,主要是手机+网页,主要原因是一套代码,适配Android、IOS、Chrome三个平台,通过跨平台的方案极大的降低开发成本。但是小米仅在一端上也适用Flutter,竟然也能大大降低成本,这是我所没有想到的。
我们现在往往遇到开发资源短时瓶颈的问题,如果车机、手机、后台页面开发完全使用一套框架,那么不但相似的页面可以复用,而且人员也可以实现相互的支持,就可以解决短期高投入需求人力不足的问题。
六.Home API 智能家居
Home API,是谷歌打造的智能家居平台,主要功能是帮助开发者为用户的手机和用户家里的家电搭建一座沟通的桥梁。开发者引入相关SDK之后,可以通过相关API控制用户家里的家电,或者获取家里家电的状态,并为开发者提供了一系列的模拟和调试工具,而且保证用户的设备信息安全。
对于开发者来说,不再需要一家家的对接各个设备商的协议标准,这种复杂的协议标准对接由谷歌来完成,开发者只需要对接谷歌一家即可。
对于车机来说,我们也可以打造汽车和家居联动的场景,比如在技能智造中设置距离家还剩下5公里的时候,打开家里的空调,避免用户去手动操控手机而带来的不安全性。
服务网站:developers.home.google.com/?hl=zh-cn
目前,这块的市场,在海外是很大的,目前全球已经有6亿台设备接入了Google Home。
并且我还参加了下午的专场活动,专场活动中,提供了更为明确的接入介绍以及相关问题的解答。
HomeAPI的主体框架如下,主要分为Application,HomeAPI,Cloud,家居设备四部分。
接入方案主要分为几步:
1.支持家居设备的设置选项;
2.支持和请求调试;
3.系统的设备绑定功能,这一步非开发工作,而是使用流程;
4.读取和设置设备的状态;
5.Automation API
AutomationAPI其实和场景引擎有些类似,也是提供一些组合允许用户自定义设置场景。比如触发器,条件,动作。与场景引擎有区别的是,AutomationAPI运行中Cloud端,哪怕手机关机,也可以正常运行。
回顾接入流程以及官方介绍文档:
介绍网站:https://developers.home.google.com/io/2024?hl=zh-cn
总结:
-
支持的家居电器厂商在大陆主要是小米和涂鸦。
-
相关的HOMEAPI是运行在系统框架下的独立服务进程,包括相关的弹框也是运行在这个独立进程之上。
-
家居设备设置流程是 APP进程->HomeAPI进程->谷歌Cloud->三方厂商Cloud(如小米)->家居设备。依赖谷歌云,所以目前大陆使用是受限的。
七.OmniLab 远程调试
OmniLab是谷歌新推出的一套远程调试设备的框架。我们经常遇到一类问题:比如某个特性机型出现崩溃,又或者需要适配折叠屏等特定机型的手机,但是单独买一台这种机器又十分不划算,所以这时候OmniLab就是一个很好的选择,它支持远程安装,断点调试,adb命令运行等等功能,几乎和本地通过数据线连接设备的功能一模一样。
目前支持的安卓设备主要包括三星、一加,以后应该会支持更多。
小结:
对于那些研发中心分布在全国各地的公司来说,也经常遇到缺少设备的问题,所以如果有这样一套系统,能够直接支持远程的调试,那么完全可以在上海直接调试深圳部署的设备,不但减少了出差旅途的时间,而且大大降低了差旅成本。
-
目前最新的Android Studio(Koala)已经支持,该功能是绑定项目的。
-
这是一个收费的功能,只是目前暂时是免费的。
-
这个功能是支持私域部署的,即部署的机器仅支持内部人员使用。
八.其它
FireBase
FireBase是谷歌打造的一个类似于bugly,但是比bugly更全面的异常排查分析平台,此次交流大会引入了AI功能,通过AI协助分析推断问题原因。但同样因为墙的问题,所以价值就不大了。