有幸被抽中了谷歌开发者大会的门票,做个记录和分享。
第一场(主会场):谷歌开发者大会开幕主旨演讲
1.谷歌大中华总裁陈俊廷做开幕演讲。
陈俊廷主要为后面的分享做了写铺垫。但是演讲中有一点还是让我挺感动的,他说谷歌是一家为替大家完成各种任务,提供各种帮助的公司。回想一下,确实好像真是。android,tensor flow,arcore这些,都是都是平台服务,而不是具体的某个产品。
2.谷歌高级开发工程师anno分享tensor flow。
Tensor Flow是一个开源机器学习框架。目前使用的app已经包含流利说/网易严选/网易有道。并且微信已经提供了tensor flow的js插件支持。
3.谷歌首席android技术推广工程师chet分享android10
android10更注重于创新和隐私。
主要变化有:针对权限有一些变化/支持5G/深色主题/kotlin为安卓第一开发语言/jetpack/android studio3.5
PS:后面有安卓的专项分会场分享
4.chrome首席技术推广官paul做chrome分享
这个不太关心,没仔细听
5.谷歌产品经理 樊舟颖 分享flutter
目前中国已经有很多app接入flutter了,比如腾讯叮当/咸鱼等等。
flutter目前已经实现了彻底的跨平台,一套代码,android/ios/网页三端运行,并且由谷歌来进行屏幕适配,保证稳定性。
6.谷歌产品管理总监 DennisTroper分享Wear OS
没太注意听,但是好像每一个上台的都带着谷歌手表。
7.谷歌分发合作伙伴主管金未垠分享ARCore
一个支持库,支持android和ios,提供ar功能。滴滴目前已经线上应用了。以后有空准备引入实验下
8.谷歌艺术于文化巴黎实验室负责人 Laurent Gaveau分享 谷歌艺术于文化
主要是推出了一款APP“观妙中国“,各大应用市场都可以下载。介绍各个博物馆的藏品,实景展现,挺酷炫。
9.谷歌北京研发中心总经理 陆韵晟 做总结。
第二场(分会场)渐进式Web应用:从移动设备到桌面设备
没太听懂
第三场(分会场)实现适用于网络的新功能
同样没太听懂
午餐时间,世博中心的午餐还不错。参与这次开发者大会,全程没花一分钱,统统免费。
第四场(分会场)Android开发最新技术概览(这场是重头戏,必须要重点听)
重点梳理如下:
1.READ_PHONE_STATE权限将会在android10被下线掉,应用无法获取设备的imei等信息。
2.存储权限有变动。首先应用读取SDCard中的某个文件,将只能通过弹出系统级的文件选择框的方式。后面有专场分享
3.后台进程将会被禁止启动activity。后面会有详细介绍。
4.获取地址位置权限添加了一项新选项:只允许被使用时使用定位权限。使用的含义和上面前台进程的概念差不多。前台进程的定义为展示在界面上,或者展示在通知栏当中。
5.其它隐私权限:
随机化MAC地址(缺省),说白了,就是以后无法通过mac地址来识别唯一的设备了。
获取FINE LOCATION权限才能调用telephony/WIFI/蓝牙扫描API。
获取CAMERA权限后才能访问getCameraCharacteristics()包含的于设备相关的特定元数据。
使用Setting Panel API展示设置界面,引导用户开关WI-FI/移动数据网络/飞行模式
新的网络连接API和网络建议API(无需定位权限)
6.全面屏的趋势
7.深色主题
8.通知的变更:
就是说以后能否弹出通知,将由系统预判断,用户最终决定。
9.Sharesheet API
10.折叠屏适配,果然各家大厂纷纷推出折叠屏之后,google也出手了。本人之前有幸做过华为折叠屏的适配工作,google提供的方案和我们之前使用的方案差不多。并且google提供了折叠屏的模拟器。
11.SAW*将被禁止,建议使用bubbles进行替代。
12.TLS 1.3默认开启
13.BiomertricPrompt。指纹识别
14.Kotlin First。后续有专场讲解。
15.Android App Bundle。使用App Bundle在Google Play上发布时,会按需在用户设备上安装相应版本的文件。
16.CameraX:面向开发者的摄像头支持库。后面也有专场介绍,不过我没听
17.JetPack Compose(pre-alpha):下一代的UI工具包,非绑定/响应式/kotlin优先。会面有专场介绍
18.View Binding+Data Binding
19.WorkManager+Navigation+Room等,略
20.ViewPager2
21.离线组件。这个还是挺爽的,每次换电脑开发的时候都需要重新sync一遍依赖包。如果能用本地包自然更好。
21.Android studio3.5的优化。
首先支持扩展内存了。之前无论怎么设置,as最多占用1.2GB的内容,更新到as3.5之后,可以通过界面跳高内存。
其次,as一旦发生崩溃,支持发送内存泄漏报告了。
22.Lint代码检查优化。跑lint检查的速度更快了。
第五场(分会场)使用kotlin进行android开发
一,kotlin的优势:
1.可互操作:于Android SDK和Java程序语言兼容。
2.与其它工具兼容:由IntelliJ设计,可与IntelliJ完美搭配使用。
3.安全:默认情况下,可避免空指针异常情况发生。
4.简洁:可减少样板代码的使用。
这是google给出的优势,具体样例我就不一一列举了。
二,协程代码,这个没太看懂,后面有时间研究下。
三,KTX
四,Android studio对kotlin的全面支持
五,google推荐的工程迁移到kotlin的流程。
实际上,我们公司之前也确实是按照这个流程来的。新文件使用kotlin->新模块整体改成kotlin->全面改为kotlin,耗时一年。
如何学习kotlin:
OK,我总结一下我认为的kotlin的优势和劣势吧
优势:
1.kotlin在编译期进行强制空指针检查,所以kotlin是空指针安全的
2.kotlin写法上要比java更简洁。毕竟kotlin就是当初JetBrains那群人觉得java书写不方便才创造出来的。
3.kotlin的书写更偏向js风格,js工程师学kotlin会及其方便。代码使用的可扩展性更强。
劣势:
1.断点调试改值不方便。(可以改值,但是麻烦)
第六场(分会场)如何组装你的jetpack
我之前没有用过jetpack,听下来,按照我我的理解应该就是一个支持库,使用这个支持库可以按照谷歌的推荐规范更方便的进行开发,让我们更专注于业务逻辑开发,差异性让谷歌去抹平。
基础组件:
最终谷歌工程师给出了一个demo工程,可以参考下。使用kotlin写的
https://github.com/googlesamples/android-sunflower
第七场 android10和隐私保护:使您的应用适应变更
1.新加定位权限。这是一个新加的权限,对应的应该就是上面的应用内才能使用的定位权限。
2.以后获取视频,推荐以API的方式,而不是直接遍历文件夹了。
3.下面这些场景,后台进程才允许启动activity
4.获取设备信息的变更,这对我可以是个噩耗。一直尝试根据某个值来永久判断唯一设备,看来以后是不行喽。
5.连接相关的API的变动
6.android10允许录制某个应用发出来的音频
最后,还领了一个google赠送的纪念包,谷歌爸爸还是蛮豪气的。本来以为顶多送个钥匙扣什么的。