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

在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-v19和values-v19 之所以不添加...colorAccent">@color/colorAccent onCreate方法中添加(Kotlin代码) 用这种方式去除Android5.0以上 状态栏的黑色半透层 在重新切回应用时也不会被再次添上...前后的两个layout文件直接添加到了页面中 layout文件夹下的zj_statusbar.xml <?...clipToPadding="true" android:background="@android:color/holo_blue_light" 这种方式首先最外层必须要设置为背景色 它会用该背景色来填充状态栏和虚拟按键栏

69810

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

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

2.6K50
  • 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目录下,执行: .

    47440

    高性能图片优化方案

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

    92730

    WebView 的一切都在这儿

    会话Cookie 与 持久Cookie 会话cookie不需要指定Expires和Max-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适配踩到的坑

    问题得到了解决和验证,欢呼之余又陷入了沉思,因为原因我们并未得知,于是就有了下文: 三、根因分析 经过测试人员验证,在之前能复现此bug的机型上,用修改过的包再测试,问题确实得到了解决,但是这个问题为什么会发生...WRITE_EXTERNAL_STORAGE和READ_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.6K80

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

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

    1.8K50

    android之文件存储目录介

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

    76940

    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 权限其实就是为了访问和写入系统目录,通过重新挂载就解决了,换了会崩掉的问题其实就是历史遗留问题

    24.7K21

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

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

    1.5K20

    Android-文件存储目录

    那么什么是系统的安装目录,应该怎么做?我们今天一步步来深入了解一下。 Andorid系统有五种数据持久化的方式: ?...android持久化方式 Android手机的存储分为:内部存储和外部储存,在Android4.4以前,手机机身存储就叫内部存储,插入的SD卡就是外部存储,但是在Android4.4以后这两个存储的定义又有了一些些变化...,新的手机不再有外插SD卡的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上了。...当一个应用卸载之后,内部存储中的这些文件也被删除。对于这个内部目录,用户是无法访问的,除非获取root权限。...说明: 可存放共享媒体文件 这个是在Android 5.0加入的api,创建和获取位于/sdcard/Android/media目录下的应用目录,该目录下的文件能够被其他应用访问和被MediaStore

    3.7K21

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

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

    56330

    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之前的版本还是必须要在 清单文件中声明拍照和本地存储设备的写入权限。

    68620

    5分钟教你打造一个秒开的 Android App

    避免冷启动 App启动方式一般有3种: · ColdStart ——冷启动: 此种方式最为耗时,一般是因为进程被干掉,系统需要重新fork进程进行一系列初始化。...那为什么我们的APP会出现在系统桌面上停留一会,而不是渲染背景图呢?...WindowBackground最佳解决方案: 应该由windowBackground此属性作为你的品牌推广页或者logo页,如果你的SplashActivity完全不需要做任何初始化,只是希望有个闪屏页...在Android4.4(API19)以上才会有此Log打出,在verbose级别搜索Displayed即可。不仅可以看自己的还可以看到其他APP的启动时长。...---- 如果您觉得我们的内容还不错,就请转发到朋友圈,和小伙伴一起分享吧~

    72630

    Android技术选型闲聊

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

    1.2K30

    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开发在路上:少去踩坑,多走捷径

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

    960100

    Android OkHttp是如何上位的?

    Android4.4之后,也是基于OkHttp实现的!小码决定上秋名山找老司机解惑。 老司机!为什么官方的HttpURLConnection4.4 之后也是基于OkHttp实现的。...是吗?我用着老师教的HttpURLConnection很好啊。快说说OkHttp怎么牛了! ? OkHttp就像哥一样快!飞快!OkHttp在对数据访问和存储时用的是Okio!...不展开细说了,简单来说就是:融合java.io和java.nio所长提供阻塞和非阻塞I/O,而且对缓存等底层做了优化。 ? 快当然好了,但有文章说它能节省流量?吹牛的吧!...同样的Json文件,中国移动那么扣,是少收它的流量? ? 哈哈!OkHttp不是移动的亲戚,但它确实能节省流量。因为它无缝支持GZIP。这个GZIP本是GNU的文件压缩程序。...就像甄嬛有了槿汐姑姑,那在大前端这个宫里很快就混开了。 ? 我X!还真能省流量。咦,老司机它GitHub上说的支持SPDY,什么鬼啊? ?

    53330
    领券