首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android | 作用存储适配

前言 Android 10 已经发布了很长一段时间了,并且 Android 11 已经有很大一部分人在使用了,那么你的程序对他做了适配吗?...在 10.0 中,作用存储变得非常重要,这个新的功能颠覆了我们一直惯用外置存储的方式,因此大量的 app 都面临着代码的适配 本篇文章对作用存储,以及如何进行适配,做了比较详细的介绍 在 7.0...作用存储 ​ 10.0 中,为了解决上述问题, google 在 Android 10 中加入了作用功能 ​ 什么是作用呢?...就是 Android 系统对 SD 卡做了很大的限制,从 10.0 开始,每个程序只能有权在自己的外置存储空间关联的目录下读取和创建相应的文件,也称作沙箱。...权限,WRITE_EXTERNAL_STORAGE 权限会在未来的版本中被废弃。

65820

Android 10适配要点,作用存储

本篇文章对作用存储进行了比较全面的解析,相信看完之后你将能够轻松地完成Android 10作用存储的适配升级。...理解作用存储 Android长久以来都支持外置存储空间这个功能,也就是我们常说的SD卡存储。...那么到底什么是作用存储呢?简单来讲,就是Android系统对SD卡的使用做了很大的限制。...而在作用存储这个功能上面,恭喜大家,暂时确实是可以不用升级的。 目前Android 10系统对于作用存储适配的要求还不是那么严格,毕竟之前传统外置存储空间的用法实在是太广泛了。...第三方SDK不支持作用存储怎么办? 阅读完了本篇文章之后,相信你对Android 10作用存储的用法和适配基本上都已经掌握了。

2.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android 和 Hilt 中限定作用

Android 中,您不使用 DI 库也可以通过 Android Framework 来手动限定作用。让我们看看如何手动限定作用,以及如何改用 Hilt 来限定作用。...最后,我们将比较使用 Android Framework 手动限定作用和使用 Hilt 限定作用的区别。...在 Android 中限定作用 看了上文的定义,您可能会有这样的异议: 在某个特定类中使用一个类型的实例变量也可以做到限定该变量类型的作用。没错!...因为 Activity 具有 ViewModel 的访问权限,所以在该 Activity 中可以始终获得相同的 AnalyticsAdapter 实例。...当然,当您需要限定作用时,您可以使用 Hilt 中的作用注解,也可以直接使用 Android Framework。

1.3K20

Android 11 中的存储机制更新

Android 10 引入了对外部存储权限的更改,旨在更好地保护用户数据以及降低应用的存储空间。Android 11 开发者预览版里加入了更多改进,以帮助开发者更好地适应这些权限修改。...在 Android 10 中,我们调整了存储权限的工作方式,仅为应用提供其所需的访问权限。这也是在鼓励应用在指定目录下进行文件存储以限制文件混乱。当应用被卸载后,这些相关的目录也会被删除。...在 Android 11 中,我们会通过下述的几点来继续优化分区存储 (Scoped Storage) 的开发者体验。...Android 10 对外部存储权限行为 developer.android.google.cn/training/da… 改进媒体存储 Android 10 中要求所有应用都使用 MediaStore...Android 11 里将会引入一个特别的权限叫做 MANAGE_EXTERNAL_STORAGE,该权限将授权读写所有共享存储内容,这也将同时包含非媒体类型的文件。

2.9K11

Android 10(Q)11(R) 分区存储适配

为此,Google 终于下定决心在 Android 10 中引入了分区存储,对权限进行场景的细分,按需索取,并在 Android 11 中进行了进一步的调整。...Android 存储分区情况 Android存储可以分为两大类:私有存储和共享存储 私有存储 (Private Storage) : 每个应用在都拥有自己的私有目录,其它应用看不到,彼此也无法访问到该目录...Android 11 (R) Android 11 (R) 在 Android 10 (Q) 中分区存储的基础上进行了调整。 1....新增执行批量操作 为实现各种设备之间的一致性并增加用户便利性,Android 11 向 MediaStore API 中添加了多种方法。...使用直接文件路径和原生库访问文件 为了帮助您的应用更顺畅地使用第三方媒体库,Android 11 允许您使用除 MediaStore API 之外的 API 访问共享存储空间中的媒体文件。

