Google 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,按照官方文档说明 AndroidX 是对 android.support.xxx 包的整理后产物,因为之前的 support 包过于混乱,比如之前我们如果使用support为27.1.1的相关依赖库时。可能需要所有相关的support 库都为27.1.1。如果其中有bug的话,可能需要所有的都去升级,存在一个绑定关系,而且正式版的发布周期也很长。
通过AndroidX,我们可以看到实时实现的特性和bug修复。升级个别依赖,不需要对使用的所有其他库进行更新。这就和我们使用Github上的开源库一样的,出了问题,我们可以提出bug和意见。作者修复后,发布新版本,我们就可以直接替换使用了。更加的透明便捷。
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
implementation 'com.android.support:appcompat-v7:28.0.2'
修改为 implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.android.support:design:28.0.2'
修改为 implementation 'com.google.android.material:material:1.0.0'
import android.support.v7.app.AppCompatActivity;
修改为 import androidx.appcompat.app.AppCompatActivity;
PS:因为太多了,截图只列出部分
PS:因为太多了,截图只列出部分
AS 3.2 及以上版本提供了更加方便快捷的方法一键迁移到 AndroidX。选择菜单上的ReFactor —— Migrate to AndroidX... 即可。(如果迁移失败,就需要重复上面1,2,3,4步手动去修改迁移)
注意:如果你的项目compileSdkVersion 低于28,点击Refactor to AndroidX 会提示升级sdk版本:
You need to have at least have compileSdk 28 set in your module build.gradle to refactor to androidx
如果你是从头开发的新工程,AndroidStudio可以在新建工程时就配置好AndroidX。
典型例子:behavior
// support包
android.support.design.widget.AppBarLayout$ScrollingViewBehavior
// AndroidX
com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior
当然,通常我们发布的时候会使用 Https 类型的网络协议,而当开发和调试的时候可能就没有那么严格了。所以,为了解决这个问题, Android 新引入了下面的解决方案:
首先,创建配置文件 res/xml/network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
这里的 localhost是 host 的地址,比如我上面的出错的地址应该是makeunion.com。 然后,我们将其配置到 manifest.xml 中:
<application
android:networkSecurityConfig="@xml/network_security_config"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity android:name=" (...)
</application>
如果项目中使用了多个不同的地址,并且都是 http 的,所以就需要在该地址下面配置多个域名。
PS:更多信息请参考AndroidX官方文档