Android 11 中的存储机制更新

研发工作量科学量化评估模型:从多维系数到等级落地指南 摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。 阅读详情

Android 10 引入了对外部存储权限的更改,旨在更好地保护用户数据以及降低应用的存储空间。Android 11 开发者预览版里加入了更多改进,以帮助开发者更好地适应这些权限修改。

在 Google Play 上发布的大部分应用都会请求 (READ_EXTERNAL_STORAGE) 存储权限,来做一些诸如在 SD 卡中存储文件或者读取多媒体文件等常规操作。这些应用可能会在磁盘中存储大量文件,即使应用被卸载了还会依然存在。另外,这些应用还可能会读取其他应用的一些敏感文件数据。在 Android 10 中,我们调整了存储权限的工作方式,仅为应用提供其所需的访问权限。这也是在鼓励应用在指定目录下进行文件存储以限制文件混乱。当应用被卸载后,这些相关的目录也会被删除。

Android 10 所带来的关于存储上的变更遵循了以下三个基本原则

更好的从属性: 系统知道哪些文件属于哪些应用,这可以让用户更方便地管理他们的文件。当应用被卸载后,除非用户需要,否则应用之前所创建的文件也不应该保留在设备上;
保护应用数据: 当一个应用将它所属的文件写入外部存储时,这些文件是不应该被其他应用所访问的;
保护用户数据: 当用户下载了一些文件,比如带有敏感信息的邮件附件,这些文件应该对其他应用不可见。
目标 API 级别 (Target SDK Level) 设定为 Android 10 的应用无需请求 Storage 权限,就可以使用自己的外部存储目录并管理媒体集合 (音频、视频、图片和下载数据)。Storage 权限仅允许读取其他应用共享的音频、视频和图片集合,但并不允许访问非本应用创建的下载数据。在 Android 10 里唯一一种访问其他应用创建的非媒体文件的途径是使用存储访问框架 (Storage Access Framework) 提供的文档选择器。

在 Android 11 中,我们会通过下述的几点来继续优化分区存储 (Scoped Storage) 的开发者体验。

Android 10 对外部存储权限行为https://developer.android.google.cn/training/data-storage#scoped-storage
请求 (READ_EXTERNAL_STORAGE) 存储权限https://developer.android.google.cn/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE
它所属的文件https://developer.android.google.cn/training/data-storage/app-specific
存储访问框架 (Storage Access Framework)https://developer.android.google.cn/guide/topics/providers/document-provider
改进媒体存储

Android 10 中要求所有应用都使用 MediaStore API 来访问照片、视频和音乐文件,我们也将继续秉承这个原则。但是我们也知道,很多深度依赖基于原始文件路径 API 的应用和第三方库是很难切换到使用文件描述符 (File Descriptor) 的。因此在 Android 11 里,依赖原始文件路径的 API 和库可以再次使用了。您需要在应用的 Manifest 文件里添加 requestLegacyExternalStorage 属性,以保证 Android 10 的用户也可以使用该特性。在实际的运行中,依赖原始文件路径的 I/O 请求会被重定向到使用 MediaStore API,当使用这种方式访问本应用存储空间之外的文件时,这次重定向会造成性能影响。而且直接使用原始文件路径,并不会比使用 MediaStore API 有更多优势,因此我们强烈建议直接使用 MediaStore API。在 Android 10 中,应用在对每一个文件请求编辑或删除时都必须得到用户的确认。而在 Android 11 中,应用可以一次请求修改或者删除多个媒体文件。系统的默认图库应用 (Gallery) 将不再展示这些对话框。我们希望这项改进能够使用户体验更加顺畅。在这里插入图片描述可以再次使用https://developer.android.google.cn/preview/privacy/storage#media-files-raw-paths
修改或者删除多个媒体文件https://developer.android.com/preview/privacy/storage#media-file-access
对 Storage Access Framework 的更新

当我们对广泛的存储访问进行限制后,一些开发者试图使用 Storage Access Framework (SAF) 遍历整个文件系统。但是,SAF 并不适用于广泛地访问共享存储内容。因此,我们对其进行了更新,限制了它对某些路径的可见性。

在 Android 11 中,将不再允许用户授权访问 Downloads 的根目录、每个可用 SD 卡的根目录以及其它应用的目录。应用仍然可以通过 Storage Access Framework API 或者文件选择器来帮助用户从共享存储中选取个别文件。

对其进行了更新https://developer.android.google.cn/preview/privacy/storage#file-directory-restrictions
针对文件管理应用的特殊权限

