推广AndroidX,人人有责。

6,989 阅读2分钟

作者:点先生 时间:2019.3.2

闲言

讲道理,上个月26号我应该发布一篇文章的,但是你懂的,过年嘛。一年才一次,多珍贵呀。于是就偷懒休息了。这篇迟来的文章,算是补上2月没写的。3月26依然会出新的文章。2月的,就这么先水一下吧。 (悄悄话:我可比天星团队里面其他人好多了,2月他们也没写,但好歹我补上了呀!理直气壮.jpg!)

AndroidX是啥

过年我也不是一直闲着,就忙着复习,准备跳槽。途中了解到了AndroidX

简单的说,AndroidX是Android Support Library的改进版,以后新的东西只会更新再AndroidX中,support库会逐渐被放弃。 这可能是个好消息,不用再纠结用v4还是v7了,统统改为X。但现在并不推荐使用在商业开发中,自己玩玩就好。

如何使用AndroidX

  1. 确保你的AS在3.2版本或3.2之上;
  2. compileSdkVersion 至少28(android 9.0);
  3. 在gradle.properties中设置"android.useAndroidX=true", "android.enableJetifier=true" (useAndroidX:是否使用androidX的库,false时使用support库。 enableJetifier:是否让第三方库也自动使用androidX)
  4. 菜单栏选择Refactor > Migrate to AndroidX

注意事项:如果你正在使用Android KTX模块,请确保更新你的依赖项以避免迁移问题。有关每个模块的最新版本,请参见 Android KTX。 迁移成功后具体的包名参见官方文档

迁移后可能出现的问题

问题:在我将以前写的demo迁移到androidX之后,发现有些包并导入不进去。检查了包名是正确的,但就是导入失败。
解决办法:将要extends/implements的类里面引用的包删除一次,让AS自动导入。再将package包名删除,保存一下,再重新写包名。这样处理一次,就能被别的类引用了。

问题:不是所有第三方库都支持anroidX。
解决办法:不用担心,现在常用的大多数库都已经支持androidX了。使用androidX是一种趋势,这还需要程序员们的共同推广。全民androidX的时候,这个问题就不是问题了。

迁移后还有其他问题的同学欢迎在文章下留言,我会尽力解答

我的AndroidX项目

我之前有写一篇关于Clean框架的demo,现在我将它升级成了androdX版本。
新版地址:AndroidXCleanDemo https://github.com/GuitarDian/AndroidXCleanDemo