2023年Google开发者大会纪录

前言:

2023年,谷歌开发者大会仍然在上海举办,所以也是第三次申请到了门票参加开发者大会。

首先,先在门口留个念。

一.主旨演讲

一共分为7个环节,有7个不同演讲人。

第一部分主旨演讲(谷歌大中华区总裁-陈俊廷)

首为后续的演讲做一系列的铺垫,比如AI解锁业务新的增长点,数组人才培养计划。并且介绍了一些谷歌在中国的行动,比如惠育中国早教计划-帮助贫困地区的教育,以及谷歌公益等等。

谷歌艺术与文化

第二部分-AI融入工作(Jeanine Banks)

第三部分-移动端(演讲人史婧羽)

这里仍然只是粗略的介绍,下午的分享里面会有针对每个小环节的详细介绍。

安卓的一些特性

手机的应用跑在PC上

一些新的支持库

开发效率问题

Flutter介绍

Android Studio也支持聊天时代码生成了

如何打造多屏

手机和电视TV也可以使用compose

第四部分- WEB(演讲人:Paul Kinlan)

有关WEB相关的介绍,比如baseline支持web,以及Chrome的一些新的支持等等。

第五部分- AI(演讲人Jason Mayes)

这位的分享其实有一些重复,也举了面部识别玩游戏的例子,我就在这里稍微详细介绍下吧。

有一位游戏爱好者因为火灾导致双手受损,因为不能使用手去玩游戏了。Gameface就是解决这问题的,通过面部表情来控制操作,从而使这位游戏爱好者又可以愉快的玩游戏了。

第六部分-Google Cloud (演讲人刘婷)

我们使用AI,主要分为两方面,一方面,使用AI取辅助我们搜索,而VertexAI就实现企业内部AI搜索;

而另外一方面,生成式AI类似于GPT那边,可以和我们通过问答聊天的方式解决问题。这就是PaLM

第七部分-开发者社区 (演讲人:David)

二.移动开发技术前沿分享

第二个篇章,主要是谷歌技术推广部主管史婧和谷歌开发者关系工程师高寒蕊,这一块其实就是对主旨演讲的细化,当然,下午还有更细化的分享。

为多屏世界构建应用

Jetpack WindowManager 和WindowSizeClass

平台和应用质量

相机的HDR对应用开始支持,平常一般只有原生的相机拍出来的夜间模式才清晰,而现在,应用也可以了。

对登陆密钥的统一管理

以及还有Health Connect功能

开发效率

Glance库的引入;

compose的使用,目前支持TV和手表,以后或许会扩展到车机。

kotlin方面介绍的不多,其中提到了整体性能提升,这里的性能主要指的是协程。

设计规范和素材网站:

三.端侧机器学习

第三篇章主要是介绍端侧学习框架MediaPipe。

使用MediaPipe轻松实现设备端学习(王璐)

一般来说,端侧的机器学习确实操作起来是比较麻烦的,而MediaPipe就恰好的为我们解决了这问题,它就是一个低成本解决端侧学习的方案。

正常的端侧学习,需要拆解为以下四步才能完成识别,而如果使用MediaPipe,只要几行代码即可以搞定。

以及在网页中的使用方式:

并且还为我们介绍了端侧学习的开发工具,MediaPipe Studio。

Flutter依托机器学习展示

主要是介绍在flutter中生成图片和文本

然后上午的部分就结束了,吃个午饭,接着聊下午的部分:

四.如何让应用质量再攀新高

这一块的演讲人主要是谷歌开发者关系工程师-林楚峰。

我本来以为谷歌开发者大会会介绍安卓14的一些新的特性,但是结果真的让我失望了,对安卓14的特性介绍很少,感觉像是安卓14还没准备好,所以才没有发布。

这里既然说的是应用质量,那么肯定不会单单只介绍原生开发,自然包含了Flutter和compose的部分。

首先仍然是Flutter。这里介绍Flutter的优势,通过Flutter框架,来抹平平台性差异,所以开发一套Flutter是适配所有端的。

然后对Flutter的原子做了一个最初步的介绍,Flutter框架底层实现的原理:

接下来的部分就是介绍对原生的质量支持了。主要分为6个部分:

1.HDR视频/图片的支持;应用在使用摄像头的时候,也可以使用HDR功能来增强展示效果了,这一块其实就是对上午内容的补充。

2.高级相机功能。这块其实仍然是对摄像头的增加支持。

3.视频编辑。如图中描述,就不扩展了。

4.出色的音频。同上,不扩展了。

5.设备端机器学习。这里主要介绍的其实就是MediaPipe。

6.大屏设备。

使用相机功能时,可以使用cameraX和CameraViewFinder两个库来帮助我们开发。

再次推荐使用BaseLine,这其实并不是一个新的事务了,已经出现了好久了。其原理简单来说,就是用户提前把用户最可能最频繁用到的代码提前声明好,首次运行时,会把相应的代码转换为机器码,这样以后直接机器码使用AOT的方式,自然要比JIT的方式更快。当然除了这个基本功能外,还做了一定的DEX优化,不过这些需要高版本的gradle才能体验的到。

接下来就是一些仅有的安卓14的特性介绍了,新增加了一种短期前台服务类型,允许应用可以做一些操作后再退出。

如果想使用短期前台服务,配置方式如下:

然后技术质量方面还介绍了ADPF,这块介绍的时间比较短,我并没有了解清楚,后续有时间准备去了解下。

接下来,就是一些强制性的要求了。某些芯片已经不再兼容32位,所以搭载这些芯片的机型自然也不支持32位了。因此不久的将来,我们就可以只打包32位的so到我们的APK中。

