android核心版本特性(官网)

看了一些文章~没有合适的,个人觉得对于一些和编程无关紧要的特性,比如xxx速度提升多少这种就不要列出来啦~

下面是从官网中截取的部分我觉得重要的特性。如果想看全面完整的:官网,不用科技也能看~就是慢一丢丢。

 

1、4.0特性

全屏沉浸模式

现在,您的应用可以利用设备屏幕上的每一个像素显示内容和捕获触摸事件。 Android 4.4 添加了新的全屏沉浸模式,让您可以在手机和平板电脑上创建从一个边缘延伸到另一个边缘的全出血 UI,隐藏所有系统 UI,例如状态栏和导航栏。它适用于鲜艳的视觉内容,例如照片、视频、地图、书本和游戏。

在新模式中,系统 UI 保持隐藏状态,即使在用户与您的应用或游戏交互时 - 您可以从屏幕上的任何位置(甚至在系统栏占据的其他位置)捕获触摸事件。这是您在应用或游戏中创建更大、更加丰富和更加沉浸式的 UI 并减少视觉分散的绝佳方式。

为确保用户在全屏沉浸模式中始终能轻松、一致地访问系统 UI, Android 4.4 支持新的手势。现在,在沉浸模式中,从屏幕顶部或底部边缘滑动手指可以显示系统 UI。

要返回沉浸模式,用户可以触摸栏界限之外的屏幕或等待一小段时间,让栏自动隐藏。为提供一致的用户体验,新的手势还与之前隐藏状态栏的方法配合使用。

android核心版本特性(官网)_第1张图片

用于动画场景的转场框架

大多数应用围绕几个显示不同操作的关键 UI 状态构建流程。许多应用还利用动画,通过这些状态和每种状态下可用的操作,帮助用户了解其进程。为简化在您的应用中创建高质量动画的过程, Android 4.4 引入新的转场框架。

利用此转场框架,您可以定义场景、典型视图层次和转场,它们描述如何在用户进入或退出场景时制作场景动画或转换场景。您可以使用多种预定义的转场类型,根据特定属性(例如布局界限或可见性)制作场景动画。还有一种自动转场类型,可以在场景切换时自动淡出淡入、移动视图和调整视图大小。此外,您可以定义自定义转场,为对您的应用最为重要的属性制作动画,而且您可以在必要时插入您自己的动画样式。

利用转场框架,您还可以针对 UI 变更动态制作动画,而无需定义场景。例如,您可以对视图层次进行一系列更改,然后让 TransitionManager 对这些更改自动运行延迟转场。

设置转场后,即可直接从您的应用调用转场。例如,您可以调用一种方法开始转场,在视图层次中进行各种更改,在下一帧中动画将自动开始,以动画形式呈现您指定的更改。

应用可以使用新的窗口样式请求透明系统状态栏。

要自定义控制在您的应用流中特定场景之间运行的转场,您可以使用 TransitionManager。利用 TransitionManager,您可以定义场景和为特定场景更改运行的转场之间的关系。

透明系统 UI 样式

要使内容发挥最大作用,您现在可以使用新的窗口样式和主题请求透明系统 UI,包括状态栏和导航栏。为确保导航栏按钮或状态栏信息清晰可辨,在系统状态栏后面显示微妙的渐变效果。典型用例是需要显示出壁纸的应用。

android核心版本特性(官网)_第2张图片

2、 5.0特性

Android Runtime (ART)

在Android 5.0 中,ART 运行时取代Dalvik 成为平台默认设置。Android 4.4 中已引入处于实验阶段的ART 运行时。

Material Design 样式

在白色(或非常浅)的背景上使用深色文本绘制通知,以便与新的Material Design 小部件匹配。请确保您的所有通知都与新的配色方案协调一致。

声音和振动

如果您当前使用RingtoneMediaPlayerVibrator类向通知中添加声音和振动,则移除此代码,以便系统可以在“优先”模式中正确显示通知。取而代之的是,使用Notification.Builder方法添加声音和振动。

将设备设为RINGER_MODE_SILENT可使设备进入新的优先模式。如果您将设备设为RINGER_MODE_NORMALRINGER_MODE_VIBRATE,则设备将退出优先模式。

