Now in Android 16 —— 最新 Android 动态分享

简介: Now in Android 16 —— 最新 Android 动态分享

AndroidX Release


和往常一样,最近更新了很多 AndroidX 类库,其中包含两个 stable 版本:

包含一些 bug fix,并没有什么新特性。

除此之外,还有很多的 RCbetaalpha 版本更新。作者挑了两个动画相关的 alpha 版本更新着重说明, Core-Animation 1.0.0-alpha01  和   Vectordrawable-Seekable 1.0.0-alpha01

Core-Animation 1.0.0-alpha01 应该是把之前的动画  API 搬到 androidx 上了,并添加了一些新特性,就包括 AnimatedVectorDrawable,它具备 seekable 特性,可以暂停和恢复,自动设置动画位置。

更多详细信息,可以查看官网相关文档。


文章和视频


Database Inspector

image.png

关于 Database Inspector, 我前几天专门写了一篇文章做了详细介绍,数据库还可以这么看 ?

这里再简单说一下,通过 Database Inspector ,你可以在 Android Studio 中快速查看和修改你的数据库表数据,除此之外,你也可以执行 Sql 语句。如果你使用的是 Room 数据库,你还可以直接执行你的 Dao 文件中的 Sql 语句。


另外说一点,我的文章是基于 Android Studio Canary 5 写的。在最新的 Android Studio Canary 6 中,已经支持了 Live Update 功能,即你再修改表数据之后,UI 页面会自动刷新,而之前你必须得手动刷新才能看到修改。


更多详细内容,可以阅读我的文章,也可以阅读 Google 团队的文章,地址如下:

https://medium.com/androiddevelopers/database-inspector-9e91aa265316


操作符重载

这是 Kotlin Vocabulary 系列的新文章,介绍了 操作符重载 ,原文地址如下:

https://medium.com/androiddevelopers/code-expressivity-with-operator-overloading-ada22a0ca633

正常情况下,+-*/ 等符号只能应用于特定类型,通过 Kotlin 的操作符重载,你可以对任意对象使用这些符号。举个文中最简单的例子,

operator fun ViewGroup.plusAssign(other: View) = addView(other)
复制代码


然后你就可以这样使用了。

viewGroup += view
复制代码


原理其实也很简单,编译器的黑魔法而已。你查看字节码就可以看到,符号又被替换回了 plusAssign() 方法。

目前 Kotlin 支持的重载操作符有这些。

image.png

Kotlin 在一些方面留给了开发者很大的自由发挥空间,像操作符重载,扩展函数等。你可以充分发挥自己的想象力去创造代码,这也是我很喜欢 Kotlin 的一个重要原因。


Material Design Components

Nick Rout 的一篇新文章 Migrating to Material Components for Android ,地址如下:

https://medium.com/androiddevelopers/migrating-to-material-components-for-android-ec6757795351

这个其实就是 com.google.android.material:material:1.0.0 ,用以代替以前的  Design Support 库。最近由 1.0.0 升级到了 1.1.0 ,有许多的细节更新,包括 Dark Theme ,完整的 Material  主题支持(包括颜色,样式),新的组件(FAB,data picker) 。


作者建议如果你是从 Design Support 库升级上来的,先升级到 1.0.0 版本,没有问题的话再升到 1.1.0 版本。


文中有许多的更新细节,这篇文章我还没有细看,后续会将我的开源 Wanandroid 项目也更新到 1.1.0 版本。

另外,还有视频版本,地址如下:

https://www.youtube.com/watch?v=64OD1PAqELg&feature=emb_logo


One Tap

image.png

这个类似国内的各种 一键免密登录,由 Google Identity Services 提供。当然也就意味着,跟我们大多数人没太大关系。如果你是出海应用,可以关注一下。

https://medium.com/androiddevelopers/one-tap-sign-in-for-android-apps-2259ce15bc2c


LiveData

受疫情影响,Jose Alcérreca 继续他的 录屏系列

两个一分半的视频。第一个视频介绍了协程和 LiveData 的基本使用。

https://www.youtube.com/watch?list=PLNUr_cTShrWZNKJlnurh5MB1wkSEU2nlw&time_continue=1&v=KUn0-D6DpuY&feature=emb_logo

第二个视频介绍了 switchMap 的基本使用。

https://www.youtube.com/watch?v=KUn0-D6DpuY&list=PLNUr_cTShrWZNKJlnurh5MB1wkSEU2nlw&index=6


Sample Code


定位,定位,定位

(重要的事情说三遍。)

关于 Android 11 中定位功能的相关变化,在前面几期的 Now in Android 中已经做过介绍。如果你还不了解的话,可以看看 Google 重写过后的 Android Location Codelab ,地址如下:

https://codelabs.developers.google.com/codelabs/while-in-use-location/index.html?index=..%2F..index#0

这个 codelab 提供了前台请求定位的最佳实践。所谓前台是指应用可见,或者应用正在运行一个有通知的前台服务。

那么后台请求定位呢?首先,是不建议后台请求定位的,除非你有合理的用户场景。如果真的有用户场景的话,官网也有相关介绍:

https://developer.android.com/training/location/background

后台请求定位的示例代码:

https://github.com/android/location-samples/tree/master/LocationUpdatesBackgroundKotlin


无障碍

其实我也不知道国内有多少应用会去做无障碍的,包括我自己也没有做过。Google 建议每一款 App 都要考虑到特殊人群无障碍使用。

Shailen Tuli 发布了两个 codelab 来帮助开发者完成无障碍适配。第一个 codelab 介绍了一些通用问题和解决方案,地址如下:

https://codelabs.developers.google.com/codelabs/starting-android-accessibility/#0

第二个 codelab 介绍了如何使用 Espresso 完成无障碍相关的自动化测试。地址如下:

https://codelabs.developers.google.com/codelabs/a11y-testing-espresso/#0



相关文章
|
6月前
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
163 7
|
6月前
|
XML Java Android开发
Android RecyclerView用代码动态设置item的selector
Android RecyclerView用代码动态设置item的selector
48 0
|
7月前
|
XML Java Android开发
Android控件动态使用 (转)
Android控件动态使用 (转)
43 1
|
7月前
|
测试技术 Android开发 开发者
RK3568 Android系统客制化动态替换ro任意属性
RK3568 Android系统客制化动态替换ro任意属性
327 1
|
7月前
|
安全 Android开发 数据安全/隐私保护
Android中的动态权限请求与最佳实践
【4月更文挑战第14天】 在现代安卓应用开发中,用户隐私和安全被赋予了前所未有的重要性。随着Android 6.0(API级别23)引入的运行时权限模型,开发者必须更加细致地处理权限请求,以确保应用功能的完整性同时不侵犯用户的隐私。本文将深入探讨如何在Android应用中实现动态权限请求,分析常见问题,并提供一系列最佳实践,以帮助开发者优雅地处理这一挑战。
449 5
|
7月前
|
Android开发
Android热补丁动态修复实践,腾讯&字节&网易&华为Android面试题分享
Android热补丁动态修复实践,腾讯&字节&网易&华为Android面试题分享
|
7月前
解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com
解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com
130 5
|
7月前
|
XML Android开发 数据格式
android 9 Systemui 动态隐藏导航栏
android 9 Systemui 动态隐藏导航栏
232 0
|
7月前
|
Android开发
安卓动态申请权限
安卓动态申请权限
53 0
|
7月前
|
Shell Android开发 开发者
Android系统 自定义动态修改init.custom.rc
Android系统 自定义动态修改init.custom.rc
412 0