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

为什么apk只在Android 10的发布版本中中止?

APK只在Android 10的发布版本中中止的原因是因为Android 10引入了一项新的应用程序安全机制,即Scoped Storage(作用域存储)。Scoped Storage对应用程序的文件访问权限进行了更严格的限制,以提高用户数据的安全性和隐私保护。

在Android 10之前的版本中,应用程序可以自由访问设备上的任何文件,包括其他应用程序的文件。这种开放的文件访问权限可能导致数据泄露和安全漏洞。为了解决这个问题,Android 10引入了Scoped Storage机制。

Scoped Storage将应用程序的文件访问权限限制在其私有目录内,应用程序只能访问自己创建的文件和特定的共享文件。这意味着应用程序无法直接访问其他应用程序的文件,包括之前版本中存储在共享存储空间中的文件。

这种变化对于一些应用程序来说可能会带来兼容性问题,特别是那些直接操作其他应用程序文件的应用程序,例如文件管理器、备份应用程序等。为了确保应用程序在Android 10中继续正常工作,开发者需要对其应用程序进行相应的调整,以适应Scoped Storage机制。

对于开发者来说,适应Scoped Storage机制的方法包括使用新的文件访问API、请求特殊权限、使用媒体存储库等。这些调整可以确保应用程序在Android 10中能够正常读取和写入文件,同时保护用户数据的安全性和隐私。

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

  • 腾讯云移动应用安全解决方案:https://cloud.tencent.com/solution/mobile-security
  • 腾讯云文件存储服务:https://cloud.tencent.com/product/cfs
  • 腾讯云对象存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云数据安全解决方案:https://cloud.tencent.com/solution/data-security
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android系统源码预置APK方法

(注意下文中Test就是我们要预置到源码googleplay.apk名字!!...网上下载Google Play Store 4.6.17.apk,名字中含有空格,将空格去掉或者自直接将它重新命名) 1. packages/apps 下面以需要预置 APK 名字创建文件夹,以预制一个名为...TestAPK为例 2.将 Test.apk 放到 packages/apps/Test 下面 3. packages/apps/Test 下面创建文件 Android.mk,文件内容如下 : LOCAL_PATH...源码根目录下执行 …..Android # mmm packages/apps/Test 编译完成之后,就可以out/target/product/generic/system/app目录下看到Test.apk...android源码根目录下执行如下命令: USER-NAME@MACHINE-NAME:~/Android$ make snod 完成后就可以烧到板子上!!!!

4.1K10

谷歌将彻底淘汰10年前发布Android版本

目前,市场份额超过10%Android版本分别是Android 10Android 11、Android 9pie,三者市场占有率分别为34.17%、20.94%、16.48%。...谷歌通过Android版本活跃用户数据分析得知,安装Gingerbread版本设备数量比例低于0.2%,远远落后于其他14个Android版本,所以谷歌决定在这个十年前发布移动操作系统棺材上钉上最后一颗钉子...由于版本,许多应用程序和服务都与Google登录账号相关联,虽然Google应用程序可以通过Android Play更新,但是登录Google账号仍然是系统级服务,并且被及时冻结。...虽然今天Android 系统可以发布完整系统情况下更新许多核心组件,但10多年前发布Android 2.3.7 Gingerbread并不具备模块化。...一旦谷歌9月27日之后抛弃Android 2.3.7版本,那么Android 3.0 Honeycomb也将“命不久矣”,而且它现在适用于平板电脑。

