Android Q非SDK接口的检测查找

 先上干货 ,非SDK接口的Google官方检测工具:

     Linux版本:veridex-linux

     Mac版本:veridex-mac

 

1.非SDK接口限制

Android P版本中就已经提出了非SDK接口限制,但在最新的Q版本中,被限制的接口的分类有较大变化

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

 

2.检测工具的使用

1)根据系统下载对应版本的工具并解压(文章开头)

2)使用命令行cd到veridex-linux/veridex-mac 目录下

3) chmod 777 * 给权限(不给权限的情况下可能失败)

4)执行./appcompat.sh --dex-file=Q.apk 进行检测(Q.apk为包的绝对路径,如果包与veridex在相同目录下直接输入包文件名即可)

5)查看结果

另:如果是执行 ./appcompat.sh --dex-file=Q.apk > report.txt 会自动检测并把控制台输出重定向到报告文件

 

以下是mac的实际操作与结果:(只截取了部分内容)

执行过程

打印结果

3.结果分析

1)greylist: 灰名单,即当前版本仍能使用的非SDK接口,但在下一版本中可能变成被限制的非SDK接口

2)blacklist:黑名单,使用了就会报错。也是我们项目中必须解决的非SDK接口

3)greylist-max-o:在targetSDK<=O中能使用,但是在targetSDK>=P中被限制的非SDK接口

4)greylist-max-p:在targetSDK<=P中能使用,但是在targetSDK>=Q中被限制的非SDK接口

所以从适配Q的角度出发,除了greylist我们可以暂时不解决以外,其余三种类型的非SDK接口需要我们进行适配。

 

特别感谢好基友宇神

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值