以前,Android使用STREAM_MUSIC作为主流式传输来控制平板电脑设备上的音量。在Android 5.0中,手机和平板电脑设备的主音量流式传输现已合并,由STREAM_RINGSTREAM_NOTIFICATION进行控制。

 

绑定到服务

Context.bindService()方法现在需要显式Intent,如果提供隐式intent,将引发异常。为确保应用的安全性,请使用显式intent启动或绑定Service,且不要为服务声明intent过滤器。

 

处理 Intent

设备管理员可以从托管配置文件限制对系统应用的访问权限。在此情况下,如果应用从托管文件触发一个通常由该应用处理的 intent,且托管文件上没有适合此 intent 的处理程序,则此 intent 会引发异常。例如,设备管理员可以限制托管配置文件上的应用访问系统的相机应用。如果您的应用在托管配置文件上运行,并为 MediaStore.ACTION_IMAGE_CAPTURE调用 startActivityForResult(),且托管配置文件上没有可以处理此 intent 的应用,则会导致 ActivityNotFoundException

为防止出现此情况,您可以在触发任何 intent 之前检查是否至少有一个适合此 intent 的处理程序。要检查是否存在有效的处理程序,请调用 Intent.resolveActivity()。您可以在轻松拍照:使用相机应用拍摄照片中查看执行上述操作的示例。

static final int REQUEST_IMAGE_CAPTURE = 1;

private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}

请注意,该startActivityForResult()方法受调用条件的保护,该条件 resolveActivity()返回可以处理intent的第一个活动组件。执行此检查很重要,因为如果您startActivityForResult()使用无应用程序无法处理的意图进行调用,您的应用程序将崩溃。因此,只要结果不为null,就可以安全地使用intent。

 

3、6.0特性

运行时权限

此版本引入了一种新的权限模式,如今,用户可直接在运行时管理应用权限。这种模式让用户能够更好地了解和控制权限,同时为应用开发者精简了安装和自动更新过程。用户可为所安装的各个应用分别授予或撤销权限。

对于以Android 6.0(API级别23)或更高版本为目标平台的应用,请务必在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的checkSelfPermission()方法。要请求权限,请调用新增的requestPermissions()方法。即使您的应用并不以Android 6.0(API级别23)为目标平台,您也应该在新权限模式下测试您的应用。

 

低电耗模式和应用待机模式

此版本引入了针对空闲设备和应用的最新节能优化技术。这些功能会影响所有应用,因此请务必在这些新模式下测试您的应用。

  • 低电耗模式:如果用户拔下设备的电源插头,并在屏幕关闭后的一段时间内使其保持不活动状态,设备会进入低电耗模式,在该模式下设备会尝试让系统保持休眠状态。在该模式下,设备会定期短时间恢复正常工作,以便进行应用同步,还可让系统执行任何挂起的操作。
  • 应用待机模式:应用待机模式允许系统判定应用在用户未主动使用它时处于空闲状态。当用户有一段时间未触摸应用时,系统便会作出此判定。如果拔下了设备电源插头,系统会为其视为空闲的应用停用网络访问以及暂停同步和作业。

 

取消支持Apache HTTP 客户端

Android 6.0版移除了对Apache HTTP客户端的支持。如果您的应用使用该客户端,并以Android 2.3(API级别9)或更高版本为目标平台,请改用HttpURLConnection类。此API效率更高,因为它可以通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。要继续使用Apache HTTP API,您必须先在build.gradle文件中声明以下编译时依赖项:

 

通知

此版本移除了Notification.setLatestEventInfo()方法。请改用Notification.Builder类来构建通知。要重复更新通知,请重复使用Notification.Builder实例。调用build()方法可获取更新后的Notification实例。

adb shell dumpsys notification命令不再打印输出您的通知文本。请改用adb shell dumpsys notification --noredact命令打印输出notification对象中的文本。


4、7.0特性

电池和内存

Android 7.0 包括旨在延长设备电池寿命和减少 RAM 使用的系统行为变更。这些变更可能会影响您的应用访问系统资源,以及您的应用通过特定隐式 intent 与其他应用交互的方式。

