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

本文探讨了在Android开发中遇到的无法在跳转后弹出浏览器选择的问题,原因是误引入了AndroidX库而不是传统的android.support包。解释了AndroidX是android.support库的整理版,为了解决命名混乱并提供新特性。介绍了AndroidX与android.support的区别,并列出部分常用库的对应变化。同时,提供了Android Studio的一键迁移方法以及手动配置gradle.properties的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

private String url;

@
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值