登录

去注册

登录

注册

去登录

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

获取注册验证码

  • 扫码关注公众号
  • 发送“我爱安卓
  • 即可获取验证码

每日一问 | Call requires API level 23 (current min is 14) 扫描出来的原理是?

xiaoyang   2020-11-02 00:15   收藏

我们在写代码的时候,有时候很容易使用一个高版本的 API,如果不注意,可能会导致在一些低版本的设备崩溃。

因此,我们可以选择引入 lint 在编译时进行检查。

今天的问题是?

  1. 应用:如何在打包时,强制开启 New API检查?
  2. 原理:lint 怎么能知道某个 方法是哪个版本加入的?是有一个汇总的地方维护着这样的方法列表吗?
  3. 原理:即使有这样的一个列表,lint是怎么扫描每一个方法调用的?

补一个问题:问题4:低版本存在,高版本已经删除的api(是 compileSdkVersion对应版本没有,直接调用报错的),除了反射用什么较为优雅的方法来代码调用呢。

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定