低点耗模式

 Android 7.0 则通过在设备未插接电源且屏幕关闭状态下、但不一定要处于静止状态(例如用户外出时把手持式设备装在口袋里)时应用部分 CPU 和网络限制,进一步增强了低电耗模式。

后台优化

Android 7.0 移除了三项隐式广播,以帮助优化内存使用和电量消耗。此项变更很有必要,因为隐式广播会在后台频繁启动已注册侦听这些广播的应用。删除这些广播可以显著提升设备性能和用户体验。( CONNECTIVITY_ACTION 、ACTION_NEW_PICTURE、ACTION_NEW_VIDEO

系统权限更改

为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)

私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发 SecurityException。、

传递软件包网域外的 file:// URI 可能给接收器留下无法访问的路径。因此,尝试传递 file:// URI 会触发 FileUriExposedException。分享私有文件内容的推荐方法是使用 FileProvider

DownloadManager 不再按文件名分享私人存储的文件。旧版应用在访问 COLUMN_LOCAL_FILENAME 时可能出现无法访问的路径。面向 Android 7.0 或更高版本的应用在尝试访问 COLUMN_LOCAL_FILENAME 时会触发 SecurityException。通过使用 DownloadManager.Request.setDestinationInExternalFilesDir() 或 DownloadManager.Request.setDestinationInExternalPublicDir() 将下载位置设置为公共位置的旧版应用仍可以访问 COLUMN_LOCAL_FILENAME 中的路径,但是我们强烈反对使用这种方法。对于由 DownloadManager 公开的文件,首选的访问方式是使用ContentResolver.openFileDescriptor()

 

应用间共享文件

对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。

要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类。如需了解有关权限和共享文件的详细信息,请参阅共享文件。

 

屏幕缩放

Android 7.0 支持用户设置显示尺寸,以放大或缩小屏幕上的所有元素,从而提升设备对视力不佳用户的可访问性。用户无法将屏幕缩放至低于最小屏幕宽度 sw320dp。

多窗口支持

在 Android N 中,引入了一个新的而且非常需要的多任务处理功能 — 多窗口支持。

现在,用户可以一次在屏幕上打开两个应用。

在运行 Android N 的手机和平板电脑上,用户可以并排运行两个应用,或者处于分屏模式时一个应用位于另一个应用之上。 用户可以通过拖动两个应用之间的分隔线来调整应用。


5、8.0特性

后台执行限制

Android 8.0为提高电池续航时间而引入的变更之一是,当您的应用进入已缓存状态时,如果没有活动的组件,系统将解除应用具有的所有唤醒锁。

此外,为提高设备性能,系统会限制未在前台运行的应用的某些行为。具体而言:

  • 现在,在后台运行的应用对后台服务的访问受到限制。
  • 应用无法使用其清单注册大部分隐式广播(即,并非专门针对此应用的广播)。

默认情况下,这些限制仅适用于针对O的应用。不过,用户可以从Settings屏幕为任意应用启用这些限制,即使应用并不是以O为目标平台。

Android 8.0 还对特定函数做出了以下变更:

  • 如果针对Android 8.0的应用尝试在不允许其创建后台服务的情况下使用startService()函数,则该函数将引发一个IllegalStateException
  • 新的Context.startForegroundService()函数将启动一个前台服务。现在,即使应用在后台运行,系统也允许其调用Context.startForegroundService()。不过,应用必须在创建服务后的五秒内调用该服务的startForeground()函数。

Android 后台位置限制

为节约电池电量、保持良好的用户体验和确保系统健康运行,在运行Android 8.0 的设备上使用后台应用时,降低了后台应用接收位置更新的频率。此行为变更会影响包括Google Play 服务在内的所有接收位置更新的应用。

提醒窗口

如果应用使用SYSTEM_ALERT_WINDOW权限并且尝试使用以下窗口类型之一来在其他应用和系统窗口上方显示提醒窗口:

  • TYPE_PHONE
  • TYPE_PRIORITY_PHONE
  • TYPE_SYSTEM_ALERT
  • TYPE_SYSTEM_OVERLAY
  • TYPE_SYSTEM_ERROR

...那么,这些窗口将始终显示在使用TYPE_APPLICATION_OVERLAY窗口类型的窗口下方。如果应用针对的是Android 8.0,则应用会使用TYPE_APPLICATION_OVERLAY窗口类型来显示提醒窗口。

 