针对文件管理器以及一些备份类的应用,它们需要获得共享存储的更广泛的访问权限。Android 11 里将会引入一个特别的权限叫做 MANAGE_EXTERNAL_STORAGE,该权限将授权读写所有共享存储内容,这也将同时包含非媒体类型的文件。但是获得这个权限的应用还是无法访问其他应用的应用专属目录 (app-specific directory),无论是外部存储还是内部存储。

我们希望继续允许一些确实有广泛访问外部存储文件需求的应用。在 Android 11 中,已获得MANAGE_EXTERNAL_STORAGE 权限的应用,可以将用户引导至系统设置页面,让用户选择是否允许该应用 “访问所有文件” (All Files Access)。下面的两种应用示例是可以使用该权限的:

文件管理器 —— 该类应用的主要功能是管理文件;
备份和恢复 —— 该类应用需要访问大批量的文件 (比如切换设备的时候进行数据迁移,或者将数据备份到云端)。
如果您的应用需要访问单个文件,比如文字处理应用,则应该使用 Storage Access Framework (SAF)。

如果您的应用需要 MANAGE_EXTERNAL_STORAGE 权限或者调用了依赖原始文件路径的 API,那么您必须在 AndroidManifest 文件中添加 requestLegacyExternalStorage=true,这样您的应用才能够在搭载 Android 10 的设备上正常运行。更多相关信息请查看我们在去年 Android 开发者峰会的分享视频《准备好使用分区存储》:

腾讯视频链接https://v.qq.com/x/page/d3026c1bpr3.html
Bilibili 视频链接https://www.bilibili.com/video/av77198618/

CCD 技术介绍(基于innovus引擎CCOpt) CCD:全称是,并行优化clock和data path。CCOpt:全称是Clock的timing分为两种模式,和。preCTS并没有clock,因此需要建立一个,从clock端口到寄存器CK端的来自sdc中的设置;postCTSupdateIO latency,clock就会自动的转换成propagatedclock,这时就是实际时钟互连线网络的delay。在实际设计中,clock起始于ideal。 阅读详情

相关推荐

Brim与ZUI协同安装指南:从下载到流量分析实战

本文提供Brim与ZUI协同安装与实战指南,详细讲解从下载、环境变量配置到流量分析的全流程。通过将PCAP文件转换为ZNG格式,结合直观的Zed查询语言,这套组合能极大提升大型网络数据包的分析效率,是网络安全与运维人员进行高效流量分析的利器。

metal的博客 458

Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)

Android 权限的变化, 几乎每个版本的SDK都会有, 其中最大的一次是在6.0时, 增加的动态权限申请。要访问管理外部存储的文件, 需增加MANAGE_EXTERNAL_STORAGE权限的申请

ansondroider的博客 4万+

QT编程系列1--QT学习前需知

本周学习了一些QT编程方面的知识,学写了几个程序,这里把记录下来。一方面对前面学习的知识做一个总结,便于以后复习、再学习和应用;另一方面也和大家做个交流,有不足的地方请各位看官多指点。   首先是做一些学习之前的交代:一,学习QT需要哪些基础;二,学习QT有哪些用途,QT较其他的开发工具有哪些特点;三,学习QT的思路。

霜月孤鸟&RTEMS&TinyOS 1115

android 11 申请允许管理所有文件权限

Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION); intent.setData(Uri.parse("package:" + getPackageName())); startActivityForResult(intent, Request_Code);

Mr_WuTengFei的博客 2万+

deepfake detection数据集

最全Deepfake数据集总结,包含各个数据集下载链接: https://github.com/deepfakeinthewild/deepfake_in_the_wild Dataset name Download Generate method Deepfake videos Actors Deepfake-TIMIT low download De...

where_is_horse的博客 1万+

【工业级视觉实战】海康威视SDK + Python + YOLOv11:零延迟目标追踪系统落地指南

要在 Python 中调用海康 DLL,首先得把 C++ 的结构体 1:1 翻译过来。这是很多开发者踩坑最深的地方(指针错误、内存溢出)。import sys# 根据操作系统加载库else:# 定义设备信息结构体 (对应 C++ LPNET_DVR_DEVICEINFO_V30)("sSerialNumber", ctypes.c_byte * 48), # 序列号("byAlarmInPortNum", ctypes.c_byte), # 报警输入个数。

BUG猿的博客 224

android android.permission.MANAGE_EXTERNAL_STORAGE使用

android11 及以上版本,如果release版本要读取外部存储公共目录,即sdcard公共目录,需要在androidManifest.xml下申明。好了,又可以愉快玩耍了。

