Android 11 新特性

官网列的比较详细和全面,我这里就大白话简述下我了解的Android 11的部分新特性

无线调试

支持通过 Android 调试桥 (adb) 从工作站以无线方式部署和调试应用。简单点说就是不需要通过 USB 连接设备,避免常见的 USB 连接问题。对于开发人员来说,是不是很惊喜~~,哈哈,因为平时开发中,尤其用window开发, 经常会遇到 USB 连接不上设备的问题。
这里建议升级sdk到最新版本,我了解到的最新的sdk版本是31.0.2(2021 年 4 月)官方出的,添加了对无线配对的初步支持。6月份又对adb无线连接进行了改进。
在这里插入图片描述

ADB 增量 APK 安装

对于体积大的apk,比如大小2G以上的apk,安装可能需要很长时间。ADB(Android 调试桥)增量 APK 安装可以安装足够的 APK 以启动应用,同时在后台流式传输剩余数据,从而加速这一过程。如果设备支持该功能,并且您安装了最新的 SDK 平台工具,adb install 将自动使用此功能。如果不支持,系统会自动使用默认安装方法。
运行以下 adb 命令以使用该功能。如果设备不支持增量安装,该命令将会失败并输出详细的解释。

 adb install --incremental

 在运行 ADB 增量 APK 安装之前,您必须先为 APK 签名并创建一个 APK 签名方案 v4 文件。必须将 v4 签名文件放在 APK 旁边,才能使此功能正常运行。

从 Android 11 开始,已弃用自定义消息框视图。如果您的应用以 Android 11 为目标平台,包含自定义视图的消息框在从后台发布时会被屏蔽 自定义消息框

举例:后台无法弹出自定义Toast(注意限定条件:后台、自定义)
如果位于后台,只能弹出原生 Toast。如果不位于后台,可以弹出自定义Toast。Toast.getView() Toast.setView() 方法废弃,现在会返回空值

//下面是自定义Toast 显示文本+图片的Toast,已测试过

public static void showImageToas(Context context,String message){
    View toastview= LayoutInflater.from(context).inflate(R.layout.toast_image_layout,null);
    TextView text = (TextView) toastview.findViewById(R.id.tv_message);
    text.setText(message);    //要提示的文本
    Toast toast=new Toast(context);   //上下文
    toast.setGravity(Gravity.CENTER,0,0);   //位置居中
    toast.setDuration(Toast.LENGTH_SHORT);  //设置短暂提示
    toast.setView(toastview);   //把定义好的View布局设置到Toast里面
    toast.show();
}

媒体控件

Android 11 更新了媒体控件的显示方式。媒体控件显示于快捷设置旁。来自多个应用的会话排列在一个可滑动的轮播界面中,其中包括在手机本地播放的会话流、远程会话流(例如在外部设备上检测到的会话或投射会话)以及可继续播放的以前的会话(按上次播放的顺序排列)。用户无需启动相关应用即可在轮播界面中重新开始播放以前的会话。当播放开始后,用户可按常规方式与媒体控件互动。

详情,请参阅媒体控件
Android11 轮播形式显示多个应用
在这里插入图片描述

Android 11之前显示方式是下面这样
在这里插入图片描述

5G

android 11 中增加了对5G 网络的支持,增加了 “ 按流量计费性、5G 检测、带宽估测”三个功能。按流量计费性这个功能一旦确定用户当前使用的网络是 不按流量计费的,便可以显示分辨率更高的内容(如 4k 视频)、上传日志、备份文件,主动下载内容等。5G的潜力是非常巨大的,这个API可以确保用户充分利用可用的网速。

5G 检测功能可以检测设备是否连接到了 5G 网络,还能显示连接的是 5G NR(独立)网络,还是 NSA(非独立)网络。

带宽估测会给出带宽估测值,以方便用户自主选择要用哪种视频分辨率。在需要用到网络来上传数据时,通过监听网络的状况来选择合适的数据策略,

IME集成(IME大概就是输入法的意思吧)

Android 11 引入了新的 API 以改进输入法 (IME) 的转换,例如屏幕键盘。这些 API 可让您更轻松地调整应用内容,与 IME 的出现和消失以及状态和导航栏等其他元素保持同步。

如需在聚焦至任何 EditText 时显示 IME,请调用 view.getInsetsController().show(Type.ime())(您可以在与聚焦的 EditText 相同层次结构中的任何视图上调用此方法,无需专门在 EditText 上调用它)。如需隐藏 IME,请调用 view.getInsetsController().hide(Type.ime())。您可以通过调用 view.getRootWindowInsets().isVisible(Type.ime()) 检查 IME 当前是否可见。您还可以控制 IME 动画或其他系统栏(如导航栏)的动画。

键盘及其他 IME 现在可以在建议栏或类似的界面中以内嵌方式显示自动填充建议,而不是在下拉菜单中显示这些建议。为了保护密码和信用卡号等敏感信息,系统会将建议显示给用户,但在用户选择某条建议之前,IME 并不知道这些建议。

网络浏览器为我们带来太多便利的工作方式,我们现在可能认为这些都是理所当然的,自动填写就是其中一例,我们已经保存在浏览器甚至第三方应用中的填表信息就能带来这种便利,尤其是在打字如此繁琐的手机上,已经变得必不可少。无论是iOS还是Android都早就有了对这种自动填表系统的支持,但在很长一段时间里,Android的版本感觉离无缝衔接还差一步。这一点终于在Android 11中得到了解决,你不用再为了选择你想要填写的密码或信用卡信息而到处找信用卡

 由之前在输入框下面列表提示,改成了填充到键盘里

图片和相机

从 Android 11 开始,在主动使用相机时,应用可以使用 setCameraAudioRestriction() 以仅关闭振动、同时关闭声音和振动或都不关闭。

以前我们录屏的时候,这时候来了一条消息,消息的铃声就会录进去,Android 11现在可以关闭震动和声音,这样录屏中就不会被声音锁干扰。

更好地支持包含多个帧的 HEIF 图片

HEIF 图片一种高效的图片封装格式,在你按下快门的那一刻,自动记录前后几秒钟的视频和音频,并存储在一个HEIF格式的图片上,让照片不只是定格在某一个瞬间。

从 Android 11 开始,如果您调用 ImageDecoder.decodeDrawable() 并传递包含帧序列的 HEIF 图片(如动画或连拍照片),则该方法会返回包含整个图片序列的 AnimatedImageDrawable。在较低版本的 Android 系统中,该方法会返回仅包含单个帧的 BitmapDrawable。

如果 HEIF 图片包含的多个帧不在一个序列中,您可以通过调用 MediaMetadataRetriever.getImageAtIndex() 检索各个帧。

应用进程退出原因

在Android 11之前,我们想要了解应用退出的原因以及状态,都比较费劲。现 Android 11 引入了 方法:ActivityManager.getHistoricalProcessExitReasons() ,
可以让我们清楚地了解到应用退出的原因。

猜你喜欢

转载自blog.csdn.net/u010207898/article/details/118358123