2.2K30

C语言变量的存储方式、作用和生命周期

一、作用 1、作用问题:在一个函数中定义的变量,在其他函数中能否被引用?在不同位置定义的变量,在什么范围内有效?...C的存储类别有4种:自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)。变量的存储类别对应变量的作用与生命周期。...(1)在一个文件内扩展外部变量的作用,应在引用前用关键字extern对该变量作“外部变量声明”,表示把该外部变量的作用扩展到此位置。...注:extern即可以用来扩展外部变量在本文件中的作用,又可以使外部变量的作用从一个文件扩展到程序中的其他文件。...如果找到就将作用扩展到本文件;如果没有就报错。

72430

C++随记(八)---存储持续性、作用和链接性

C++随记(八)---存储持续性、作用和链接性 一、存储持续性 C++中一般使用3种(C++11中是四种,但是书上貌似没给第四种)不同的方案存储数据,这些方案的区别在于数据保留在内存中的时间。...这种内存的存储持续性为动态,有时候被称为自由存储或者堆。 二、作用 作用描述了名称在文件(翻译单元)的多大范围内可见。 作用有多种: 作用为局部的变量只在定义它的代码块中可用。...作用为全局(也叫文件作用)的变量在定义位置到文件结尾之间都可用。 还有函数原型作用、名称空间作用、函数作用等等。 三、链接性 链接性描述了名称如何在不同单元间共享。...总结:不同的C++存储方式是通过存储持续性、作用、链接性来描述的。 ①自动存储持续性: 在默认情况下,函数中声明的函数参数和 变量 为 自动存储持续性, 作用为局部,无链接性。...A、外部链接性 的静态持续变量 的使用 链接性为外部的变量简称为外部变量,它们的存储持续性为静态,作用为整个文件。

96200

还有Android 11权限变更讲解

支持Android 11 目前Android 11的Beta版本已在上周四正式发布了,我这次也算是走在了时代的前沿,第一时间研究了Android 11中的各种新特性。...Android 11中还引入了权限过期的机制,本来用户授予了应用程序某个权限,该权限会一直有效,现在如果某应用程序很长时间没有启动,Android系统会自动收回用户授予的权限,下次启动需要重新请求授权。...另外,Android 11针对摄像机、麦克风、地理定位这3种权限提供了单次授权的选项。...这个规则其实PermissionX是可以不用考虑的,如果开发者在Android 11中同时申请前台和后台定位权限 ,那么就让系统直接抛出异常也是合理的,因为这种请求方式违反了Android 11的规则。...假如你同时请求了前台和后台定位权限,在Android 10系统中会将它们一起申请,在Android 11系统中会将它们分开申请,在Android 9或以下系统,则不会去申请后台定位权限,因为那个时候还没有这个权限

1.4K30

Android 文件管理】应用可访问的存储空间 ( 存储空间分类 | 存储空间访问权限 | 分区存储 )

文章目录 一、存储空间分类 二、存储空间访问权限 三、分区存储 四、相关文档资料 一、存储空间分类 ---- 在 Android 9( API 级别 28 ) 及以下版本中 , Android 文件存储空间分为两类..., 内部存储空间 外部存储空间 内部存储空间的可靠性高于外部存储空间 ; 在 Android 10( API 级别 29 ) 及以上版本中 , 应用只能访问应用的 专属存储空间 和 共享存储 中的文件..., 包括媒体 , 文档 , 下载 等目录 ; 二、存储空间访问权限 ---- 内部存储空间访问不需要权限 ; 在 Android 9( API 级别28 ) 及以下版本中 访问外部存储需要使用 READ_EXTERNAL_STORAGE...和 WRITE_EXTERNAL_STORAGE 权限 ; 在 Android 10( API 级别 29 ) 及以上版本中 , 只能方位特定的目录 , 如应用专属目录 , 公共目录 , 不需要权限...---- Android 文件处理参考文档 : 数据和文件存储概览 访问应用专属文件 保存到共享的存储空间 管理存储设备上的所有文件 分享文件 应用安装位置 Android 存储用例和最佳做法 FileProvider

