您的位置:

了解 Android R:最新版本中的新功能和改进

了解 Android R:最新版本中的新功能和改进

更新:

一、可变的屏幕刷新率

在 Android R 中,增加了对可变屏幕刷新率的支持,为了提高用户的体验和节省电量。

通过 WindowManager API 中添加了新的 API,应用可以查询显示器是否支持可变的刷新率,如果支持,应用可以请求不同的刷新率。例如,如果应用正在播放视频,则可以请求高刷新率,如果应用主要是显示静止内容,可以请求低刷新率。显示器会根据应用的请求调整刷新率,以达到更好的用户体验和能源效率。

Display.Mode mode = display.getMode();
if (mode.getPhysicalRefreshRate() >= 90) {
    // If refresh rate is sufficiently high, switch to 90Hz refresh rate
    mode = new Display.Mode(mode.getModeId(), 1080, 2340, 90);
    display.requestMode(mode);
}
else {
    // If refresh rate isn't good enough, switch to 60Hz refresh rate
    mode = new Display.Mode(mode.getModeId(), 1080, 2340, 60);
    display.requestMode(mode);
}

二、全新的权限管理

在之前的版本中,应用开发者可以在应用安装时就申请所有需要的权限。然而这可能会导致用户被迫授权一些他们不想给予的权限,或者在必要时缺乏对权限的掌控。在 Android R 中,全新的权限管理功能可以授予用户更多的控制权。

如果应用需要使用敏感权限,如访问位置或相机,应用将必须要经过用户授权才能使用这些权限。此外,Android R 引入了“一次性权限”,这是一种一次性的,用完即销毁的权限,使得应用能够获得临时访问适当数据的权限,但接下来不再需要这个权限。

// 申请 ACCESS_FINE_LOCATION 权限
if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.ACCESS_FINE_LOCATION)
        != PackageManager.PERMISSION_GRANTED) {

    // 如果没授权,那么就需要申请授权
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.ACCESS_FINE_LOCATION)) {
        // 给出提示信息,告诉用户没有这个权限时 APP 不能正常使用
    } else {
        // 否则直接申请授权
        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                MY_PERMISSIONS_REQUEST_LOCATION);
    }
}

三、无限的无线连接

在 Android R 中,Google 引入了一种名为“连接感知”的新技术,它可以让 Android 设备更好地管理多种无线连接的同时,提供了更好的连接质量和保障用户隐私。

例如,当你正走在街上,Wi-Fi 信号强度正在不断变化。如果你正在通过这些 Wi-Fi 网络进行数据传输,这可能会导致应用程序的延迟和停顿。 Android R 可以识别这些变化,并在连接更好的 Wi-Fi 网络时自动转换到该连接。

ConnectivityManager cm = getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest request = new NetworkRequest.Builder()
        .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
        .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
        .build();
cm.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() {
    @Override
    public void onAvailable(Network network) {
        // 在这里处理网络变更的操作,例如:更新 WebView 连接
    }
});

四、增强的隐私保护

Android R 中增强了隐私保护功能。例如,应用程序现在需要使用一个新的读取外部存储权限,以访问用户外部存储中的文件,这意味着应用程序不能更轻易地访问用户的个人数据。此外,Android R 还支持应用程序访问私有区域中的共享文件。

Android R 还包括一个应用程序许可来限制应用于特定数据的访问。例如,如果一个音频应用需要访问用户电话状态,这不再需要使用 READ_PHONE_STATE 权限,但内部 API 可以通过使用应用程序许可权进行访问。

if (ContextCompat.checkSelfPermission(thisActivity,
                Manifest.permission.READ_PHONE_STATE)
        != PackageManager.PERMISSION_GRANTED) {

    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.READ_PHONE_STATE)) {
        // 给出提示信息,告诉用户没有这个权限时音频应用的功能可能会受限
    } else {
        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.READ_PHONE_STATE},
                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
    }
}
else {
    // 音频应用可以直接访问电话状态
}

五、更好的企业设备管理

企业设备的安全性是个很大的话题,并且在 Android R 中得到了一些重大的改进。Android R 减少了许多攻击点,例如,至少需要设备锁来访问企业资产和 Quick Settings 权限。Android R 也支持针对企业定制的自定义设置、应用列表和网络管理。