网络连接和HTTP(S) 连接

Android 8.0 对网络连接和HTTP(S) 连接行为做出了以下变更:

  • HttpURLConnection在包含斜线的主机或颁发机构名称后面附加一条斜线,使包含空路径的网址规范化。例如,它将http://example.com转化为http://example.com/

安全箱

  • 现在,您的应用的WebView对象将在多进程模式下运行。网页内容在独立的进程中处理,此进程与包含应用的进程相隔离,以提高安全性。

提醒窗口

使用SYSTEM_ALERT_WINDOW权限的应用无法再使用以下窗口类型来在其他应用和系统窗口上方显示提醒窗口:

  • TYPE_PHONE
  • TYPE_PRIORITY_PHONE
  • TYPE_SYSTEM_ALERT
  • TYPE_SYSTEM_OVERLAY
  • TYPE_SYSTEM_ERROR

相反,应用必须使用名为TYPE_APPLICATION_OVERLAY的新窗口类型。

使用TYPE_APPLICATION_OVERLAY窗口类型显示应用的提醒窗口时,请记住新窗口类型的以下特性:

  • 应用的提醒窗口始终显示在状态栏和输入法等关键系统窗口的下面。
  • 系统可以移动使用TYPE_APPLICATION_OVERLAY窗口类型的窗口或调整其大小,以改善屏幕显示效果。
  • 通过打开通知栏,用户可以访问设置来阻止应用显示使用TYPE_APPLICATION_OVERLAY窗口类型显示的提醒窗口。

内容变更通知

Android 8.0更改了ContentResolver.notifyChange()registerContentObserver(Uri, boolean, ContentObserver)在针对Android 8.0的应用中的行为方式。

现在,这些API需要在所有URI中为颁发机构定义一个有效的ContentProvider。使用相关权限定义一个有效的ContentProvider可帮助您的应用防范来自恶意应用的内容变更,并防止将可能的私密数据泄露给恶意应用。

 

视图焦点

可点击的View对象现在默认也可以成为焦点。如果您希望View对象可点击但不可成为焦点,请在包含View的布局XML文件中将android:focusable属性设置为false,或者将false传递至应用界面逻辑中的setFocusable()

 

权限

在Android 8.0 之前,如果应用在运行时请求权限并且被授予该权限,系统会错误地将属于同一权限组并且在清单中注册的其他权限也一起授予应用。

对于针对Android 8.0 的应用,此行为已被纠正。系统只会授予应用明确请求的权限。然而,一旦用户为应用授予某个权限,则所有后续对该权限组中权限的请求都将被自动批准。

例如,假设某个应用在其清单中列出READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE。应用请求READ_EXTERNAL_STORAGE,并且用户授予了该权限。如果该应用针对的是API级别24或更低级别,系统还会同时授予WRITE_EXTERNAL_STORAGE,因为该权限也属于同一STORAGE权限组并且也在清单中注册过。如果该应用针对的是Android 8.0,则系统此时仅会授予READ_EXTERNAL_STORAGE;不过,如果该应用后来又请求WRITE_EXTERNAL_STORAGE,则系统会立即授予该权限,而不会提示用户。

 

媒体

  • 框架会执行音频闪避。进行AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK时,应用不会失去焦点。新的API适用于需要暂停而不是闪避的应用。请注意,此行为无法在Android 8.0 1版本中实现。
  • 当用户打电话时,活动的媒体流将在通话期间静音。
  • 所有与音频相关的API都应使用AudioAttributes而不是音频流类型来说明音频播放用例。仅为音量控制继续使用音频流类型。流类型(例如,已弃用的AudioTrack constructor)的其他用途仍然有效,但是系统会将其记录为错误。
  • 使用AudioTrack时,如果应用请求了足够大的音频缓冲区,则框架将尝试使用深度缓冲区输出(如果可用)。
  • 在Android 8.0中,媒体按钮事件的处理有所不同:
    1. 在界面操作组件中处理媒体按钮未发生变化:前台操作组件在处理媒体按钮时仍然优先。
    2. 如果前台操作组件不处理媒体按钮,系统会将媒体按钮路由到最近在本地播放音频的应用。在确定哪些应用接收媒体按钮事件时,不再考虑活动状态、标志和媒体会话的播放状态。即使在应用调用setActive(false)后,媒体会话仍然可以接收媒体按钮事件。
    3. 如果应用的媒体会话已经释放,系统会将媒体按钮事件发送到应用的MediaButtonReceiver(如果有)。
    4. 对于任何其他情况,系统都会舍弃媒体按钮事件。与其开始播放错误的应用,不如不播放任何东西。

类加载行为

Android 8.0检查确保类加载器在加载新类时不会违反运行时假设条件。不论类引用自Java(来自forName())、Dalvik字节码还是JNI,都会执行这些检查。平台不会拦截Java对loadClass()函数的直接调用,也不会检查此类调用的结果。此行为不应影响运行良好的类加载器的正常运行。

平台将检查类加载器返回的类描述符是否与预期的描述符一致。如果返回的描述符与预期不符,平台会引发NoClassDefFoundError错误,并在异常日志中存储一条注明不一致之处的详细错误消息。

平台还检查请求的类描述符是否有效。此检查捕获间接加载诸如GetFieldID()等类的JNI调用,向这些类传递无效的描述符。例如,找不到包含java/lang/String签名的字段,是因为此签名无效;它应为Ljava/lang/String;

这与JNI对FindClass()的调用不同,其中java/lang/String是一个有效的完全限定名称。

Android 8.0不支持多个类加载器同时尝试使用相同的DexFile对象来定义类。尝试进行此操作,会导致Android运行时引发InternalError错误,同时显示消息“Attempt to register dex file with multiple class loaders”。

DexFile API现已弃用,强烈建议您改为使用此平台的类加载器之一,包括PathClassLoaderBaseDexClassLoader

 

9.0新特性

后台对传感器的访问受限

Android 9 限制后台应用访问用户输入和传感器数据的能力。如果您的应用在运行Android 9 设备的后台运行,系统将对您的应用采取以下限制:

  • 您的应用不能访问麦克风或摄像头。
  • 使用连续报告模式的传感器(例如加速度计和陀螺仪)不会接收事件。
  • 使用变化或一次性报告模式的传感器不会接收事件。

如果您的应用需要在运行Android 9的设备上检测传感器事件,请使用前台服务。

限制访问通话记录

Android 9引入权限组并将、和权限移入该组。在之前的Android版本中,这些权限位于权限组。CALL_LOGREAD_CALL_LOGWRITE_CALL_LOGPROCESS_OUTGOING_CALLSPHONE

对于需要访问通话敏感信息(如读取通话记录和识别电话号码)的应用,该CALL_LOG权限组为用户提供了更好的控制和可见性。

如果您的应用需要访问通话记录或者需要处理去电,则您必须向CALL_LOG权限组明确请求这些权限。否则会发生SecurityException

 

限制访问电话号码

在未首先获得READ_CALL_LOG权限的情况下,除了应用的用例需要的其他权限之外,运行于Android 9上的应用无法读取电话号码或手机状态。

与来电和去电关联的电话号码可在手机状态广播(比如来电和去电的手机状态广播)中看到,并可通过PhoneStateListener类访问。但是,如果没有READ_CALL_LOG权限,则PHONE_STATE_CHANGED广播和PhoneStateListener提供的电话号码字段为空。

要从手机状态中读取电话号码,请根据您的用例更新应用以请求必要的权限:

  • 要通过PHONE_STATE Intent操作读取电话号码,同时需要READ_CALL_LOG权限和READ_PHONE_STATE权限。
  • 要从onCallStateChanged()中读取电话号码,只需要READ_CALL_LOG权限。不需要READ_PHONE_STATE权限。

现在强制执行FLAG_ACTIVITY_NEW_TASK 要求

在Android 9中,您不能从非Activity环境中启动Activity,除非您传递Intent标志FLAG_ACTIVITY_NEW_TASK。如果您尝试在不传递此标志的情况下启动Activity,则该Activity不会启动,系统会在日志中输出一则消息。

注:在Android 7.0(API 级别24)之前,标志要求一直是期望的行为并被强制执行。Android 7.0 中的一个错误会临时阻止实施标志要求。

 

限制访问Wi-Fi 位置和连接信息

