当前位置: 首页 > >

2020Google开发者大会总结

发布时间:

今年比较特殊,由于疫情原因,Google开发者大会改为线上形式。但是依然如期举办,热情不减,今年核心主题是“代码不止”,分为6场线上科技盛会。11月16日,主题演讲,由Google大中华区总裁陈俊廷作主题报告;17日,主题是“更卓越的开发体验”,包括Android、Google Play、Chrome OS的性能改进;18日,主题是“高效的前端开发”,包括Flutter、Web.dev、Material Design高效的跨*台渲染;19日,主题是“机器学*技术”,包括TensorFlow与Google女性开发者职业发展座谈会,体现出公*化、人性化;20日,主题是“助力中国开发者成功出海”,主要包括Google Cloud、Google Assistant、游戏和移动应用、Firebase、Admob、Google Home智能家居;21日,主题是“科技为生活拓展无限创意与体验”,包括谷歌艺术与文化、ARCore by Google、Wear OS。开发者大会链接:https://developersummit.googlecnapps.cn/agenda/view/day-2/?sessionID=6252475496267776。


接下来,主要介绍与Android相关的主题内容,包括Jetpack开发包、Android studio新特性、Android11隐私安全、Flutter与Dart工具、Google Play新特性与新政策、Firebase与Admob。


一、Jetpack开发包

Jetpack加速开发包由钟辉老师作主题报告,主要包括:DataStore、Hilt、App Startup、Android Game SDK、Benchmark、Paging3、WorkManager、Navigation、ActivityResultContracts、Compose。


1、DataStore

DataStore用于数据存储,取代原有的SharePreference,具有的优势包括:


① 异步+UI线程安全+支持事务管理;


②?基于kotlin Flow API;


③?支持键值对+ProtocolBuffer;


④?提供SharePreference数据迁移;


2、Hilt

Hilt提供依赖注入Dependence Inject,提供Android作用域,整合Jetpack,用于取代Dagger。


3、App Startup

App Startup为应用初始化加速,应用和SDK库开发者都适用,支持惰性初始化模式,自动添加trace points。


4、Android Game SDK

Android Game SDK提供frame pacing:保持稳定帧率和降低输入延迟;performance tune:测量和优化帧率。


5、Benchmark

benchmark集成CPU分析器,支持CPU评测基准和内存分配追踪,优化内存分配时间,减少CPU负载。


6、Paging3

Paging3基于kotlin协程+Flow,支持header和footer,支持加载状态和重试,兼容paging2。


7、WorkManager

WorkManager,可延迟执行的任务,进程内调度器的改进,提高任务请求的吞吐量,支持长时间运行的任务以及优先级比较高的前台服务(需要向用户发送通知)。


8、Navigation

Navigation新特性包括:Dynamic feature modules、Deep linking优化、把结果返回给之前访问过的页面、Navigation backstack提供SaveStateHandle键值对进行存储。


9、ActivityResultContracts

ActivityResultContracts,简单化单次申请权限,抽象化Intent交互,取代startActivityForResult,常用的场景提供协定接口。用于调用系统相机拍照、打开文件、选择内容。


10、Compose

Compose,声明式UI框架,支持kotlin,视图互操作,与系统无关。


二、Android11隐私安全

Android11隐私安全由高级技术推广工程师陈卓作主题演讲,包括:单次访问权限限制、应用包可见性、用户数据保护、MediaStore API特性、文件访问限制、其他隐私变更。


1、单次访问权限限制

在Android11,对一些比较敏感的权限作了单次访问限制,包括:摄像头、麦克风、位置访问。其中位置访问限制又分为前台访问与后台访问,在targetSdkVersion为=30时,需要在manifest.xml显式声明的包括:Camera、MicroPhone。


2、应用包可见性

应用包可见性,在调用getPackageInfo时,会返回NameNotFoundException。


3、用户数据保护

Android11为用户数据提供更强保护,分区存储,Storage改为File&Media,WRITE_EXTERNAL_STORAGE和WRITE_MEDIA_STORAGE不会授予其他任何写访问权限。


4、MediaStore API

MediaStore API支持的操作:写访问、将媒体内容指定为“收藏”、将媒体内容移入垃圾桶、删除访问。


5、文件访问限制

Android11不允许App访问Root、Data、Download目录,仅授予核心功能需要完全访问共享存储的应用:文件管理、备份与恢复、反病毒。如下图所示:



6、MediaStore API特性

MediaStore API支持的操作:写访问、将媒体内容指定为“收藏”、将媒体内容移入垃圾桶、删除访问。


7、其他隐私变更

其他隐私变更包括:电话细分权限、Mac地址访问限制、系统警告浮窗访问限制。


三、Android Studio新特性

Android Studio推广负责人Jeffrey Van Gogh主要介绍kotlin工具性能:增量注解处理器、IDE性能、Gradle改进、kotlin符号处理;选择使用协程原因:结构化并发、非阻塞式顺序执行、取消广播、自然异常处理。


技术推广工程师李韧主要介绍Android Studio不同版本的新特性,3.6版本有View binding、模拟器、maps UI、leak detection、设计工具更新;4.0版本有Motion Editor、Live Layout、Inspector、Build Analyzer、CPU Profiler update。


四、Google Play新特性与新政策

Google Play新特性:原生代码崩溃进行符号化解析,类似bugly上传so库符号表进行原生代码崩溃堆栈还原。


Google Play新政策,春季更新:欺骗性行为政策、恶意软件政策、订阅政策、家庭政策、位置信息政策;秋季更新:付费政策、虚假陈述政策、赌博应用政策、跟踪软件政策。


五、Flutter与Dart

Flutter提供着色器sksl预热,在内存、速度、能耗、包体积等方面有所改善。Dart工具提供:布局检查、性能调试、内存调试、网络调试、包体积调试、调试器。另外,还邀请腾讯工程师讲解Flutter在Web开发实践,腾讯视频海外版WeTV加载Web页面优化:服务端渲染函数耗时,通过空间换时间,采用redis缓存;页面数据比较多,如果等待全部数据加载完毕再展示页面,可能有比较长时间的白屏等待过程,采用chunk分段加载。


?



友情链接: