Google I/O 2021 Android精华内容
Google I/O 2021结束了, 都有什么精彩内容呢?
Android部分的Playlist附上: Android & Play at Google I/O 2021
Developer Keynote (Google I/O '21)
对于Android的部分来说, 主要是:
Android 12
- user safety.
 - performance; improved app startup; customizable launch animations.
 - user experience; widgets.
 
Create beautiful apps, easier
现代化的Android开发.
- Android Studio的升级.
 - Kotlin: Kotlin Symbol Processing.
 - Jetpack: 各种libraries和Compose.
 
Build across screens.
- 各种屏幕.
 - Voice.
 - Watches: Health services.
 
The top 3 things to know in Modern Android Development | Android @ Google I/O'21
Android开发的三个top topic:
- Jetpack: 一系列的Jetpack libraries发布了新版.
 
- Tooling: Android Studio的升级, 有了WorkManager Inspector, UI的Inspector支持了View和Compose.
 - Kotlin.
 
What's new in Android | Keynote
Android 12 -> S.
@Deprecated-> deprecated.- Color.
 - Widgets.
 - Launch animations: 系统自带启动动画, 可以定制.
 - Notifications: 新的template style; 
Trampoline(?) 优化点开notification的那个短暂延迟. - Toasts: 带icon, 说明是哪个app弹的toasts; 控制个数.
 - Picture in Picture的改善.
 - ImageView有个setRenderEffect可以模糊照片了.
 - 可以用theme定制模糊.
 
- list的弹力拉伸效果. (我自己起的名字, 其实人家叫stretch overscroll).
 - Graphics: AVIF. 可以过滤支持的media类型.
 - Privacy: 关于permission的一些改进; 剪贴板内容会有toast说明来源; foreground restrictions.
 
What’s new in Android development tools | Session
Android Studio版本号设计.
- Preview工具可以设置横屏, 定制尺寸, 显示blueprints, play animation. Compose的preview有交互模式.
 - Accessibility test framework scanner.
 - 适配多种屏幕: Layout validation.
 - 折叠屏, 手表.
 - 模拟器还可以模拟heart rate.
 - snapshots test.
 - WorkManager的tasks.
 - Migrate to Non-Transitive R Classes...
 
What’s new in Jetpack | Session
解释了Jetpack的初衷和现状.
alpha和beta版本的意思.
- Experimental Annotations -> Stable.
 - CameraX -> Stable.
 - AppSearch -> Alpha.
 - DataStore -> 用来取代SharedPreferences.
 
- Security Crypto -> Stable.
 - Hilt -> Stable.
 - WorkManager -> Stable. (Android Studio也推出了新的WorkManager Inspector.)
 - Room -> Stable.
 
- ConstraintLayout -> Stable. MotionLayout + Motion Editor.
 - Fragment -> Stable.
(详见release notes: https://developer.android.com/jetpack/androidx/releases/fragment.)
重建了FragmentManager; 新增了get result的callback; 废弃了一些API, 并且Fragment StrictMode可以检测项目中是否还在使用. - Navigation -> Alpha. 现在支持多个backstacks.
 - Google Shortcuts -> Alpha.
 - EmojiCompat -> Alpha. (AppCompat 1.4.0以后默认包含.)
 - Paging -> Stable.
 - Macrobenchmark -> Alpha. (app启动和滚动效率; local/CI.)
 - Compose integrations.
 
What's new in Jetpack Compose | Session
为什么我们需要一个全新的UI Toolkit呢. -> 为了适应更加现代化的开发方式.
faster & easier.
Compose将数据转换成UI.
Checkbox的例子:
UI完全由参数控制. -> single source of truth. 没有其他的状态需要sync.
把参数和回调提到方法参数中去:
- You completely describe your UI for a given state.
 - The framework updates your UI when the state changes.
 
这里有个图, 推荐ViewModel暴露一个Screen状态, 集中管理, 然后下发到每个composable.
这样也利于测试.
Compose实现了material design, 提供了组件, 还有theming system.
有一个owl app的实现解说.
和传统view的interop.
State of Kotlin on Android | Session
- Kotlin变得越来越流行, 不仅app, 还有server.
 - Kotlin Symbol Processing目前发布了alpha.
 - 编译器的升级.
 - 好多好多的ktx库.
 - protobuf的支持: https://developers.google.com/protocol-buffers/docs/kotlintutorial
 - coroutines的debugger -> coming soon. 可以在线程之间跳转, 查看信息.
 
What’s new in Android Gradle plugin | Session
New APIs in the Android Gradle Plugin
Using Jetpack libraries in Compose | Session
Jetpack Compose和Jetpack中其他库可以很好的结合使用.
Top 12 tips to get ready for Android 12 | Session
Getting Ready for Android 12.
- Developer Options -> App Compatibility Changes.
 - Foreground services were designed for multi-tasking and completing a user action. -> 从后台启动foreground services将被限制.
 - Expedited Jobs with WorkManager APIs.
 - User may turn off the mic and camera sensors using mic and camera toggles.
 - Apps that have not been used for an extended period will be hibernated. (permissions, storage, services)
 - Nearby device permission. Decouple Bluetooth scanning from Location.
 - MAC address restriction.
 - Safe component exporting. 有intent filter就必须显式声明exported.
 - Custom notifications deprecation.
 - App link improvements.
 - WebView Samesite.
 - New stretch overscroll.
 
Google I/O 2021 Android精华内容的更多相关文章
- Android - 分享内容 - 接收其他APP的内容
		
就象程序可以发送数据给其他程序,所以也可以接收其他程序的数据.想一下用户如何和程序交互,以及想从其他程序接收什么样类型的数据.例如,一个社交程序可能对接收其他程序的文字(比如有趣的网址)感兴趣.Goo ...
 - Google 地图 API for Android
		
原文:Introduction to Google Maps API for Android 作者:Eunice Obugyei 译者:kmyhy 从健康类 app Runkeeper 到游戏 app ...
 - Android Google 地图 API for Android
		
从健康类 app Runkeeper 到游戏 app 精灵宝可梦,位置服务对现代 app 来说越来越重要. 在本文中,我们将创建一个 app,名字就叫做 City Guide.这个 app 允许用户搜 ...
 - 一培训机构设计的学习android课程内容:供大家参考
		
转自:http://www.cnblogs.com/csj007523/archive/2011/06/16/2082682.html 一培训机构设计的学习android课程内容:供大家参考 第一阶段 ...
 - 如何使用Google Map API开发Android地图应用
		
两年前开发过的GoogleMap已经大变样,最近有项目要用到GoogleMap,重新来配置Android GoogleMap开发环境,还真是踩了不少坑. 一.下载Android SDK Manager ...
 - 【风马一族_Android】Android 前端内容1
		
Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...
 - 【风马一族_Android】Android 前端内容
		
Android 前端内容 4.1 View 类概述 4.1.1 关于 View //类型说明 view(视图)指的是用户界面组件的基本构建基块.一个视图占据屏幕上的矩形区域,负责绘图和事件处理.视图是 ...
 - android RelativeLayout 内容居中解决办法
		
android RelativeLayout 内容居中解决办法: 使用Linearlayout本来利用父控件的gravity属性是很好解决的.但是对应RelativeLayout虽然有 gravi ...
 - Google用户登录界面 Android实现
		
实验效果: 项目目录: Java代码(放在Src文件下) package com.bn.chap9.login; import java.io.BufferedReader; import java. ...
 
随机推荐
- 005-Java中的控制语句
			
目录 一.控制语句 一.作用 二.分类 二.选择语句(分支语句) 一.if 语句 二.switch语句 三.循环语句 一.for循环 二.while循环(while循环的循环次数是:0~n次) 三.d ...
 - JAVAEE_Servlet_02_Servlet接口实现类HttpServlet
			
Servlet接口实现类 * Servlet接口: Servlet接口是来自于Servlet规范下的一个接口,存在于HTTP服务器(Tomcat)所提供的jar包中.Servlet-api.jar. ...
 - Day15_87_通过反射机制获取某个特定的方法
			
通过反射机制获取某个特定的方法 反射是通过 方法名+形参列表来区分各个方法的(形参列表要用class类型.加.class) 示例代码 import java.lang.reflect.Method; ...
 - Tomcat部署环境
			
环境搭建:程序文件(开发人员),相关的软件(web服务器,应用服务器,数据服务器),硬件(服务器设备上),网络环境. 文档:部署文档说明书(操作系统,硬件配置,服务器软件及相关..) 下面举个列子,考 ...
 - 07-  移动端app弱网测试与fiddle弱网测试
			
从下面几个点了解弱网测试: 什么样的网络属于弱网. 低于2g速率的时候都属于弱网,也可以将3g划分为弱网,一般WiFi不纳入弱网范畴. 为什么要进行弱网测试 ①按照移动特定,各种网络连接协议不同,导致 ...
 - 4.Linux命令基本格式与简单使用
			
Linux命令名组成: 在Linux/Unix系统下输入命令,就会进行相应的操作,那么这个命令有如下组成: 命令名 [选项] [参数] 注:[]的内容代表可选 命令实例: ls #显示当前文件夹下的所 ...
 - dedecms arclist分页
			
https://blog.csdn.net/qq_41104911/article/details/81510589
 - 【ShardingSphere】ShardingSphere学习(一)
			
参考官方文档:http://shardingsphere.apache.org/ ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC.Sha ...
 - hdu5033 最大仰望角
			
题意: 给你n个楼房排成一条直线,楼房可以看成是宽度为1的线段,然后给你m组询问,每组询问给你一个坐标,输出在当前坐标仰望天空的可视角度. 思路: n比较大,O(n*m)肯定跪 ...
 - Xposed学习三:基石
			
在上一篇我们留下问题:handleLoadPackage如何生效即在何时被执行. 先看XposedBridge.class的main(该函数是在appruntime.start函数中替换原先zygot ...