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

在Android4.4 (API19)和Android7 (API24)之间,文件权限有什么变化吗?

在Android4.4 (API19)和Android7 (API24)之间,文件权限确实有一些变化。

在Android4.4 (API19)之前,Android系统的文件权限是基于Unix文件系统的权限模型,即读取权限、写入权限和执行权限。这些权限是通过文件的访问控制列表(ACL)来管理的。在这个版本中,应用程序可以在其清单文件中声明需要的权限,并且用户在安装应用程序时会被提示授予这些权限。

然而,从Android6.0 (API23)开始,引入了运行时权限模型。这意味着应用程序在运行时需要向用户请求权限,而不是在安装时请求。这样做的目的是增强用户对应用程序权限的控制,提高用户隐私保护。在Android6.0之前,用户只能选择全部接受或全部拒绝应用程序所请求的权限。而在Android6.0及以后的版本中,用户可以选择性地授予或拒绝应用程序的某些权限。

具体到文件权限方面,在Android4.4 (API19)和Android7 (API24)之间,主要的变化是在运行时权限模型的引入下,对于应用程序访问外部存储(如SD卡)的权限进行了调整。

在Android4.4 (API19)及之前的版本中,应用程序默认具有读取和写入外部存储的权限。这意味着应用程序可以自由地读取和写入外部存储上的文件。然而,这也存在一些潜在的安全风险,因为应用程序可以访问用户的个人数据。

从Android4.4 (API19)开始,引入了存储权限的概念。应用程序需要在其清单文件中声明存储权限,才能读取和写入外部存储。这样做的目的是增加对用户数据的保护,限制应用程序对外部存储的访问权限。

在Android7 (API24)之后,进一步加强了对外部存储的权限控制。在这个版本中,应用程序默认只能访问其私有目录下的文件,而无法直接访问外部存储上的其他文件。如果应用程序需要访问外部存储上的文件,需要使用特定的API进行访问。

总结起来,Android4.4 (API19)和Android7 (API24)之间的文件权限变化主要是引入了运行时权限模型和存储权限的概念,增强了对外部存储的访问控制。这样做的目的是提高用户对应用程序权限的控制,增加对用户数据的保护。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云存储(COS):腾讯云对象存储(COS)是一种安全、低成本、高可扩展的云端存储服务,适用于存储和处理任意类型的文件、图片、音视频等海量数据。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云移动推送(TPNS):腾讯云移动推送(TPNS)是一种高效、稳定、可信赖的移动消息推送服务,可帮助开发者实现消息推送、用户分群、消息统计等功能。详情请参考:https://cloud.tencent.com/product/tpns
  • 腾讯云数据库(TencentDB):腾讯云数据库(TencentDB)是一种高性能、可扩展、安全可靠的云端数据库服务,支持多种数据库引擎,包括MySQL、SQL Server、MongoDB等。详情请参考:https://cloud.tencent.com/product/cdb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 沉浸式状态栏的实现

前言 Android沉浸式体验几个注意点 Android4.4(api19)及以上的版本才支持 Android5.0(api21)及以上的版本状态栏多了一个半透的黑色层 Android5.0(api21...)的黑色层通过style去掉后 应用切出去后再切进来后会再次出现 我的解决方案 目前这种方案 不管是各个版本 还是是否侧滑都没有问题 首先先建两个文件夹 layout-v19values-v19 之所以不添加...colorAccent">@color/colorAccent onCreate方法中添加(Kotlin代码) 用这种方式去除Android5.0以上 状态栏的黑色半透层 重新切回应用时也不会被再次添上...前后的两个layout文件直接添加到了页面中 layout文件夹下的zj_statusbar.xml <?...clipToPadding="true" android:background="@android:color/holo_blue_light" 这种方式首先最外层必须要设置为背景色 它会用该背景色来填充状态栏虚拟按键栏

69110

论Android适配踩到的坑

