首页
学习
活动
专区
圈层
工具
发布

拖不得了,Android11真的来了,最全适配实践指南奉上

以下我分为两部分讲述,分别是 以Android11 为目标版本的应用(targetSdkVersion>=30才有影响)⭐ 所有应用在Android11设备上适配改动(无论targetSdkVersion...是多少,只要在Android11设备上运行的应用都有影响) 为什么先说targetSdkVersion>=30的模块呢?...用户无法在搭载 Android 11 的设备上安装或更新仅通过 APK 签名方案 v1 签名的应用。...在搭载Android11系统的设备上,targetVersion小于11的时候,可以前台后台位置权限一起申请,并且对话框提供了文字说明,表示需要随时获取用户位置信息,进入设置选择始终允许即可。...也就是以下两种情况: 用户在系统启动后首次解锁其设备 用户在设备上切换到自己的帐号 JobScheduler API 调用限制调试 JobScheduler任务调度器,可以在设备空闲时做一些任务处理。

7.5K340266
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 10 和Android 11的适配

    背景 最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑。之前有专门写过qq、微信分享的适配。但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题。...在Android10 上公共目录下的图片无法通过file:// 格式去访问,提示找不到路径。如glide加载、图片选择库、裁剪框架等等都会收到影响。...但是,这里有个坑: 在Android10上不行,在Android11上又可以!!为什么? 因为Google改回来了,让Android11支持file://格式了。。。。 (wtf?...在Android11上 以上标志会自动失效。因此,应用存储的东西还在放在App-specific目录下。分享私有目录可以通过fileprovider 方式适配。...2. targetSdk=30,android:requestLegacyExternalStorage="false"运行在Android11的设备上 会咋么样?

    1.6K41

    UI自动化截图哪家快,minicap截图最快!

    在测试行业,基本做自动化的都用到minicap,什么要用到它呢?因为它截图都是毫秒级别,你知道stf设备共享平台核心模块是什么吗?...就是调试minicap是否兼容android发布的版本,比如现在发布了android11了,然后也有编译的android30了,那能不能截图,我android11的手机,要怎么确认,是否兼容呢?...刚好小弟我,也是自己匹配了荣耀V50pro android11 minicap 的android30是否兼容,以便于把该设备,上架stf设备共享平台; 今天我分享不是怎么快,而是分享下怎么去看自己的android11...系统,是oppo就会提示权限问题; 7.另外打开一个dos窗口,进行端口映射,命令如下: adb forward tcp:1717 localabstract:minicap 8.在dos窗口,进入...minicap-master\minicap-master\example目录下,输入node app.js,启动项目 9.打开浏览器,在地址栏输入localhost:9002,就可以看到手机页面投屏到浏览器上

    3.2K10

    Android8.0、9.0、10.0、11.0的新特性兼容适配代码修改

    《Android Studio开发实战 从零基础到App上线(第2版)》在书后面的附录中给出了Android8和Android9的主要特性说明,附录表格如下图所示: 不过附录表格只涵盖了常见的功能代码适配...blob/master/network/src/main/AndroidManifest.xml Android10 1、Android10默认开启沙箱模式,即使已经动态申请了存储卡读写权限,在外部存储上读写文件仍然失败...1、打包APK时必须勾选V2 依次选择菜单Build→Generate Signed Bundle/APK,在导出APK安装包的时候,V2复选框也要勾选,该选项可避免Janus漏洞,而且从Android11...默认WebView不能访问存储卡上的网页 build.gradle中采用Android11编译时(targetSdkVersion 30),WebView无法访问存储卡的网页文件,此时要调用WebSettings...在Android10及以下版本,该值默认为true,但从Android11开始该值默认为false。 设置代码示例如下: // 设置是否允许访问文件,如WebView访问存储卡的文件。

    1.4K20

    Android 11 强制用户使用系统相机?

    此项变更是说在使用Intent创建拍照,录像隐式请求的时候,只有手机预装的系统相机才会响应。...如果开发者没有进行适配的话,Android11上就直接跳转到系统相机去了。对于很多使用美颜,滤镜和贴纸功能的用户影响还是挺大的。 又是一波适配工作来了呀.........Android11 中要提供原来版本的交互体验,可能就需要自己实现选择UI了.........此项变更已经在Android11 beta版本中生效,不知道正式的版本是否有所变化,也不清楚Android CTS是否会测试这一项内容,或者允许OEM厂商将其更改为原来的规则(如果CTS要测试这一项的话...虽然此项变更在issue track区域,很多Android开发者提出了明确的质疑,不过趋势是不可更改的,从一些API的限制上我们可以明显的感受到这一点。

    1.8K40

    线程与更新UI,细谈原理

    其实经过实践会发现,外部存储访问权限还是会和targetSdkVersion有关,具体可以看这篇Android11适配指南。...然后再看看前面的案例: 案例一,在onCreate中修改Button,这时候只是在修改DecorView,都没创建ViewRootImpl,也就没走到所以checkThread方法,当然不会崩溃了。...重新运行,在子线程中显示并消失后,点击按钮,不崩溃。 换个手机——三星s9,重新运行,在子线程中的Toast没消失之前点击按钮,不崩溃。...所以崩溃的原因就是因为Toast在第一次在子线程中show的时候,新建了一个ViewRootImpl实例,绑定了当前线程也就是子线程到mThread变量。...这是我偶然发现的,在我的三星S9手机上,运行时不会崩溃的,而且界面给我的反馈并不是修改当前页面上Toast上的文字,而是像新建了一个Toast展示,即时代码中写的是setText方法。

    1K20

    AndroidR兼容性适配指南

    看到这里也许会产生疑惑,在Android10中不是进行分区存储了么,这么Android11又开始能直接使用文件路径进行访问了。...,那么只能通过File API 访问媒体文件和自己有访问权限的文件;除此之外我们如果访问其他文件会造成以下崩溃: Caused by: java.io.FileNotFoundException: /sdcard...访问外部存储设备上的应用专用目录 在 Android 11 上,应用无法再访问外部存储设备中的任何其他应用的专用于特定应用的目录中的文件。...权限对话框的可见性 从 Android 11 开始,在应用安装到设备上后,如果用户在使用过程中多次针对某项特定的权限点按拒绝,那么在您的应用再次请求该权限时,用户将不会看到系统权限对话框。...,我们在进行Android11适配的时候会更加容易; 在进行Android11相关分区存储适配时,应用内的相关媒体操作我们授权存储权限之后还可以是用File API。

    2.6K20

    Android11 无Root 访问data目录实现、Android11访问data目录、Android11解除data目录限制、Android11 data空白解决

    解决方案 SAF方案缺点 放大招,ROOT权限直接解锁后带权访问Data目录 结语 封装好的工具类 正文开始 关于Android11权限变化 谷歌在Android11及以上系统中采用了文件沙盒存储模式,...我实现的文件管理(Android11上直接免root管理data目录) 重要的坑:为什么不直接使用路径Path来实现文件浏览呢?...我也这样觉得的,在我当时在对Android11进行适配的时候为了改动小,肯定是想用这个方法来进行适配,但是根本行不通! 我们不是获取了Android/data目录的权限了吗?...这个Android11上Android/data受限后,我觉得这个是很好的解决方案了,毕竟可以实现无Root访问并实现管理。...当然,这个方案肯定会有些不如意,但是这已经是没方案中的最好的办法,毕竟谷歌限制不让你访问data目录,我们某些涉及文件管理的应用又确实需要访问,方案亲测可用,我已经按照以上方案在我的app中进行了Android11

    16.8K31

    得物 Android Crash 治理实践

    二、DNS解析崩溃背景Android11及以下版本在DNS解析过程中的有几率产生野指针问题导致的Native Crash,其中Android9占比最高。...libjavacrypto.so (_ZL45NativeCrypto_SSL_pending_written_bytes_in_BIOP7_JNIEnvP7_jclassl+20)问题分析从设备分布上看...结合前置判断了mAdded为true才会走到崩溃点,在源码中寻找到只有先正常调用setView以后在调用dispatchDetachedFromWindow时才满足mAdded=true、mView=null...本地验证阶段,通过在 Android 15 设备上高频触发商详页 Dialog 弹窗的焦点获取与关闭操作,未复现线上崩溃问题。考虑到 Hook 方案的侵入性风险 ,且无法本地测试,最终放弃此方案上线。...通过崩溃日志分析发现,问题设备100% 集中在小米/红米机型,而该品牌在 Android 15 DAU中仅占 36% ,因此怀疑是MIUI对Android15某些定制功能有bug。

    47610

    OpenGL自制游戏引擎-HelloTriangle

    Pipeline: 开始绘制图形之前,我们必须先给OpenGL输入一些顶点数据,OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0...所有在所谓的标准化设备坐标(Normalized Device Coordinates)范围内的坐标才会最终呈现在屏幕上....它会在GPU上创建内存用于储存我们的顶点数据,还要配置OpenGL如何解释这些内存,并且指定其如何发送给显卡。顶点着色器接着会处理我们在内存中指定数量的顶点。...所以我们储存这个顶点着色器为unsigned int,然后用glCreateShader创建这个着色器: We wrote the source code for the vertex shader...unsigned int vertexShader; vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader

    1.7K20

    tinker board 2s android11 dsi 屏幕驱动

    上一期介绍了一下tinkerboard2 Android11下面的bootloader,这一期来介绍一下tinkerboard2在Android11下面适配DSI屏幕的方式。...目前Android全部采用的都是Linux DRM框架进行显示,在DRM框架中,其显示通路如下图所示 4.png 图中的几个组成部分 Framebuffer:显存,嵌入式系统使用的是内存的一部分 CRTC.../build.sh –K 最后会生成目标文件,将这个编译好的boot.img烧录到板上,然后注意一下串口的kernel log 6.png 这个log说明drm驱动已经能够正常运作 7.png 这个log...修改此处后执行make –j8,烧录super.img到板上,即可正常显示出Android的画面,默认状态下,DSI和HDMI显示的内容是一样的,RK也有双屏异显的DEMO,后面再介绍。...总结 本文以tinkerboard2对接7寸1024*600分辨率的DSI屏幕为例,介绍了在tinkerboard2在Android11下面适配DSI屏幕的方式。此方法对于其他分辨率的屏幕同样适用。

    1.9K90
    领券