Alex老夫子的专栏 4665

STM32F103标准库开发:Keil5新建STM32工程

新建STM32工程 步骤一:创建工程模板文件 新建一个文件夹 template 在文件夹template里面新建五个文件 (1)CMSIS: 存放内核驱动程序和启动引导文件 (2)FWLIB:存放库函数文件 (3)Project:存放工程文件 (4)System:存放自己写的驱动程序 (5)User:存放用户程序(主函数) 步骤二:导入stm...

MQ0522的博客 2万+

Android11文件管理权限申请

Android 11文件管理权限申请,为什么需要这个权限,因为在Android 11后,无法直接在SDcard根目录写文件,Android 11之后要使用分区存储,但是分区存储使用起来很麻烦,所以可以申请文件管理权限,这样就可以随意读写SDcard了,写到根目录也没问题。 清单文件声明如下: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/a

Android菜鸟的专栏 1万+

继电器管理策略(二)

介绍了电池管理系统中的继电器管理,包含控制和诊断

manjixingkong1234的专栏 418

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

摘要:YOLOv4在目标检测领域实现了精度与速度的平衡,通过CSPDarknet53骨干网络、SPP+PANet特征融合及CIoU损失函数等创新,在MS COCO数据集达到65.7% AP50,V100显卡实现62FPS实时检测。核心优化包括Mosaic数据增强、自对抗训练和解耦头结构,显著提升小目标检测和遮挡场景鲁棒性。代码实现采用CSP模块和SPP多尺度池化,兼顾计算效率与检测性能,为工业落地提供高效解决方案。(149字)

一碗白开水一 1357

安卓Bug记录

1.Unable to start activity ComponentInfo{com.example.administrator.practice/com.example.administrator.practice.Main4Activity}: android.content.res.Resources$NotFoundException: Drawable com.example.adm...

Yang_RT的博客 486

VSS shielding线可以floating吗?

shielding vss不打孔,就相当于dummy metal,如果周围有其他干扰线,他们影响了这段dummy metal,这段dummy metal仍然会对目标线产生干扰,bug的是,工具知道这段dummy是vss,那么计算寄生的时候仍然把它当vss,就有可能噪声没有完全消除,而用户又看不见。而真正接地的线,相当于一直是0,就不会对目标线产生干扰,一般加shield是在route之前,这时候shield能尽量覆盖目标线,等到绕线后再加就会出现shield只覆盖到一部分目标线的情况。

m0_61544122的博客 6633

Android 11 中的存储机制更新,安卓客户端开发面试题目

前言 金三银四,又是一年校招季。 经历过,才深知不易。最近,和作为校招面试官的同事聊了聊,问他们是如何去考察一个学生的,我简单归为以下几点: 聪明、反应快,这点自不必说,聪明意味着学习能力、适应力强,能够快速胜任工作。 算法不错,代码基本功好,这点其实考察的是算法能力和代码是否写得优雅。 基础过硬,技术岗面试最核心的还是考察「技术储备」,包括了语言基本功,操作系统、网络、体系结构、系统设计。 语言组织和表达能力,这点很重要,很多同学懂得某个知识点,却很难用简洁准确的语言表述出来。 想必有很多同学在刷题.

m0_54850467的博客 234

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 版本更新机制,Android 11 中的存储机制更新

Android11(API 级别30)进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。此版本引入了多项增强功能,例如,可主动选择启用的媒体原始文件路径访问机制、面向媒体的批量编辑操作,以及存储访问框架的界面更新。此版本还改进了分区存储,以便开发者更轻松地迁移到此存储模型。如需了解详情,请参阅 Android 存储用例和最佳做法指南,以及标题为 Android 11 存储...

weixin_39948210的博客 471

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android11文件存储适配,Android 11 中的存储机制更新

Android11(API 级别30)进一步增强了平台功能,为外部存储设备上的应用和用户数据提供了更好的保护。此版本引入了多项增强功能,例如,可主动选择启用的媒体原始文件路径访问机制、面向媒体的批量编辑操作,以及存储访问框架的界面更新。此版本还改进了分区存储,以便开发者更轻松地迁移到此存储模型。如需了解详情,请参阅 Android 存储用例和最佳做法指南,以及标题为 Android 11 存储...

weixin_30336701的博客 3735

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 如何将 Python 的一个类方法变为多个方法?
下一篇: 代理IP你挑对了嘛?
pythonadiou
博客等级 码龄7年 19粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值