第二个强制性要求,在安卓14的设备上,targetSDK低于23(6.0)的将无法安卓了。并且低于28(9.0)的也会收到警告。

接下来的部分是隐私和安卓,这块我感觉对我们开发的意义不大,就不细细介绍了。

五.提升开发工作效率

说到开发效率,谷歌自然首推的就是compose,一个用于代替安卓原生页面开发的框架。它通过简洁的写法,天生的数据试图绑定,来大大减少开发者的无效代码,从而提高效率。这次主要是compose增加了一些新的功能支持。

安卓14开始支持java17了,并且应该是引入了一些JVM虚拟机的新特性优化。

然后介绍了一系列提高效率的方法。

首先是工具这块,主要是Android Studio的一些功能更新

以及Studio Bot,一个基于AI代码生成工具。

第二部分是Compose设计规范

谷歌给Compose的空间定义了很多的设计规范,如果遵循这个规范,则风格上可以实现统一。并且我们还可以通过接入这样的设计规范库,来节省我们一部分的开发工作量。

第三部分是无障碍

这一部分还是很人性化的,其实很多应用开发者会直接忽略残障人士的使用感受,但是这样其实是不好的。谷歌给我们提供了一系列的方案,来协助我们应用开发优化无障碍使用。

第四部分是隐私和安全

这一部分主要介绍的就是Checks,一款用于隐私合规检查的平台。

六.玩转多设备体验

移动设备

主要是介绍如何提升一些大屏设备的用户使用体验。

为我们举了三个等级体验的例子:

除了大屏,还是有屏幕切换时状态丢失的问题,这时候,我们应该使用onSaveInstanceState等方案去解决这种问题。

以及多应用同时共享资源抢占问题:

在大屏状态下,有的Activity在pase之后仍然是可见的,即失去焦点。所以这时候我们可不能做资源的释放哦。

Compose for TV

这一块和上午的重复了,这一环节只是进行了一个更详细的阐述,但是其实差别不大。

并且还为汽车上的多屏进行了设计,但是这块介绍的很少

七.Android炉边对谈

Android炉边对谈这个环节,上一次开发者大会是没有的。这块我感觉很感兴趣的,它为我们普通开发者和谷歌交流提供了一次机会,普通开发者也可以直面谷歌进行沟通,提出一些自己的想法或者咨询一些技术上的问题。

当然,因为参与的是谷歌的开发者关系工程师和产品,并不是一线的研发,所以有的答案其实给的有可能并不是很准确。

大家大约提出了十多个问题,我这里收集了一些问题并且记录了谷歌的回复。

1.如何限制连锁启动的问题?

这个问题是我提的,我们现在使用一些应用,比如UC浏览器的时候,一不小心误触或者晃动一下手机,就会跳转到第三方APP的广告页面,使用体验感极差。我本想说能否通过权限管控的方式解决此类问题,比如添加一个是否允许跳转第三方应用的权限。但是给我的回复是他们更希望通过应用商店的方式来解决,即如果有此类跳转的应用并且没有合理说明,不允许上架应用商店。

2.谷歌有什么办法减小包大小的问题?

包大小其实分为两块,第一块是APK安装包,第二块应用安装后不断写入文件所占的存储空间。

其实在我看来这个和安卓关系不大,这块是应用应该自己处理的业务逻辑,应该应用自身去进行优化。谷歌给的答案是尽量把临时性的文件存储到临时文件夹下面(这种临时文件夹是会定期清理的)。

3.对加固有什么看法?

这个因为是谷歌开发者关系工程师,所以回答的其实是混淆相关的内容,这个其实有点答非所问了。加固这块其实主要还是如何防止APK反编译。

4.以后APP是否可以也可以支持PC?

上面介绍到,通过谷歌商店,某些手机游戏也可以支持PC。但是针对APP,仍然还是不支持的。

5.gradle升级之后不向下兼容?

gradle是项目构建工具,但是谷歌每次升级的时候,其实都没有考虑兼容性问题,导致并不是向下兼容的,这块谷歌确实做的不太优化。官方的回答是提工单反馈。

6.rust在安卓中的生态?

这块正在做,但是进度不方便说

最后,大家有什么问题要向谷歌咨询,或者有一些好的建议,可以通过:https://issuetracker.google.com/向谷歌反馈。

八.开发者互动体验

今年的开发者大会的规模明显不如去年,而且开发者互动活动这块,也是极其简单的。基本上10分钟就逛完了,没有什么看点,唯一一个印象比较深刻的是“妙笔生花 再绘辉煌”,进去小小体验了一步。

九.总结

仍然对这次的体验做了一个总结,分为优势和劣势两块,也不知道谷歌的官方人员能否看到,只是希望有机会他们可以看到这篇文章,了解一下我们普通开发者的感受吧。

优势:

1.多了很多对话的环节,这点真的很好。

劣势:

1.这次的分享,讲述的结构是很混乱的。比如安卓14的新特性,分在了质量,效率等好几个环节来讲,不连贯。而且其实质量的主题下面,很多内容和质量关系并不是很大。

2.有很多重合的地方。比如多次介绍了大屏设备的适配,而且规模都差不多。

3.体验感不够。开发者互动体验,竟然没有一款安卓14的手机,也没有什么compose/flutter的现场体验应用。如果没有现场直观的感受,如何能够说明compose在TV上已经支持的不错了,flutter已经完全抹平了平台差异呢?

猜你喜欢

转载自blog.csdn.net/AA5279AA/article/details/132897679