2.3K30

前端day11-JS学习笔记(构造函数、对象的API、作用、arguments关键字)

17 /*年月日时打印*/ //1.打印当前年份 console.log ( date.getFullYear () );//2018 //2.打印当前月份 范围:0-11...3.1作用:变量起作用的范围 js中只有两种:全局作用 局部作用 1.全局作用:变量在任何地方起作用 全局变量:在函数外面声明 2.局部作用:变量只能在函数内部起作用 局部变量:在函数内部声明...3.2-作用链 1.作用链是怎么来的 默认情况下,我们的js代码处于全局作用,当我们声明一个函数时,此时函数体会开辟一个局部作用, 如果我们在这个函数体中又声明一个函数,那么又会开辟一个新的局部作用...,以此类推,就会形成一个作用链 2.变量在作用链上的访问规则 就近原则:访问变量时,会优先访问的是在自己作用链上声明的变量,如果自己作用链上没有声明这个变量,那么就往上一级去找有没有声明这个变量...,如果有就访问,如果没有就继续往上找有没有声明,直到找到0级作用链上,如果有,就访问,如果没有就报错 注意点:js中只有函数才可以开辟作用,其他的任何语句都不可以 3.3-js预解析 为什么要有预解析机制

79410

11期前端冲刺必备指南-执行上下文作用链闭包一等公民

(全局环境记录在逻辑上是单个记录,但是它被指定为封装对象环境记录和声明性环境记录的组合) 声明性环境记录(绑定了包含在其作用内声明定义的标识符集),就是它存储变量和函数声明,功能代码的词法环境包含一个声明性环境记录...在函数上下文情况下,参数列表也会被加入到变量对象中作为属性,变量对象与当前作用相关。 不同作用的变量对象互不相同,它保存了当前作用的所有函数和变量。...JavaScript采用词法作用,也就是静态作用,函数的作用在函数定义的时候就决定了。 1.6 动态作用 动态作用,函数的作用是在函数调用的时候才决定的。...闭包是一个可以访问外部作用的内部函数。通过 var 创建的变量只有函数作用,通过 let 和 const 创建的变量既有函数作用,也有块作用。...da()函数的词法作用 外部作用执行完毕后,内部函数还在(在其他地方被引用),闭包才真正发挥作用

85410

python 基础知识第11讲:函数的返回值、作用、命名空间、递归、高级函数

函数的作用 作用指的是变量生效的区域 在Python中有2种作用 1 全局作用 全局作用在程序执行时创建,在程序结束时销毁; 所以函数以为的区域都是全局作用; 在全局作用域中定义的变量...,都属于全局变量,全局变量可以在程序汇总的任意位置访问; 2 函数作用 函数作用在函数调用时创建,在调用结束时销毁; 函数每调用一次就会产生一个新函数的作用; 在函数作用域中定义的变量 都是局部变量...,它只能在函数内部被访问; 示例代码: a = 20 b = 20 def fn(): a = 10 #a定义在函数内部,所以它的作用就是函数内部,函数外部是无法访问的 print('...就是修改全局变量 a = 10 print('函数内部:','a =',a) fn2() print('函数外部:','a =',a) 4.命名空间 命名空间实际上就是一个字典,是一个专门用来存储变量的字典...使用locals()来获取当前作用的命名空间 如果在全局作用域中调用locals()函数则获取全局作用命名空间; 如果在函数作用域中调用locals()则获取函数命名空间; locals(

87120

Android 应用开发】BluetoothDevice详解