85810
  • Android Studio 4.0 正式发布Ubuntu 20.04安装方法

    Android Studio 4.0 已经发布了。以下是Ubuntu 18.04,Ubuntu 19.10,Ubuntu 20.04安装它方法。...Android Studio 4.0具有新Motion 编辑器,改进布局检查器,对C++Clangd支持,智能编辑器功能,CPU Profiler增强功能,D8和R8使用Java 8语言库以及更多其他更改...如何在Ubuntu安装Android Studio 4.0: Ubuntu 18.04及更高版本Ubuntu软件使用Snap软件包安装,不喜欢Snap应用程序?...Studio: umake android –remove 总结 到此这篇关于Android Studio 4.0 正式发布Ubuntu 20.04安装方法文章就介绍到这了,更多相关Android...Studio 4.0 发布Ubuntu 20.04安装内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    2.7K21

    Android Binder漏洞挖掘技术与案例分享

    其中包括Android系统锁屏密码绕过(影响了所有安全补丁2016年10月份以前Android 6.0、6.0.1、7.0系统)、三星手机关机窃听、三星手机越权修改主题、系统拒绝服务漏洞。...于是漏洞公告发布当天,我又提交了另一份漏洞报告给Google。 ?...Google于2016年7月20号确认该漏洞为高危漏洞,于8月31号分配了CVE-2016-3908,于10月份发布了漏洞公告并致谢。 ? ?...这些功能在Android 4.3以下很好用,高系统版本由于各种安全机制限制,导致许多攻击功能无法完成。...这里我介绍一种通用方式,不依赖数据类型。这里用到了15年初作者发现通用型拒绝服务漏洞,可以参考发布360博客上技术文章Android通用型拒绝服务漏洞分析报告。

    2K70

    Art of Android Development Reading Notes 13

    使用multidex来解决方法数越界 (1)Android单个dex文件所能够包含最大方法数是65536,这包含Android Framework、依赖jar以及应用本身代码所有方法。...LinearAlloc缓冲区版本Android系统中大小是8MB或者16MB,但是Android 2.2和2.3却只有5MB,当待安装应用方法数比较多时候,尽管它还没有达到最大方法数,但是它存储空间仍然有可能超过...multidexjar包9个类必须要打包到主dex,其次不能在Application成员以及代码块访问其他dex类,否个程序会因为无法加载对应类而中止执行。...13.3 Android动态加载技术 (1)动态加载技术又称插件化技术,将应用插件化可以减轻应用内存和CPU占用,还可以发布版本情况下更新某些模块。...标签支持android:layout_开头属性,android:id属性例外。 4.ViewStub继承自View,它非常轻量级且宽高都为0,它本身不参与任何布局和绘制过程。

    54520

    App抓包出现网络错误解决办法

    那这个是为什么呢,经过我搜索查证,发现有这么几个原因(不足请在评论区指出): Android 7.0(API 24) ,有一个名为“Network Security Configuration”新安全功能...这个新功能目标是允许开发人员不修改应用程序代码情况下自定义他们网络安全设置。如果应用程序SDK高于或等于24,则只有系统证书才会被信任。所以用户导入Charles根证书是不被信任。...ssl-pinning: APP开发时就将服务端证书一块打包到客户端里。这样HTTPS建立时与服务端返回证书比对一致性,进而识别出中间人攻击后直接在客户端侧中止连接。...针对以上两张情况,目前都有解决办法,先说第一种情况: 换一个 Android 7 以下手机抓包(快捷方便,我就这么用2333) 用 Android 模拟器抓包 Root手机,将证书移到/system...解决,因为平时抓包没这种需求,所以不是很了解,把网上已知方法记录下。

    8K10

    配置Android项目 - 一些重要事情

    gitignore 当你Android Studio创建一个新Android项目时,它已经生成了gitignore文件,但通常它不包含所有必要规则。...当从IDE运行或调试项目时,Android Studio会使用Android SDK工具生成调试证书自动为您APK签名。...这就是为什么最好对发布和调试版本使用不同proguard规则: rules-proguard.pro rules-proguard-debug.pro ?...用于调试构建Proguard规则必须具有以下行以强制proguard忽略警告,跳过代码混淆和优化: ? 对于发布版本,设置proguard规则将会更加困难,因为几乎每个库都有自己特定规则。...我建议你调试时候打开它并且使用detectAll方法来检测所有类型问题。 ? 这里是当你忘记关闭SQLiteCursor日志例子: ? 模板代码查看StrictMode。

    66520

    React Native发布APP之签名打包APK

    对比用Android Studio签名打包生成APK与用官方推荐方式签名打包生成APK,发现了它们大小上和内容上都有所差别,如图: 大小上差别: ?...对比两种打包方式发现,它们所生成apk大小上相差几百k。为什么会相差那么大呢,带着这个疑问我们就将两个apk解压之后看看他们内部具体有什么不同。 apk内部差别: ?...上文中直接将证书密码以明文形式写在了gradle.properties文件,虽然可以将此文件排除版本控制之外,但也无法保证密码安全,下面将向大家分享一种方法避免gradle中直接使用明文密码。...通过“钥匙串访问(Keychain Access)”工具保护密码安全 下面阐述方法OS X上可行。...我们可以通过将发布证书密码委托“钥匙串访问(Keychain Access)”工具,然后通过gradle访问“钥匙串访问”工具来获取证书密码。

    2.6K50

    Android 10 浏览器构建

    因为项目是基于 Android 10,所以这里说说 Android 10 浏览器开发。 1....AOSP 不再包含原来 Browser 代码,以前浏览器是一个全功能浏览器,长这样: 而现在 AOSP 包含了一个 WebView Shell,简陋之极: Webview Shell 代码...Android 10 开始引入动态分区,所以 ROM 镜像文件找不到熟悉 system.img,取而代之是 super.img,super.img 包含 system, product, vendor... chromium 构建目标称为 monochrome_public_apk,生成输出文件称为 MonochromePublic.apk。...platform=Android 查询当前稳定版和测试版版本号。但需要注意是,Chromium 采用滚动发布模式,版本更新非常频繁,开发产品,还是稳字当头,没有必要追求最新版本

    90320

    为您应用配置 Play Feature Delivery

    本系列文章致力于帮助开发者们打造更好现代 Android 开发体验,敬请关注。 今天为大家发布本系列文章第六篇: 为您应用配置 Play Feature Delivery。...如果您想回顾过去发布内容,请参考下面链接查看: 导航组件概览 导航到对话框 应用中导航时使用 SafeArgs 使用深层链接导航 打造您首个 app bundle "MAD Skills" 系列文章... 2021 年下半年,Google Play 将要求 新应用和游戏以 Android App Bundle 格式发布。...对于 Android 5.0 以前设备提示 功能模块安装机制需要运行在 Android 5.0 及以后机型上。对于旧版本 Android,功能模块可以放到基础 apk 。...您可以选择某些特定功能模块特定国家可用。这将是一个实现本地化应用非常好方式。为了实现这个功能,您需要添加 user-countries 标签并设置两个字母国家代码。

    81720

    android gradle如何修改生成apk名字

    前言 说实话,我大法工作时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且大法工具组工程师还将其和Android Studio大法版一起推送,偶一看就更没兴趣了。...以前ROM环境下,虽然可以配置Android.mk,但是需要依赖整个Android源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个app如果涉及到多个开发者,手动操作必然会带来混乱。...上述问题对绝大部分APP开发者而言都不陌生,而Gradle作为一种很方便构建工具,可以非常轻松得解决构建过程各种问题。...android gradle修改生成apk名字 Android Studio打包应用默认生成apk名称是:app-release.apk 、app-debug.apk 如果我们要让生成apk名跟我们版本包名...、渠道号有联系的话,那我们就要自定义生成apk名了 需要在build.gradle(Module:app)文件下 android{ } 添加: android.applicationVariants.all

    2.5K20

    为什么我把 Run 出来 Apk 发给老板,却装不上!

    序 当我们 Android Studio ,直接 Run 一个项目时,AS 会自动打一个 Debug Apk,并通过 ADB 命令,将 App 安装到我们连接设备上。...android:testOnly 对应是 ApplicationInfo FLAG_TEST_ONLY,这个 Flag 最早在 Api Level 4 就已经存在,使用它不会有任何低版本兼容问题...虽然 FLAG_TEST_ONLY 属性最早可以追溯到 APK Level 4,但是它其实是 Android Studio 3.0 上才被默认加入到 APK 。...因为我们只要保证正常提测、发布流程,基本上是很难将一个 Run 出来 Apk 分享给别人。 textOnly 只是一个标记,标记了它是一个测试版本,其实并没有任何实质性东西。...adb install -t debug.apk 如果想要阻止 AS Run 时,构建 APK 增加 android:textOnly 标记,也是有办法

    2.7K30

    Docker快速使用Oracle各个版本(从10g到21c)数据库

    为了测试需要,麦老师制作了各个版本Oracle数据库环境,下载地址如下: # oracle nohup docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest...oracle19clhr_asm_db_12.2.0.3:2.0 init # 对于ASM,① ASM磁盘脚本:/etc/initASMDISK.sh,请确保脚本/etc/initASMDISK.sh内容都可以正常执行...,例如: Docker只需2步即可拥有Oracle 21c环境 【DB宝10Docker只需2步即可拥有Oracle18c环境 【DB宝11】Docker只需2步即可拥有Oracle...11g企业版环境(11.2.0.3) 【DB宝12】Docker只需2步即可拥有Oracle 12cR2(12.2.0.1)企业版环境 【DB宝13】Docker只需2步即可拥有Oracle...ASM+DB环境 【DB宝3】Docker中使用rpm包方式安装Oracle 19c DB宝4 本文结束。

    1.7K50

    谷歌弃用APK包格式,转而使用AAB格式

    近日,谷歌官方宣布:自 2021 年 8 月起,Google Play 将要求开发者以 Android App Bundle (以下简称 AAB)格式发布新应用,该格式将取代 APK 成为标准Android...制作APK时候,通过Android SDK 提供打包工具打包成一个 Android 系统支持安装程序文件,几乎所有 Android 应用程序都使用这种格式发布。...1, 为何要从 APK 转变为 AAB 一直以来,Android 首选应用程序包就是 APK,那为什么Android要将安装包格式从APK转变为AAB呢?有人说是为了应对鸿蒙。...给予这一机制,很多公司最近两年都用它实现了插件化和动态化下发功能,参考文档:Android App Bundle。...为此,谷歌已经开发了一个名为 bundletool 开源工具,允许开发人员从 AAB 包创建 APK,因此想在第三方商店中发布 Android 应用程序开发人员可以手动导出其应用 APK 版本

    1.7K40

    Docker快速使用各个版本(从10g到23c)Oracle数据库

    镜像地址 为了测试需要,麦老师制作了各个版本Oracle数据库环境,下载地址如下: # oracle nohup docker pull registry.cn-hangzhou.aliyuncs.com...+DB环境 【DB宝3】Docker中使用rpm包方式安装Oracle 19c 【DB宝4】只需2步即可拥有Oracle19cASM+DB环境 18c: https://www.xmmup.com.../dbbao10zaidockerzhongzhixu2bujikeyongyouoracle-18chuanjing.html 【DB宝10Docker只需2步即可拥有Oracle18c环境 11g...只需2步即可拥有Oracle 11g企业版环境(11.2.0.3) 【DB宝14】Docker只需2步即可拥有Oracle 11g企业版环境(11.2.0.4) 12.2.0.1: https:/...-12cr112-1-0-2qiyebanhuanjing.html 【DB宝13】Docker只需2步即可拥有Oracle 12cR1(12.1.0.2)企业版环境

    1.4K20

    为什么Android请求权限从来都不是一件简单事情?

    等待时间一时兴起,突然想写一篇原创,聊一聊我自己Android权限请求代码时一些技术心得。 正如这篇文章标题所描述一样,Android请求权限从来都不是一件简单事情。为什么?...之前公众号留言区和大家讨论时,有朋友说:我觉得Android提供运行时权限API很好用呀,并没有觉得哪里使用起来麻烦。 真的是这样吗?我们来看一个具体例子。...不可以,因为你们公司测试就是那1%用户,他们会进行这种傻X式操作。 也就是说,即使只为了那1%用户,为了这种不太可能会出现操作方式,我们程序还是得要将这种场景充分考虑进去。...这也就是我编写PermissionX这个开源库原因,Android请求权限从来都不是一件简单事情,但它不应该如此复杂。...我们只需要在permissions()方法传入要请求权限名,onExplainRequestReason()和onForwardToSettings()回调填写对话框上提示信息,然后request

    1.3K10
    领券