闲言
讲道理,上个月26号我应该发布一篇文章的,但是你懂的,过年嘛。一年才一次,多珍贵呀。于是就偷懒休息了。这篇迟来的文章,算是补上2月没写的。3月26依然会出新的文章。2月的,就这么先水一下吧。
(悄悄话:我可比天星团队里面其他人好多了,2月他们也没写,但好歹我补上了呀!理直气壮.jpg!)
AndroidX是啥
过年我也不是一直闲着,就忙着复习,准备跳槽。途中了解到了AndroidX。
简单的说,AndroidX是Android Support Library的改进版,以后新的东西只会更新再AndroidX中,support库会逐渐被放弃。 这可能是个好消息,不用再纠结用v4还是v7了,统统改为X。但现在并不推荐使用在商业开发中,自己玩玩就好。
如何使用AndroidX
- 确保你的AS在3.2版本或3.2之上;
- compileSdkVersion 至少28(android 9.0);
- 在gradle.properties中设置"android.useAndroidX=true", "android.enableJetifier=true"
(useAndroidX:是否使用androidX的库,false时使用support库。
enableJetifier:是否让第三方库也自动使用androidX) - 菜单栏选择Refactor > Migrate to AndroidX
注意事项:如果你正在使用Android KTX模块,请确保更新你的依赖项以避免迁移问题。有关每个模块的最新版本,请参见 Android KTX。
迁移成功后具体的包名参见官方文档。
迁移后可能出现的问题
问题:在我将以前写的demo迁移到androidX之后,发现有些包并导入不进去。检查了包名是正确的,但就是导入失败。
解决办法:将要extends/implements的类里面引用的包删除一次,让AS自动导入。再将package包名删除,保存一下,再重新写包名。这样处理一次,就能被别的类引用了。
问题:不是所有第三方库都支持anroidX。
解决办法:不用担心,现在常用的大多数库都已经支持androidX了。使用androidX是一种趋势,这还需要程序员们的共同推广。全民androidX的时候,这个问题就不是问题了。
迁移后还有其他问题的同学欢迎在文章下留言,我会尽力解答。
我的AndroidX项目
我之前有写一篇关于Clean框架的demo,现在我将它升级成了androdX版本。
有兴趣的同学可以看看项目源码。
地址:https://github.com/GuitarDian/AndroidXCleanDemo