需要权限 android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作; android.permission.BLUETOOTH_ADMIN..., 包含EXTRA_DEVICE附加, 该附加域中存放的是BluetoothDevice对象, 需要BLUETOOTH权限; String ACTION_ACL_DISCONNECTED : android.bluetooth.device.action.ACL_DISCONNECTED..., 该广播附加有 EXTRA_DEVICE, EXTRA_BOND_STATE; 需要BLUETOOTH权限; String ACTION_FOUND : android.bluetooth.device.action.FOUND..., 值为12; 远程设备已经匹配; 本地存储了一个该远程设备的共享连接, 本地设备和远程设备之间的通信可以被认证和加密; 这个连接不是已经连接成功, 时刻保持连接状态, 这个连接的作用是, 下次连接的时候不用再次建立新的蓝牙连接...; 绑定中 : intBOND_BONDING, 值为11; 本地设备与远程设备正在匹配中; 未匹配 : intBOND_NONE, 值为10; 本地设备与远程设备没有连接, 本地不存在与远程设备共享的连接

1.5K30

Android 11新特性,Scoped Storage又有了新花样

其中一个可能需要适配的地方是Android 11权限变更,关于这部分内容我在 PermissionX现在支持Java了!还有Android 11权限变更讲解 这篇文章中已经做了比较详细的讲解。...10适配要点,作用存储 。...其实如果你的应用程序已经按照 Android 10适配要点,作用存储 这篇文章中讲解的方式对Scoped Storage进行了适配,那么恭喜你,现在你什么都不需要做,就已经能够适配Android 11...拥有对整个SD卡的读写权限,在Android 11上被认为是一种非常危险的权限,同时也可能会对用户的数据安全造成比较大的影响。 但文件浏览器就是要对设备的整个SD卡进行管理的,这怎么办呢?...这些功能我在 Android 10适配要点,作用存储 这篇文章中都进行了演示。 但是,假如你要修改其他应用程序所贡献的数据,那不好意思,Scoped Storage是不允许你这样做的。

1.2K20

Android 11 开发者常见问题: 存储 | FAQ・第二期

因此,在 Android 11 上,拥有可读取外部存储权限的应用,均可在分区存储环境中通过文件路径访问文件。...目标版本为 Android 11 (API 级别为 30) 并使用 SAF 的应用,将不会被授予某些目录访问权限,例如 SD 卡上的根目录和下载目录。...对于选择退出分区存储的应用,它们何时开始必须兼容分区存储? 在运行 Android 11 或更高版本的设备上。当目标版本被设置为 Android 11 或更高版本时,应用便会被放入到分区存储中。...建议使用什么方法来迁移分区存储之外的数据? preserveLegacyExternalStorage 标记允许应用在升级系统时保留原有存储权限,即使是升级至 Android 11。...需要注意的是,在 Android 11 上这个标记对新安装的应用起不到任何作用。将目标版本设为 Android 11 之前,请修改代码以适配分区存储

1K10

Android NDK 开发】JNI 引用 ( 局部引用 | 局部引用作用 | 局部引用产生 | 局部引用释放 | 代码示例)

局部引用 作用 IV . 局部引用 产生 与 释放 V . 局部引用 代码示例 I . JNI 引用数据类型 ---- 1 ....局部引用 作用 ---- 1 . 局部引用作用 : 局部引用只能在当前作用有效 ; 超出作用 手动释放 上面 两种情况 都会导致 局部引用变量 失效 ; 2 ....局部引用作用范围 : ① 空间 : 不能 跨线程 , 跨方法调用 , 仅在本作用有效 ; ② 时间 : 创建后可以使用 , 手动释放 或 作用结束 引用被释放不可使用 ; IV ....超出作用 手动释放 上面 两种情况 都会导致 该局部变量都会失效 局部引用作用范围 :...空间 : 不能 跨线程 , 跨方法调用 , 仅在本作用有效 时间 : 创建后可以使用 , 手动释放 或 作用结束 引用被释放不可使用 局部引用 创建

56120
领券