Android P 适配指南,2021大厂Android知识点总结

解压目录

使用命令扫描:

appcompat.sh --dex-file=apk路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5KjpbXh5-1636557344259)(https://user-gold-cdn.xitu.io/2018/8/31/165908a81b22de85?imageView2/0/w/1280/h/960/ignore-error/1)]

可以看到我们的项目中只有一个 深灰名单的警告。

1.1.4 调用non-sdk 接口

下图是利用各种途径使用 non-sdk 接口的结果:

访问方式 结果
Dalvik 指令引用字段 引发 NoSuchFieldError
Dalvik 指令引用函数 引发 NoSuchMethodError
通过 Class.getDeclaredField() 或 Class.getField() 反射 引发 NoSuchFieldException
通过 Class.getDeclaredMethod() 或 Class.getMethod() 反射 引发 NoSuchMethodException
通过 Class.getDeclaredFields() 或 Class.getFields() 反射 结果中未出现非 SDK 成员
通过 Class.getDeclaredMethods() 或 Class.getMethods(). 反射结果中未出现非 SDK 成员.
通过 env->GetFieldID() 调用 JNI 返回 NULL,引发 NoSuchFieldError
通过 env->GetMethodID() 调用 JNI 返回 NULL,引发 NoSuchMethodError

1.2 安全相关

1.2.1 加密变更
Crypto Java 加密架构 (JCA) 提供程序现已被移除

类似写法,将会发生 NoSuchProviderException:

SecureRandom.getInstance(“SHA1PRNG”, “Crypto”)

android P 之前的设备上,使用 Crypto 提供商,如果 target < 24 (N) 能够正常使用,如果target 24+ 则会失败

adnrodi P 设备上 由于彻底移除了 Crypto, 因此无论 target 是何值 都会抛出异常 NoSuchProviderException

许多算法的 Bouncy Castle 版本被弃用

加密功能的 BC 提供者被移除,官方博客中这样说:

Starting in Android P, we plan to deprecate some functionality from the BC provider that's duplicated by the AndroidOpenSSL (also known as Conscrypt) provider

android P开始,BC 提供者变成不推荐,如果targetApi < P 会有日志警告 targetApi >=p (28+) 将会抛出 NoSuchAlgorithmException ,以下写法将会受影响:

Cipher.getInstance(“AES/CBC/PKCS7PADDING”, “BC”) or
Cipher.getInstance(“AES/CBC/PKCS7PADDING”, Security.getProvider(“BC”))

因此,建议不要再指定 provider 而使用默认实现。

1.3 隐私相关
后台应用访问受限
  • 您的应用不能访问麦克风或摄像头。
  • 使用连续报告模式的传感器(例如加速度计和陀螺仪)不会接收事件。
  • 使用变化或一次性报告模式的传感器不会接收事件。

如果您的应用需要在运行 Android 9 的设备上检测传感器事件,请使用前台服务

权限组变更

Android P 引入 CALL_LOG 权限组并将 READ_CALL_LOGWRITE_CALL_LOGPROCESS_OUTGOING_CALLS 权限移入该组。 在之前的 Android 版本中,这些权限位于 PHONE 权限组

wifi扫描权限变更:

Android 8.0和Android 8.1:

成功调用 WifiManager.getScanResults()) 需要以下任何一项权限:

  • ACCESS_FINE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值