浅谈androidx,程序员的中年危机

private String uriHome = “http://www.baidu.com”;

private String url;

@浅谈androidx,程序员的中年危机_第1张图片
Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

WebView webView = (WebView) findViewById(R.id.webview);

webView.getSettings().setJavaScriptEnabled(true);

webView.setWebViewClient(new WebViewClient(){

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

});

Intent intent = getIntent();

Uri data = intent.getData();

if (data == null) {

url = “http://www.baidu.com”;

data = Uri.parse(url);

}

webView.loadUrl(data.toString());

}

}

但是结果发现,无论如何都无法实现在跳转之后,出现选择项来选择使用哪个浏览器来打开网页。于是便去翻阅各种资料,可是却发现我的代码没有任何问题,终于在一行一行进行审查时,发现了问题所在:

import androidx.appcompat.app.AppCompatActivity;

我引入的是Google最新推出的androidx,而非传统的android.support

import android.support.v7.app.AppCompatActivity;

改成引用android.support包后,项目便可以正常弹出浏览器的选择项。

为什么会引入androidx包

=========================================================================

我所使用的是3.4.1版本的Android Studio,在创建项目时,会有如下选择项:

在这里插入图片描述

如果勾选,项目便会自动引入androidx

androidx和android.support有何区别

======================================================================================

按照官方文档的说明 ,androidx 是对android.support包的整理后产物。未来新的特性和改进都会进入androidx包。主要原因是support库的命名十分混乱。所以,google推出了 androidx。但是现在的稳定版本还是采用android.support

| android.support | androidx |

| — | — |

| com.android.support:support-compat | androidx.core:core:1.0.0+ |

| com.android.support:appcompat-v7 | androidx.appcompat:appcompat:1.0.0+ |

| com.android.support:design | com.google.android.material:material:1.0.0+ |

| com.android.support:multidex | androidx.multidex:multidex:2.0.0+ |

| com.android.support:recyclerview-v7 | androidx.legacy:legacy-support-v4:1.0.0+ |

| com.android.support:viewpager | androidx.viewpager:viewpager:1.0.0+ |

以上是一些常用依赖库的变化,可以看到androidx的包名对于android.support来说,确实精简了不少,而且androidx也将一些UI组件分离出来,例如coordinatorlayoutviewpager等等,这样做可以更加精确的定位需要使用的组件,职责更加分明,也可以减轻应用程序运行时的压力。

迁移


如果想要从android.support迁移到androidx,Android Studio有提供一键迁移功能:

在这里插入图片描述

还需要手动配置gradle.properties,添加如下代码:

android.enableJetifier=true

android.useAndroidX=true
l80MjM5ODU2Nw==,size_16,color_FFFFFF,t_70)

还需要手动配置gradle.properties,添加如下代码:

android.enableJetifier=true

android.useAndroidX=true

你可能感兴趣的:(程序员,架构,移动开发,android)