Google 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,将原来的android.*替换成androidx.*;只有包名和Maven工件名受到影响,原来的类名,方法名和字段名不会更改。接下来我们来看看使用 AndroidX的扩展库需要哪些配置。

1. AndroidX变化

1)常用依赖库对比:

Old build artifact AndroidX build artifact
com.android.support:appcompat-v7:28.0.2 androidx.appcompat:appcompat:1.0.0
com.android.support:design:28.0.2 com.google.android.material:material:1.0.0
com.android.support:support-v4:28.0.2 androidx.legacy:legacy-support-v4:1.0.0
com.android.support:recyclerview-v7:28.0.2 androidx.recyclerview:recyclerview:1.0.0
com.android.support.constraint:constraint-layout:1.1.2 androidx.constraintlayout:constraintlayout:1.1.2

 更多详细变化内容,可以下载CSV格式映射文件;

2)常用支持库类对比:

Support Library class AndroidX class
android.support.v4.app.Fragment androidx.fragment.app.Fragment
android.support.v4.app.FragmentActivity androidx.fragment.app.FragmentActivity
android.support.v7.app.AppCompatActivity androidx.appcompat.app.AppCompatActivity
android.support.v7.app.ActionBar androidx.appcompat.app.ActionBar
android.support.v7.widget.RecyclerView androidx.recyclerview.widget.RecyclerView

 更多详细变化内容,可以下载CSV格式映射文件。

2. AndroidX配置

1)更新升级插件

  • 将AS更新至 AS 3.2及以上;
  • Gradle 插件版本改为 4.6及以上;
    项目下 gradle/wrapper/gradle-wrapper.propertie 文件中的distributionUrl改为:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
  • compileSdkVersion 版本升级到 28及以上;
  • buildToolsVersion 版本改为 28.0.2及以上。

2)开启迁移AndroidX
 在项目的gradle.properties文件里添加如下配置:

android.useAndroidX=true
android.enableJetifier=true

 表示项目启用 AndroidX 并迁移到 AndroidX。

3)替换依赖库
 修改项目app目录下的build.gradle依赖库:

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'
implementation 'com.android.support.constraint:constraint-layout:1.1.2' → implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
...

4)修改支持库类
 将原来importandroid.**包删除,重新import新的androidx.**包;

public abstract class BaseActivity extends AppCompatActivity {}

导入的包名是:

import androidx.appcompat.app.AppCompatActivity;

参考AndroidX 官方文档,开启传送门

https://developer.android.google.cn/jetpack/androidx/migrate

android -------- AndroidX的迁移的更多相关文章

  1. Android 支持库迁移到AndroidX

    一.背景 Android系统版本在不断更新,从最初的Android 1.0到现在Google和各大手机厂商正在推的Android 10,平均下来每个年头都有一个大的版本更新.但用户正在用的手机上的An ...

  2. android studio 项目迁移编码问题

    关于编码问题.首先,eclipse上一般我们文件默认都设置成UTF-.对于迁移到Android Studio显示不存在乱码问题. 部分同学可能会遇到一个问题:代码中的中文(包括注释的中文),在编译时跳 ...

  3. 第四篇:Eclipse Android app 工程迁移到 Android Studio

    前言:这种问题当然在所难免,所幸android studio的project 工程目录远比 Eclipse 要了然. 目录对比 我们在Eclipse中创建一个EclipseDemo的Android项目 ...

  4. Android Studio项目迁移小结

    近来试着使用Android Studio.确实有些功能远远甩开eclipse几条街,可是临时用起来还不够熟练,先对这两天做项目迁移的一点心得做点总结. 这里说的项目迁移,是指从eclipse环境下的项 ...

  5. 【Android】页面迁移时先弹出键盘问题解决

    android自动弹出软键盘(输入键盘) 在AndroidMainfest.xml内容无法更改情况下,也就是键盘非要弹出情况下,进入此页面时先关闭软键盘不让其弹出 InputMethodManager ...

  6. android ------ AndroidX的 Tablayout(com.google.android.material.tabs.TabLayout) 的使用

    前面呢,有写过TabLayout的博客,最近开发用到了AndroidX来解决前面的问题,不要工具类设置下划线的问题了,来总结一下 Android--------TabLayout实现新闻客户端顶部导航 ...

  7. Android 之 ToolBar 踩坑笔记

    写在前面 •前言 这两天,学完了 Fragment 的基础知识,正准备跟着<第一行代码>学习制作一个简易版的新闻应用: 嘀嘀嘀~~~ 一声消息传来,像往常一样,打开 QQ,当我看到 QQ ...

  8. 【独家】React Native 版本升级指南

    前言 React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新.尤其是遇到大版本更新,JavaScript.iOS 和 Android 三端的配置构建文件都有非常大的变动,有 ...

  9. 从 Eclipse 迁移至 Android Studio

    从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...

随机推荐

  1. 【故障处理】imp-00051,imp-00008

    [故障处理]imp-00051,imp-00008 1.1  BLOG文档结构图 1.2  故障分析及解决过程 imp导入报错: IMP-00051: Direct path exported dum ...

  2. echarts曲线 将不连续的点连接起来、由null间断的点连接起来

    series:[ { name: '测试',  type: 'line',  data: [1,null,2,null,null,3,null,null,null,4],  connectNulls: ...

  3. 记一次win 2003 折腾pyspider遇到问题(pycurl)

    把解决过程记录下来,帮助自己,帮助他人. 针对pyspider.win2003我安装的是python2.7.*.听我的吧.这绝对是一个明智的选择. 结果pycurl死活安装不上,试了网上给的方法:去h ...

  4. 记录SQLAlchemy的基本使用

    代码 # -*- coding: utf-8 -*- from sqlalchemy import Column, String, create_engine from sqlalchemy.orm ...

  5. c#: WebBrowser控件注入js代码的三种方案

    聊做备忘. 假设js代码为: string jsCode = @"function showAlert(s) {{ alert('hello, world! ' + s);}}; showA ...

  6. C++学习(6)—— 引用

    1. 引用的基本使用 作用:给变量起别名 语法:数据类型 &别名 = 原名 #include<iostream> using namespace std; int main(){ ...

  7. POJ 2762Going from u to v or from v to u?(强联通 + 缩点 + 拓扑排序)

    [题意]: 有N个房间,M条有向边,问能否毫无顾虑的随机选两个点x, y,使从①x到达y,或者,②从y到达x,一定至少有一条成立.注意是或者,不是且. [思路]: 先考虑,x->y或者y-> ...

  8. python中的特殊注释#todo与#type

    0904自我总结 python中的特殊注释 一.#TODO 这个注释用来快熟找到内容 #todo这里的todo不用区分大小写 写法标记的位置,#todo 备注内容 二.#type a = 1 #typ ...

  9. 前端性能----CDN

    Content Distribute Network(内容分发网络)是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调度等功能模块,使用户就近获取所需内容 ...

  10. linux内核中的文件描述符(二)--socket和文件描述符

    http://blog.csdn.net/ce123_zhouwei/article/details/8459730 Linux内核中的文件描述符(二)--socket和文件描述符 Kernel ve ...