AndroidX(1)androidx.core.core:1.0.0解析

本文深入探讨AndroidX中的core包,尤其是ContextCompat, IntentCompat, ActivityCompat和ActivityOptionsCompat。这些Compat类旨在处理不同SDK版本间的兼容问题,简化Android开发。尽管AndroidX带来了便利,但迁移过程仍存在挑战,例如material库的兼容性。作者建议谨慎使用AndroidX库,并分享了一篇相关文章供参考。" 133061287,19973998,理解文法的语义性与找到对应语言:编程实践,"['编程学习', '计算机科学', '语法分析', 'Python']
摘要由CSDN通过智能技术生成

前言

AndroidX出来一段时间了,从09年开始一直在做公司的quickstart和组件化的东西,基础框架搭建这一块也算是有一些成绩。从原来的功能的抽象的封装,到现在系统性质研究。

正文

新的项目启动,有利于做一些前沿技术的思想的学习和吸收。androidx问世以后,从长远角度出发,确实是android开发者的福音。谷歌终于开始布局对于开发者友好以一块的事情了。也许是长期依赖开发者对兼容包诟病很多,不管谷歌出于什么样的目的,长远看来确实是一件好事

然而,实际并没有那么简单

在开始使用androidx的时候也碰到了一些棘手的事情,比如如何将旧项目迁移到androidx上面来,还好google在as IDE上面增加了Migrate功能。虽然这个功能并不能搞定所有的事情,但是最起码是一个好的开始。修改的工作量稍微降低了一些。可能最费劲的要属material库的修改,并不能很好的支持迁移

废话不多说,今天就从core包的几个类讲起,他们分别是:

  • ContextCompat
  • IntentCompat
  • ActivityCompat
  • ActivityOptionsCompat

通过对这几个类的源码进行解读我们不难发现,这个兼容类,是为了帮我们处理不同Build.VERSION.SDK_INT 所对应的实现相同功能的不同调用方式
注意:⚠️SDK_INT 这个版本运行在硬件设备上的SDK版本,这个值不会被改变,除非硬件厂商提供OTA更新

 /**
         * The SDK version of the software currently running on this hardware
         * device. This value never changes while a device is booted, but it may
         * increase when the hardware manufacturer provides an OTA update.
         * <p>
         * Possible values are defined in {@link Build.VERSION_CODES}.
         */
        public static final int SDK_INT = SystemProperties.getInt(
                "ro.build.version.sdk", 0);

这里我们举例说明一下

ContextCompat

 /**
     * Return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值