Android R 通过增加 Admin API,使得企业可以对设备进行更好的管理。企业管理员可以限制工作个人数据的访问,或在用户退出企业时清空容器,这些都为企业设备管理提供了更多的选择。

private static final String TAG = "PolicyManagerSample";
private DevicePolicyManager mDpm;
private ComponentName mProfileOwner;

public void createProfile(View view) {
    Intent intent = new Intent();
    intent.setAction(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE);
    intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME,
            getPackageName());
    intent.putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME,
            new ComponentName(this, PolicyManagerReceiver.class));
    startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE);
}

public void enableCameras(View view) {
    mDpm.setCameraDisabled(mProfileOwner, false);
    Log.i(TAG, "Cameras enabled");
}

public void disableCameras(View view) {
    mDpm.setCameraDisabled(mProfileOwner, true);
    Log.i(TAG, "Cameras disabled");
}

总结

Android R 提供了许多新的功能和改进,以满足不断变化的用户需求和进步的技术趋势。其中一些功能包括可变的屏幕刷新率、全新的权限管理、无线连接和隐私保护的增强。企业设备管理方面也得到了很大的改进。开发者和用户都有了更好的体验和保障。

了解 Android R:最新版本中的新功能和改进

一、可变的屏幕刷新率 在 Android R 中,增加了对可变屏幕刷新率的支持,为了提高用户的体验和节省电量。 通过 WindowManager API 中添加了新的 API,应用可以查询显示器是否支

2023-12-08
Android Pie:更新系统和增强用户体验的新方式

Android Pie(Android 9)是谷歌近年来为Android平台推出的一次重大版本更新。它开创了一些全新的更新方式,不仅增强了设备的安全性和性能,也进一步改善和简化了用户体验。接下来我们将

2023-12-08
Android M最新版本带来无与伦比的用户隐私保护功能

Android M是Google在2015年推出的操作系统。相比前一版本的Android 5.0,Android M引入了许多新的功能,其中最受瞩目的就是其无与伦比的用户隐私保护功能。在这篇文章中,我

2023-12-08
Android R:新一代操作系统的全面升级之路

2023-05-14
Android R—新一代的移动操作系统

2023-05-23
Android 7.0更新了哪些新功能?

一、多窗口模式 Android 7.0增加了多窗口模式的支持,使得用户可以同时在同一个屏幕上运行两个应用程序,可以通过设置和管理应用程序来轻松地切换和调整大小,让用户能够更好地进行多任务处理。 开启多

2023-12-08
Android 28 新增的便捷工具和功能大揭秘

2023-05-14
深入了解Android 33

2023-05-22
下载最新的Android Studio IDE

2023-05-14
全面升级!迎来Android 12的新功能

2023-05-14
阿里云笔记的功能与使用详解

2023-05-21
新版Android Studio——提高开发效率的利器

一、依赖管理 在新版Android Studio中,依赖管理更加方便。可以通过在build.gradle中添加一些依赖库,并通过Gradle系统自动下载相应的依赖项,不再需要手动下载和添加。 depe

2023-12-08
Android N:探索新一代移动操作系统的特性和功能

Android N是目前最新的Android系统版本,其在功能和体验方面有很大的提升和改进。以下将从多个方面对其进行阐述。 一、多窗口模式 Android N引入了多窗口模式,使用户能够在同一屏幕上同

2023-12-08
Android 4.3:全面升级的新版本

2023-05-23
提升通信效率的Android QQ新版本发布

2023-05-14
提高Android开发效率的必备工具——Android St

如果您是一名Android开发者,那么您一定需要一款能够提高开发效率的工具。而目前,最受欢迎的工具非Android Studio莫属。它是由谷歌公司开发的一款支持Java和Kotlin语言的集成开发工

2023-12-08
Android N: 一场新的体验

2023-05-22
Android API版本简介及特性概述

Android是由Google公司领导开发、目标面向移动设备的操作系统。而Android的API版本则是指提供给开发者的应用程序接口,这些接口包含了应用程序开发所需用到的各类组件和资源。本文将对And

2023-12-08
Android Studio历史版本下载和安装

2023-05-14
如何在旧版Android模拟器上运行最新的应用程序

一、背景介绍 随着移动应用程序日益普及,Android模拟器成为了很多开发者和测试人员必备的工具。但是,旧版的Android模拟器可能无法支持最新版本的应用程序。这篇文章将介绍如何在旧版Android

2023-12-08