在Android 9中,应用进行Wi-Fi扫描的权限要求比之前的版本更严格。详情请参阅Wi-Fi扫描限制。

类似的限制也适用于getConnectionInfo()函数,该函数返回描述当前Wi-Fi连接的WifiInfo对象。如果调用应用具有以下权限,则只能使用该对象的函数来检索SSID和BSSID值:

  • ACCESS_FINE_LOCATION  ACCESS_COARSE_LOCATION
  • ACCESS_WIFI_STATE

检索SSID或BSSID还需要在设备上启用位置服务(在Settings > Location下)。

从Wi-Fi 服务函数中移除的信息

在Android 9 中,下列事件和广播不接收用户位置或个人可识别数据方面的信息:

  • WifiManager中的getScanResults()getConnectionInfo()函数。
  • WifiP2pManager中的discoverServices()addServiceRequest()函数。
  • NETWORK_STATE_CHANGED_ACTION 广播。

Wi-Fi的NETWORK_STATE_CHANGED_ACTION系统广播不再包含SSID(之前为EXTRA_SSID)、BSSID(之前为EXTRA_BSSID)或连接信息(之前为EXTRA_NETWORK_INFO)。如果应用需要此信息,请改为调用getConnectionInfo()

电话信息现在依赖设备位置设置

如果用户在运行Android 9的设备上停用设备定位,则以下函数不提供结果:

  • getAllCellInfo()
  • listen()
  • getCellLocation()
  • getNeighboringCellInfo()

屏幕旋转变更

从Android 9开始,对纵向旋转模式做出了重大变更。在Android 8.0(API级别26)中,用户可以使用Quicksettings图块或Display设置在自动屏幕旋转纵向旋转模式之间切换。纵向模式已重命名为旋转锁定,它会在自动屏幕旋转关闭时启用。自动屏幕旋转模式没有任何变更。

当设备处于旋转锁定模式时,用户可将其屏幕锁定到顶层可见Activity所支持的任何旋转。Activity不应假定它将始终以纵向呈现。如果顶层Activity可在自动屏幕旋转模式下以多种旋转呈现,则应在旋转锁定模式下提供相同的选项,根据Activity的screenOrientation设置,允许存在一些例外情况(见下表)。

请求特定屏幕方向(例如,screenOrientation=landscape)的Activity会忽略用户锁定首选项,并且行为与Android 8.0中的行为相同。

可在Android Manifest中,或以编程方式通过setRequestedOrientation()在Activity级别设置屏幕方向首选项。

旋转锁定模式通过设置WindowManager 在处理Activity 旋转时使用的用户旋转首选项来发挥作用。用户旋转首选项可能在下列情况下发生变更。请注意,恢复设备的自然旋转存在偏差,对于外形与手机类似的设备通常设置为纵向:

  • 当用户接受旋转建议时,旋转首选项变为建议方向。
  • 当用户切换到强制纵向应用(包括锁定屏幕或启动器)时,旋转首选项变为纵向。

下表总结了常见屏幕方向的旋转行为:

屏幕方向 行为
未指定、user 在自动屏幕旋转和旋转锁定下,Activity 可以纵向或横向(以及颠倒纵向或横向)呈现。预期同时支持纵向和横向布局。
userLandscape 在自动屏幕旋转和旋转锁定下,Activity 可以横向或颠倒横向呈现。预期只支持横向布局。
userPortrait 在自动屏幕旋转和旋转锁定下,Activity 可以纵向或颠倒纵向呈现。预期只支持纵向布局。
fullUser 在自动屏幕旋转和旋转锁定下,Activity可以纵向或横向(以及颠倒纵向或横向)呈现。预期同时支持纵向和横向布局。

旋转锁定用户将可选择锁定到颠倒纵向,通常为180º。
sensor、fullSensor、sensorPortrait、sensorLandscape 忽略旋转锁定模式首选项,视为自动屏幕旋转已启用。请仅在例外情况下并经过仔细的用户体验考量后再使用此项。

补充:

当然了解特性的另一种方式去看源码哦~

代码中输入

Build.VERSION.SDK_INT

ctrl按住点击查看源码~里面就有比较详细的介绍啦~ 

你可能感兴趣的:(进阶系列)