问题得到了解决验证,欢呼之余又陷入了沉思,因为原因我们并未得知,于是就有了下文: 三、根因分析 经过测试人员验证,之前能复现此bug的机型上,用修改过的包再测试,问题确实得到了解决,但是这个问题为什么会发生...WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE权限来直接操作Sdcard,现在则不能,其目的是软件卸载时能将该软件创建的文件全部删除。...4.4 KitKat及之后的版本中,Google做了两个变化:1、进行读取时需要READ_EXTERNAL_STORAGE权限;2、访问应用所属的目录下(如:android/data/[package...2、继续跟踪中,既然上面提到了Android4.4系统版本禁止第三方APP对外置sdcard的写权限,那么我们分析下测试手里的Note3 Android4.4.2这款未出现bug的机型的Android系统的权限管理文件...的写权限,但对于不同的厂商的ROM,对Android权限管理文件platform.xml进行了修改,加入对外置sdcard的写权限

1.5K80
  • Android性能优化(五)之细说Bitmap

    不过,使用这个字段几点限制: 声明可被复用的Bitmap必须设置inMutable为true; Android4.4(API 19)之前只有格式为jpg、png,同等宽高(要求苛刻),inSampleSize...除了加载本地资源文件的解码方法会默认使用资源所处文件夹对应密度手机系统密度进行缩放之外,别的解码方法默认都不会。...在上述2.2.2我们谈到了Bitmap的复用,以及复用的限制,Google《Managing Bitmap Memory》中给出了详细的复用Demo: 使用LruCacheDiskLruCache做内存磁盘缓存...Bitmap占用内存的计算 getByteCount()方法是API12加入的,代表存储Bitmap的色素需要的最少内存; getAllocationByteCount()API19加入,代表在内存中为...Bitmap分配的内存大小; 复用Bitmap的情况下,getAllocationByteCount()可能会比getByteCount()大; 计算公式: 对资源文件:width * height

    2.5K50

    Android 编译Android7.0版本源码

    编译Android7.0版本源码 前言   首先说说为什么要编译Android7.0的源码,因为当我们去做系统定制开发的时候,就需要这么去做,举个例子,你们公司一个客户是做电视机顶盒的,现在购买了你们公司的产品...Android10两个版本的代码,那么我们可以ubuntu的根目录下创建一个Project文件夹,输入命令: mkdir Project 回车即可创建文件夹,然后进入到Project文件夹下,输入命令...: cd Project 回车进入到Project下,再创建一个Android7文件夹,输入命令: mkdir Android7 进入到Android7文件夹下,输入命令: cd Android7 3...没有错误,我们就可以进行编译了,你可以输入命令查看Android7中的文件,命令如下: ls 这是查看文件,如果要查看修改时间,命令如下: ls -al 这个可以查看到文件权限,修改时间等信息,下面我们输入命令清理一下...,Android7目录下执行 cd /prebuilts/sdk/tools/ 进入到tools目录下,执行: .

    44640

    android:运行时权限工具类的封装

    一、为什么封装? 众所周知,Android 从 6.0开始引入运行时权限机制,将权限分为了普通权限危险权限 ,对于危险权限我们必须在使用的时候动态的去申请。...当然了,目前各位大佬前辈们已经封装了很多优秀的工具类,比如鸿洋大神 Android 6.0 运行时权限处理完全解析 中封装的的MPermission。 那么,我为什么还要重复造一个轮子呢?...FM 中暂未测试 > * * 注意,处理权限被拒绝两种方式, * (1)一种是拒绝之后直接给出提示,提示用户拒绝之后将不能使用XX功能,如果是这种方式的话,就使用一个参数的构造,然后直接判断权限是否全都被允许...如:Galaxy Note4 调用系统相机执行拍照时, * 如果么指定照片存储路径,则会存储 DCIM/Camera 目录下,此时,即便不调用 刷新相册的方法,也会执行刷新操作。...以后使用该路径不需要申请权限API19之前需 * 要申请。

    1.5K20

    腾讯TMQ在线沙龙|Robotium自动化测试介绍

    嘉宾简介 陈航特,腾讯测试工程师,负责Android应用宝的UI功能自动化测试接口自动化测试,丰富的UI自动化实践经验,对Robotium有着较深入的研究,参与《腾讯Android自动化测试实战》编写...另一种服务端开通修改数据库的接口,用例需要修改数据库时,通过发送http接口请求完成数据库的更新操作。 2、如何拿到被测APK签名? 答:被测APK的签名文件一般存放于被测工程,需要找开发团队。...3、问题:Robotium有时抓取控件是上一层的,不是很稳定,什么好的方法 答:获取控件,该控件如果在当前界面有唯一的资源id,那么通过id就可以获取。...如果当前界面显示了,但获取的仍是上一个界面的控件,需要看看等待时间是否合适,或者获取到控件后根据控件的是否显示、坐标等来过滤 4、问题:Robotium框架是否可以用于做录制回放工具,什么好的思路?...9、刚才说的ROBOTIUM同时多手机运行,需要指定devices

    1.7K50

    Android技术选型闲聊

    这里个不错的Sample,对RxJava操作不太熟悉的同学可以了解下: RxJava2-Android-Samples 热更新 一年前(2018),我接热更新的时候还考虑过美团、阿里家的。...至于为什么,稍微关注下就知道哪些项目是骗业绩骗star的哪些是真正为解决问题用心维护的。 Tinker官方Wiki 为什么强推Tinker?...首先,我呆过的上家公司与现家,用Tinker发布过几十次热更新,没出过问题。Tinker基于bsdiff算法生成的差分包非常小,没涉及到文件资源添加的话,大都在30k以内。...FrameLayout:层叠布局,其实就是设计师眼里的“图层”,子控件之间没啥约束的优先用它。 ConstraintLayout:弹性布局,非常牛叉,适合约束比较复杂的页面。...实在要适配的话也只适配到api19,也就是Android4.4,占有率还是一点的)。 编译版本的话,新项目可以上Android X,我已经用了半年了,没啥问题。 尾巴 惯例,留个尾巴。

    1.2K30

    WebView 的一切都在这儿

    会话Cookie 与 持久Cookie 会话cookie不需要指定ExpiresMax-Age,浏览器关闭之后它会被自动删除。...后支持白名单,只有添加了@JavascriptInterface注解的方法才会注入JS 移除已注入Javascript的对象 执行JS表达式 API19后可异步执行JS表达式,并通过回调返回值 9 地理位置...(Geolocation) https://developer.mozilla.org/zh-CN/docs/Web/API/Geolocation/Using_geolocation 需要以下权限 默认可用...当H5调用地理位置API时,会先通过WebChromeClient.onGeolocationPermissionsShowPrompt申请授权 注:从API24开始,仅支持安全源(https)的请求...WebChromeClient.onShowCustomView 方法 当H5退出全屏时,会回调 WebChromeClient.onHideCustomView 方法 1.manifest 自己处理屏幕尺寸方向的变化

    2.1K60

    android之文件存储目录介

    android持久化方式 Android手机存储分为:内部存储外部储存。 Android4.4以前,手机机身存储就叫内部存储,插入的SD卡就是外部存储。...但是Android4.4以后这两个存储的定义又有了一些些变化,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储外部存储新的Android手机上已经同一个硬件上...内部存储 内部存储位于系统中很特殊的一个位置,对于设备中每一个安装的 App,系统都会在 data/data/packagename/xxx 自动创建与之对应的文件夹。...对于这个内部目录,用户是无法访问的,除非获取root权限。 ? image.png 通常对应内部存储的路径为 data/data/packagename/files。...卸载之后,这些文件也会被删除,类似于内部存储。

    76040

    高性能图片优化方案

    Bitmap本质上不能直接存储为什么?bitmap是一个对象,如果要存储成本地可以查看的图片文件,则必须对bitmap进行编码,然后通过io流写到本地file文件上。...图片提个问题,加载xhdpixxhdpi中相同的图片,显示控件上会一样?...内存大小一样?为什么?肯定是不一样的。xhdpi:240dpi--320dpi,xxhdpi:320dpi--480dpi,app中设置的图片是如何从hdpi中查找的?...关于图片压缩的综合案例如下具体可以参考:CompressServer04.色彩格式及内存优化4.1 RGB颜色种类RGB 色彩模式是工业界的一种颜色标准通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的...他们给出的结果是如果使用切图的话那标注的话很难标,身为一个优秀的设计师大多对像素点都敏感,界面上的像素点一点不协调那都是无法容忍的。网上一些介绍阴影效果方案所有深奥的技术,也都是为需求做准备的。

    84330

    Android 无 Root 升级系统 WebView

    WebView 有关 WebieView 的重要性其使用不是本文的重点,但是几个相关的属性我们必须了解: WebView 迭代历史 Android4.4(API level 19)系统以前,Android...APK 了,还有一种方法是系统目录某个配置文件里改个什么值,也就是包名引用,这样你就能换成任何包名的 APK 了,这个暂时没仔细研究,后续结果了再更新。....png 这里原目录下的文件分别有 /webview/webview.apk/webview/lib/arm/libwebviewchromium.so,直接移动 webview 目录下所有文件到 /.../sdcard ,然后执行如下命令移动过去,原路径以及原文件名保持一致即可。...,主要的坑就是包名一致的问题,还有一些系统目录访问权限之类的问题,之前网上搜了好多,都说不 root 没法换,或者换了会出问题,root 权限其实就是为了访问写入系统目录,通过重新挂载就解决了,换了会崩掉的问题其实就是历史遗留问题

    22K21

    Android开发在路上:少去踩坑,多走捷径

    目前我使用的是ADT22.6,新建一个Android工程,会自动res目录下生成这个目录结构。这里5个前缀drawable的文件夹,对应不同密度屏幕时所取的图片资源或者样式。 ?...测试方案的参考实例?...使用了高版本的API函数,低版本机器上挂了。 非UI线程不能操作UI。可能有各种权限被禁的问题。...Android4.4短信权限设置,原生系统带有新接口,第三方系统可能裁剪掉了。 8.什么情况下发生OOM,如何避免? 图片操作(图片缩放、bitmap生成等)、序列化反序列化数据等会消耗大量内存。...Findbugs(检查java代码缺陷) 开发工程中就可以对单个文件进行检查,问题可以及时处理。 ?

    948100

    Android 悬浮窗权限各机型各系统适配大全(总结)

    这篇博客主要介绍的是 Android 主流各种机型各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时。...;第二种就是利用系统的漏洞,绕过权限的申请,简单粗暴,这种方法我不是特别建议,但是现在貌似有些应用就是这样,比如 UC 有道词典,这样适配在大多数手机上都是 OK 的,但是一些特殊的机型不行,比如某米的...正常适配流程 4.4~5.1.1 版本之间 6.0~最新版本之间的适配方法是不一样的,之前的版本由于 google 并没有对这个权限进行单独处理,所以是各家手机厂商根据需要定制的,所以每个权限的授权界面都各不一样...WindowManager 的 addView 方法弹出即可,但是貌似有些特殊的手机厂商 API19 版本之前就已经自定义了悬浮窗权限,如果有发现的,请联系我。...小米一样,首先也要通过 API19 版本添加的 AppOpsManager 类判断是否授予了权限: /** * 检测 meizu 悬浮窗权限 */ public static boolean checkFloatWindowPermission

    6.6K31

    How to know your application’s battery stats

    此外,随着Android系统版本的迭代,各个版本耗电量统计的方式略有不同,但庆幸的是其统计模型并没有什么变化。本文在前人的研究基础上总结Android平台的耗电量统计相关的计算方法辅助工具。...前面的推荐文章3中也提到过获取应用耗电量的权限控制,内容如下:Android4.4以前的版本,未对耗电量统计的代码做权限限制,只需要使用java反射等手段,就可以调用相关的内部类隐藏接口。...自Android4.4开始,Android严格限制了权限,普通应用即使AndroidManifest.xml中申明使用android.permission.BATTERY_STATS,也获取不到相关的统计数据...工具的 V1.x2 版本V1.x 版本的基础上进行开发,细分耗电项,增加定时自动保存功能,适配Android5.0。同样, Android4.4 及以上系统也需要root权限才能安装使用。...Batterystats & Battery Historian Walkthrough Battery Historian Charts,其中有些术语可能不太好理解,这里个简略的中文的解释版本

    1.1K20

    详解android系统的定制

    简单基础的定制android系统,使第一次开机就安装系统应用预装应用,加载服务工具其它文件,开机启动画面,设置默认输入法、屏幕亮度等等。 如何简单的定制android系统?...这里两种方法: 第一是使用蘑菇ROM助手,编辑系统ROM。使用方法请百度。 第二种是源码中添加编译规则。复制设备工程中的文件到编译生成的系统中。...ROOT就是重新挂载修改这个文件夹的读写权限。非ROOT情况下文件拷贝到里面就可实现文件不可删除。...app也装上去了,这样还不行,因为权限不够,需要修改test_init权限init.rc文件中添加 chmod 777 /system/bin/test_init 注意:设置默认输入法的另一个方法是修改默认参数...现在settings指令支持的选项有限,虽然查看setting的数据库很多选项,但并不好用。 重点是,修改test_init,可以android系统起来前输入自己需要的shell指令。

    1.6K30

    android: API24 及以上版本调用系统相机时报:FileUriExposedException 的解决

    7.0 以前的版本中并没有任何异常,but , 从 7.0 (API 24) 之后这种方式就有问题了 ,因为 Uri.fromUri(file) 得到的是 以“ file:// ” 开头的文件本地的真实路径...getUriFromFile( ) 方法接收三个参数,第一个参数是 Context 对象,第二个参数是 唯一标识字符串,也就是清单文件provider 节点中声明的 android:authorities...我们使用 getUriFromFile( ) 获取Uri 之后, 7.0 及以后的版本中调用系统相机时将不会在崩溃,示例代码如下: 三、示例代码: (1)、清单文件中注册 FileProvider...之前之后,FileProvider 是API22推出的,所以API22及以后的版本中就可以支持FileProvider,22、23 既可以使用原有的Uri.from(file) 方式也可以使用 FileProvider...对于6.0之后需要在代码中动态申请权限,但是,对于6.0之前的版本还是必须要在 清单文件中声明拍照本地存储设备的写入权限

    67020

    【转】Android开发在路上:少去踩坑,多走捷径

    目前我使用的是ADT22.6,新建一个Android工程,会自动res目录下生成这个目录结构。这里5个前缀drawable的文件夹,对应不同密度屏幕时所取的图片资源或者样式。 ?...测试方案的参考实例?...使用了高版本的API函数,低版本机器上挂了。 非UI线程不能操作UI。可能有各种权限被禁的问题。...Android4.4短信权限设置,原生系统带有新接口,第三方系统可能裁剪掉了。 8.什么情况下发生OOM,如何避免? 图片操作(图片缩放、bitmap生成等)、序列化反序列化数据等会消耗大量内存。...Findbugs(检查java代码缺陷) 开发工程中就可以对单个文件进行检查,问题可以及时处理。 ?

    55130
    领券