Android调用系统隐藏API时注意的问题

从Android 9 (API级别28) 开始,系统限制了对非SDK接口的使用,导致引用隐藏API变得困难。AndroidX库要求最低SDK版本为28,而某些旧版本库如Parse-SDK-Android可能依赖较低版本。解决方法包括回退到SDK 27或更低版本,或者不使用AndroidX并改用support library。此外,文章提供了一种在Android P上使用隐藏API的参考链接。

Android P(28)开始的限制

从 Android 9(API 级别 28)开始,Android 平台对应用能使用的非 SDK 接口实施了限制。只要应用引用非 SDK 接口或尝试使用反射或 JNI 来获取其句柄,这些限制就适用。这些限制旨在帮助提升用户体验和开发者体验,为用户降低应用发生崩溃的风险,同时为开发者降低紧急发布的风险

也就是说从android sdk 版本28开始,系统会限制隐藏api的调用,所以我们只能使用27及以前的sdk版本。

AndrodX的引用

AndroidX已经取代了原有的android support library,所以很多项目都会引用AndroidX,但是因为AndroidX要求sdk版本在28以上,所以当我们如果要引用隐藏api,就需要将AndroidX改为android support library。

引用jitpack旧版本包时的问题

举例来说,我们项目中引用了Parse-SDK-Android,从包的介绍页面来看,页面上记录的版本都要在1.24.0以后。
在这里插入图片描述
查看github上该包的changelog,从1.19.0开始,包使用sdk 28。而之前最新的包是1.18.5,这里jitpack页面上没有写这个版本号,但是我们依然可以将build.gradle里的版本号改成1.18.5,发现依然能正常下载。

Android P以上该怎么办?

也不是没有办法,具体参考这篇文章:
听说你想在Android P上使用hide api?

参考:
Android Studio使用系统隐藏API的方法
针对非 SDK 接口的限制
AndroidX 概览

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coffemate1123

请作者喝一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值