精华内容
下载资源
问答
  • 本文将重点介绍该版本特性中部分需要开发适配的部分。汇总自己踩过的坑以及百度所得,本文会持续更新。 背景:谷歌在GoogleI / O 2019发布了Android Q Beta X。对当前应用影响重大,急需适配。 API = 29;主要影响...

    本文将重点介绍该版本特性中部分需要开发适配的部分。汇总自己踩过的坑以及百度所得,本文会持续更新。

    背景:谷歌在GoogleI / O 2019发布了Android Q Beta X。对当前应用影响重大,急需适配。

    API = 29;主要影响分类:

    • 影响所有应用的行为变更(不管targetSdk是多少,对所有跑在Q设备上的应用均有影响)
    • 影响以 Android Q 为目标平台的应用的行为变更(targetSDK == Q ,且跑在Q设备上的应用才有影响)
    • 项目升级遇到的问题(这个没有实践过,怕误导大家,在此不讨论)

    影响所有应用的行为变更

    用户隐私权限变更:AndroidQ引入了大量更改和限制以增强对用户隐私的保护。具体变更如下:

    权限 受影响应用 如何启用(影响范围)
    存储权限 访问和共享外部存储设备中的文件的应用 adb shell sm set-isolated-storage on(下文详述)
    定位权限 在后台时请求访问用户位置信息的应用 这种权限策略在 Android Q 上始终处于启用状态
    从后台启动 Activity 不需要用户互动就启动 Activity 的应用 关闭允许系统执行后台活动开发者选项即可启用限制
    设备标识符(deviceId) 访问设备序列号或 IMEI 的应用 在搭载 Android Q 的设备上安装应用
    无线扫描权限 使用 WLAN API 和 Bluetooth API 的应用 以 Android Q 为目标平台

    1、存储权限:为了管理文件夹混乱问题,Android Q 在外部存储设备中为每个应用提供了一个“隔离存储沙盒”【类似iOS机制】(例如 /sdcard)。任何其他应用都无法直接访问您应用的沙盒文件。文件是应用的私有文件,因此不再需要任何权限即可在外部存储设备中访问和保存自己的文件。此变更可让您更轻松地保证用户文件的隐私性,并有助于减少应用所需的权限数量。

    沙盒,简单而言就是应用专属文件夹,并且访问这个文件夹无需权限。
    谷歌官方推荐应用在沙盒内存储文件的地址为Context.getExternalFilesDir()下的文件夹。
    比如要存储一张图片,
    则应放在Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES)中。
    • 操作自己APP的内部外部存储无需任何权限
      多媒体文件(照片,音频,视频)可以通过MediaStore进行操作。
      其他文件可以通过文件路径以及File API进行操作,应用卸载时,该目录会被清除。
    • 访问系统媒体文件:Q中引入了一个新定义媒体文件的共享集合,比如照片,音乐,视频等,需要申请新的媒体权限,READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO,申请方法同原来的存储权限。
    • 访问系统下载文件:对于系统下载文件夹的访问,暂时没做限制,但是,要访问其中其他应用的文件,必须允许用户使用SAF(存储访问框架)来选择文件。
    • 访问其他沙盒的多媒体文件需要申请READ_EXTERNAL_STORAGE权限。                                                                                       必须使用MediaStore和ContentResolver来进行文件的访问和操作。
    • 访问其他沙盒的非多媒体文件,必须使用SAF(存储访问框架),也就是打开系统的文件选择器
    • SAF可以访问任何一个文件,而无需请求任何权限。

    2、定位权限:如果应用需要在后台时也获得用户位置,就需要动态申请ACCESS_BACKGROUND_LOCATION权限。

    与现有的 ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION 权限不同,新权限仅会影响应用在后台运行时对位置信息的访问权。除非应用的某个 Activity 可见或应用正在运行前台服务,否则应用将被视为在后台运行。

    targetSDK <= P 应用如果请求了ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION权限,Q设备会自动帮你申请ACCESS_BACKGROUND_LOCATION权限。

    3、不可重置的设备标识符限制:从 Android 10 开始,去掉了READ_PHONE_STATE权限,取而代之的是一个系统级别的权限:READ_PRIVILEGED_PHONE_STATE(只提供给系统app),只有拥有该权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。那么在Android Q平台,我们的应用也不会再有IMEI和序列号。

    受影响的方法:

    针对(targetSDK >= 29)的设备唯一标识符适配,谷歌官方有提供解决方案,但是ID可变。ANDROID_ID的获取一直不受影响,但可能由于机型原因返回null,两种方法半斤八两。目前没有很好的解决方案。取ANDROID_ID适配如下:

    public static String getDeviceId(Context context) {
        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            Log.e(TAG, "Have not permission to obtain DeviceId");
            return "";
        }
        if (Build.VERSION.SDK_INT >= 29) {
            return getAndroidId(context);
        }
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        return telephonyManager.getDeviceId();
    }

    4、禁止应用后台弹页面

    Android Q在开发者选项中:关闭允许系统执行后台活动开发者选项即可启用限制。只能通过用户的交互来打开活动如果存在该场景的应用(比如闹钟、语音、视频电话等),需要通过通知提醒的方式解决。

    5、关于minSDK警告:谷歌要求运行在Q设备上的应用targetSDK>=23,不然会向用户发出警告。

    在 Android Q 中,当用户首次运行以 Android 6.0(API 级别 23)以下的版本为目标平台的任何应用时,Android平台会向用户发出警告。如果此应用要求用户授予权限,则系统会先向用户提供调整应用权限的机会,然后才会允许此应用首次运行。

    影响以 Android Q 为目标平台的应用的行为变更

    非 SDK 接口限制:非SDK接口限制在Android P中就已提出,但是在Q中,被限制的接口的分类有较大变化

    非SDK接口介绍:为了确保应用稳定性和兼容性,Android 平台开始限制您的应用可在 Android 9(API 级别 28)中使用哪些非 SDK 接口。Android Q 包含更新后的受限非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。

    非SDK接口限制就是某些SDK中的私用方法,如private方法,你通过Java反射等方法获取并调用了。那么这些调用将在target>=P或target>=Q的设备上被限制使用,当你使用了这些方法后,会报错:

    获取方法 报错信息
    Dalvik instruction referencing a field NoSuchFieldError thrown
    Dalvik instruction referencing a method NoSuchMethodError thrown
    Reflection via Class.getDeclaredField() or Class.getField() NoSuchFieldException thrown
    Reflection via Class.getDeclaredMethod(), Class.getMethod() NoSuchMethodException thrown
    Reflection via Class.getDeclaredFields(), Class.getFields() Non-SDK members not in results
    Reflection via Class.getDeclaredMethods(), Class.getMethods() Non-SDK members not in results
    JNI via env->GetFieldID() NULL returned, NoSuchFieldError thrown
    JNI via env->GetMethodID() NULL returned, NoSuchMethodError thrown

    非SDK接口查找:如果不确定自己的应用是否使用了非 SDK 接口,则可以测试该应用进行确认。当你调用了非SDK接口时,会有类似Accessing hidden XXX的日志:

    Accessing hidden field Landroid/os/Message;->flags:I (light greylist, JNI)
    

    但是一个大项目到底哪里使用了这些方法,靠review代码和看日志肯定是不现实的,谷歌官方也提供了官方检查器veridex用来检测一个apk中哪里使用了非SDK接口。veridex下载地址:https://android.googlesource.com/platform/prebuilts/runtime/+/master/appcompat,选择相应版本对应下载即可。

    下载解压后命令行cd到veridex目录下使用./appcompat.sh --dex-file=Q.apk即可自动扫描。Q.apk为包的绝对路径,如果包与veridex在相同目录下直接输入包文件名即可。扫描结果分为两部分,一部分为被调用的非SDK接口的位置,另一部分为非SDK接口数量统计。

    非SDK接口适配:如果您的应用依赖于非 SDK 接口,则应该开始计划迁移到 SDK 替代方案。如果您无法为应用中的某项功能找到使用非 SDK 接口的替代方案,则应该请求新的公共 API。

    官方要求targetSDK>=P的应用不使用这些方法,并寻找其他的公共API去替代这些非SDK接口,如果找不到,则可以向谷歌申请,请求一个新的公共API https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces#feature-request (一般不需要)。

    项目中使用非SDK接口大概率有以下两种情况:

    • 在自定义View的过程中为了方便,使用反射修改某个参数。
    • 三方SDK中使用了非SDK接口(这种情况比较多)。

    第二种情况只能更新到最新的三方SDK版本,或者提工单、换库(也是整个适配过程中工作量最庞大的部分)。

    展开全文
  • 对于华为手机来说,今年注定是不平静的一年,在受到遏制后,华为手机硬件和软件均受到国人的关注,但相比硬件这块,软件方面却更让人...不过看起来华为并没有完全放弃安卓系统。应该是和小智说的那样,采取鸿蒙安...

    对于华为手机来说,今年注定是不平静的一年,在受到遏制后,华为手机硬件和软件均受到国人的关注,但相比硬件这块,软件方面却更让人担忧。毕竟华为自研的麒麟处理器目前已经非常成熟了,做到自给自足是没有一点问题的。

    但是软件方面,华为的鸿蒙系统虽然目前声势浩大,看好它的人也很多,但毕竟还未发布,没有经过市场考验,好坏现在还很难说。不过看起来华为并没有完全放弃安卓系统。

    5bdd17ea-9414-eb11-8da9-e4434bdf6706.jpeg

    应该是和小智说的那样,采取鸿蒙安卓双系统一起发展策略。据国外科技媒体HDBlog发布的消息,华为已经准备为旗下的11款手机开启最新的安卓10.0测试,由于华为全球手机采用的都是EMUI和安卓底层的系统,所以EMUI10或许还会采用安卓10.0系统作为底层开发。

    而这一点在之前泄露的EMUI10系统上也得到了证实,目前已有人刷入了华为P30 Pro的EMUI10内测包,EMUI10的界面UI进行了脱胎换骨的重新设计。

    5ddd17ea-9414-eb11-8da9-e4434bdf6706.jpeg

    包括图标,系统设置和各个APP菜单小图标,还有布局都全面换新,和以往的EMUI系统有很大的区别。并且还有支持全局的黑暗模式,包括第三方APP。具体来说,首批支持升级安卓10.0的华为手机是这11款:

    华为P30 Pro、华为P30、华为P30 Lite、华为Mate 20 Pro、华为Mate 20、华为Mate 20X 5G、华为P Smart 2019、华为P Smart+ 2019、华为P Smart Z、华为P20 Pro、华为P20。

    5fdd17ea-9414-eb11-8da9-e4434bdf6706.jpeg

    暂时还没有看到荣耀的机型。不过虽然被曝出华为手机依然支持升级安卓10.0,但如果在8月19日之前华为还没搞定外部阻力的话,届时鸿蒙系统和安卓系统要如何共存或者切换可能将是华为不得不面临的问题。

    好消息是,华为表示若被迫转换到鸿蒙操作系统的话,华为可以在6~9个月内完成部署,全面转化安卓到鸿蒙系统!

    展开全文
  • 一款动作科幻FPS, 展示了当前高端移动设备可用的高质量视觉效果。它包含游戏的开始,并允许您测试和比较移动设备的性能。Tau Ceti Unknown Origin将您的主人公直接带入危险之中。您的太空船, 著名的ESS子午线(从...

    一款动作科幻FPS, 展示了当前高端移动设备可用的高质

    量视觉效果。它包含游戏的开始,并允许您测试和比较移

    动设备的性能。

    fbc29f972896a57d5dff903b6122abe7.png

    Tau Ceti Unknown Origin将您的主人公直接带入危险之

    中。您的太空船, 著名的ESS子午线(从“死亡效应2”中得

    知)已经陷入困境并坠毁。逃生舱拯救了您的生命,并将

    您安全地带到Tau Cet if行星的表面, 直接在充满未知生

    命形式的丛林中,其中一些可能是聪明的,现在到处都是

    坠毁的船只残骸。您能否生存并发现地球的秘密?

    aad3739e705618a68e7758dc4b871bdb.png

    Tau Ceti未知起源是一个美丽而危险的地方。从茂密的热

    带雨林到深峡谷和危险的沼泽,到处都是危险的动物群和

    古老文明的痕迹。摇摇欲坠的神秘神庙可以提供庇护所和

    知识,但往往充满危险。地球上的生命形式并不友好,它

    们不会善待破碎的船只和少数人类幸存者。

    766aa54bf22af5215ee693ed329abf72.png

    主要特点

    ·系外行星Tau Cet if的异国未开发世界

    ·具有不可预测行为的独特有机AI原型

    ·控制台品质的图形和逼真的音效以及令人惊叹的环境

    ·游戏开始时有着深刻的故事,这是我们之前游戏的精神

    f77d582f2855d2359beaf2df3cbd6fda.png

    续集

    ·游戏中的电影介绍,直接带您进入动作

    ·角色创建预览

    ·2个可玩的故事级别

    ·智能手机(GPU和CPU) 的基准测试

    ·全面的控制器支持

    25f61de2978c9d185eac34cf0ea14b55.png

    77ecf3adbbe14fa8ebca500b95977c97.png

    7bd10c8fe79039541e1d8e7146dc5582.png

    下载链接:

    https://pan.baidu.com/s/19_KQBK9ccE5h8legxp3aMw

    提取码:jbbn

    演示视频:https://www.bilibili.com/video/BV1ei4y1579z/

    展开全文
  • 于双十一当天,魅族终于发布了全新的Flyme8稳定版系统,尽管目前适配的机型只有一部分,但后续会继续推进。在新系统发布当天魅族社区、Flyme官方微博等平台已经炸开了锅,等候多时的的煤油们终于可以用上心心念念的...

    36109858aabc87812794f32a07cf1d97.png

    于双十一当天,魅族终于发布了全新的Flyme8稳定版系统,尽管目前适配的机型只有一部分,但后续会继续推进。在新系统发布当天魅族社区、Flyme官方微博等平台已经炸开了锅,等候多时的的煤油们终于可以用上心心念念的Flyme8了。

    876efb1a261107cbf1cb1c29a28d9d80.png

    “流畅、牛逼、强大、感动落泪”这是社区留言中出现最多的几个词语。笔者也在第一时间下载了稳定版的Flyme8系统,并且已经体验了一天时间,总体感觉还是很不错的,相对于内测系统要更为稳定和流畅,但是bug还是有的,首先是第一点:相册闪退。其实这个问题早在内测时笔者就遇到过,而且一直没有解决,昨天更新后问题依旧出现,但经过反馈魅族的工程师很快就把新的相册APP发给我,安装之后就没有出现闪退的问题了。

    1f2f00bd3f52afd4fb02cba327418cc9.png

    问题二:通知栏的流量信息会莫名其妙消失。这个问题在内测时笔者也同样遇到过,为了避免再出问题,笔者在更新系统是已经选择了清除数据,但是还是出现了这样的bug。看来这个稳定版也不怎么稳定啊。

    问题三:安卓底层是否更新。这是所有人都关心的问题,笔者会着重跟大家探讨。

    目前安卓10.0稳定版已经发布,有不少手机厂商已经把底层更新的日程安排上了。早前在微博上有魅族工程师发话底层更新的计划已经在进行中,听到此消息令无数煤油喜出望外,但人家并没有说这次Flyme8稳定版系统会跟新呀!所以答案显而易见,这次的Flyme8稳定版并没有跟新安卓底层,依旧保持使用手机出厂时的安卓底层。

    4fcbbb021db97c57d6aa02cff8885e30.png

    很多人不太明白为什么非要跟新安卓底层,这就由笔者为大家解释一下。国内所有的安卓系统都是依靠原生的安卓系统进行定制化修改而成的,所谓的安卓底层其实就是最开始用作修改的那个原生安卓系统。一般来说更新安卓底层对于安卓手机来说是利大于弊,特别是大版本的更新。举个例子:假如我的手机系统原来是安卓8.0的,现在更新到安卓9.0,那么我的手机就支持了全新的夜间模式,以及手势操作这些新功能,除此以外手机的操作逻辑、流畅性、功耗以及安全性都会有明显的提升。

    1554aed93ddef75b8881842dbd8540e3.png

    那有人会问:“为什么自己的手机没有更新底层也拥有这样的功能呢?”这是因为国内手机厂商自己给手机添加了该项功能,虽然能自行对手机系统进行优化,但是这样的修修补补的添加安全补丁或者新增功能会对手机的稳定性造成一定的影响,而且某些软件不支持低版本的安卓系统,这就会对用户造成很不好的使用体验。

    8adaa1ce7046f4cc881aa36d3f516b40.png

    言归正传,那为什么明明知道底层更新对于手机那么重要,魅族依旧我行我素不去更新呢?原因有三个:

    一.人手不足

    魅族科技近两三年出现了非常大的变动,之前与高通的官司终于达成和解,但是因为专利权赔偿了不少;Pro7事件更是加速了魅族衰亡的节奏,原来的魅族三剑客也因此解散,而早前绿厂以高薪挖走了大量的魅族工程师,对魅族来说更是一个重创。最后在不断裁员精简人手的方式下暂时稳住了脚步。跟体量较大的华为和小米,魅族根本就不可能在短时间适配所有产品,更别说更新安卓底层了。现在的魅族从原来三千多人的公司变成了只有一千多人,如果不能抢回市场份额,估计未来很长的时间里对于魅族来说都是寒冬。

    07567310016c322f0e6caa10bc8141ae.png

    二.适配难度大

    适配系统的复杂程度远远超过我们所想象的,以安卓9.0为例,要适配就必须经历九个步骤:

    第一步:谷歌向芯片供应商(高通、联发科等)发布操作系统代码——一组源文件和平台开发工具包;

    第二步:芯片制造商发布HAL(硬件抽象层),使其能与每个芯片正常运行;

    第三步:将android One的特殊功能和智能手机独有的体验整合到软件中;

    第四步a:在livenetworks上进行系统构建和测试及运营商supportis测试,包括语音通话、网页浏览、视频、短信等功能

    第四步b:上述测试完毕之后,我们的工程和测试团队在进行人工调试,使其能正常运行所有的软件;

    第四步c:通过实验室让我们的内测用户帮助我们测试新版本的稳定性;

    第五步a:在没有达到一系列强制性标准要求之前,任何版本都不能发布——因为世界各地的情况各不相同,最常见的是蓝牙和Wi-Fi;

    第五步b:我们仔细检查一切,以确保您的手机升级之后可以工作正常;

    第五步c:我们的工程师进行最后的测试,包括区域测试/验证等,保证设备可以在用户所在区域正常的工作。

    看到这里相信大家都应该清楚系统适配是多么艰难。

    dbab8319569bda0849f50a7411df0d20.png

    三.资金不足

    在魅族16th发布后,得到了外界很高的评价,黄章的回归似乎为魅族带来了新的起色。但发布之初首批新机的供应量不足,买一部手机竟然需要等一两个月,这不但消耗了消费者的耐心,之后发布的更优秀的手机也会取代16th的位置,这就是为什么魅族明明有着很好的口碑却没有多少销量的原因。直到现在魅族的部分机型都依旧出现这样的情况,昨日的在各大电商平台上魅族手机的销售量真的不容乐观。为了新产品的研发以及公司的正常运转,根本就没有太多的资金用于安卓底层的更新。

    33557899ce33e6592eb057cc87b0198a.png

    Flyme是国内最早的一批定制安卓系统,以其清新、简约、人性化吸纳了大批的粉丝,尽管经历了不少的挫折,魅族依旧为我们带来了诚意满满的Flyme8,虽然仍旧有不足的地方,但Flyme还是充满着魅力。笔者希望魅族可以继续走下去,并且越做越好,手机市场需要多元化,需要不断补充新鲜血液,魅族加油!Flyme加油!

    展开全文
  • Android 5.0 Material Design ART虚拟机 Android 6.0 应用权限管理 官方指纹支持 Doze电量管理 运行时权限机制->需要动态申请权限 Android 7.0 多窗口模式 支持Java 8语言平台 ...适配 隐式广...
  • 安卓适配总结(6.0到10.0
  • 目前,美国Google公司的AndroidP(安卓9.0),已经正式全面推出有几个多月了。众多手机品牌厂商也都在积极的进行更新适配Android 9.0系统(修改UI界面也算是二次开发,嗯)。不知道各位Android用户是否体验到了这一...
  • Android Q(10.0)版本新特性和兼容性适配

    万次阅读 热门讨论 2019-04-18 12:02:29
    北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了。Android Q 为开发者们带来了许多新功能,如折叠屏增强项、新网络连接 API、全新...
  • 北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了。Android Q 为开发者们带来了许多新功能,如折叠屏增强项、新网络连接 API、全新...
  • AndroidQ文件存储适配

    千次阅读 2019-12-27 17:47:55
    安卓Q即安卓10.0已经发布多时,不过大多数开发者并没有真机去测试,最近各厂商系统陆续推送了10.0的升级,因此必须要考虑去适配10.0系统了! 关于10.0系统权限方面的改变,大家可以搜索相关文章,这里主要讲一下存储...
  • 北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了。Android Q 为开发者们带来了许多新功能,如折叠屏增强项、新网络连接 API、全新...
  • 目前,美国 Google公司的 AndroidP (安卓9.0),已经正式全面推出有几个多月了。众多手机品牌厂商也都在积极的进行更新适配 Android 9.0 系统(修...
  • EMUI10Tools_10.0.0.185.7z

    2019-12-30 21:40:33
    3、系统更新:考虑专用专属APP适配安卓10,那么停用;考虑微内核、分布式等新技术 新功能,那就启用;4、减少资源占用、增加续航:停用/启用 系统内置 很少用 的功能模块;5、深度功能定制:调整横屏像素(慎用)、...
  • Android之获取移动网络运营商名称

    千次阅读 2020-04-02 16:52:42
    原来的获取方法不好用了,适配安卓10.0设备,最新获取移动网络运营商名称方法。 获取权限: android.permission.READ_PHONE_STATE 工具类代码: /** * Created by zachary on 2020/04/02. * 获取设备信息 *...
  • 安卓版本的碎片化问题向来是谷歌非常关心的...不过相对来说目前安卓新版本的覆盖速度较以前倒是也有所提升,这主要得益于第三方制造商适配速度开始加快。比如最新的安卓版本分布数据显示 Android 10.0 占比约 8.2%...
  • 2019 Android开发工程师面经

    千次阅读 2019-11-07 22:27:00
    文章目录1. Java基础1.1 什么是乐观锁?1.2 volatile关键字1.3 hashmap 原理,红黑... 安卓基础2.1 安卓各版本大变化(Android 6.0到10.0有哪些大点变化),兼容适配2.2 热修复原理2.3 MVC,MVP,MVVM2.4 组件化的好处2.5 ...
  • android10.0安卓系统已经开始内部支持人脸识别了,和指纹识别的设计非常相似,归为生物识别技术,但是咱们这里写的问题是android9.0或者之前的问题。因为现在市面上已经好多安卓设备锁屏中已经适配了人脸识别解锁...
  • android10.0安卓系统已经开始内部支持人脸识别了,和指纹识别的设计非常相似,归为生物识别技术,但是咱们这里写的问题是android9.0或者之前的问题。因为现在市面上已经好多安卓设备锁屏中已经适配了人脸识别解锁...
  • 由于项目需要使用了ArcGIS10.0,不知道操作了什么,打开ArcMap ...Web App适配不同屏幕的几点建议安卓设备在屏幕尺寸和像素密度上差别很大,因此在使用WebView加载网页时就需要考虑到这种差别,对我们的网页做出精心的...
  • Android 10.0 权限适配 ✅ ✅ ❌ ✅ ❌ ✅ ❌ Android 11 新版存储权限 ✅ ❌ ❌ ❌ ❌ ❌ ❌ Android 11 新版定位策略 ✅ ❌ ❌ ❌ ❌ ❌ ❌ 屏幕方向旋转场景适配 ✅ ✅ ❌ ✅ ❌ ❌ ❌ 后台申请权限场景...
  • 上百家授权客户在付费使用VirtualApp商业版代码,集成VirtualApp代码的APP日启动次数超过2亿次,众多安卓工程师向我们提供不同场景下的用户反馈,通过我们技术团队不断优化迭代,VirtualApp商业版代码性能更好、兼容...

空空如也

空空如也

1 2
收藏数 25
精华内容 10
关键字:

安卓10.0适配