Android JetPack

栏目: IOS · Android · 发布时间: 7年前

内容简介:Google 在 2018 Google I/O 大会上推出了 Android Jetpack,它包含了开发库、工具以及最佳实践指南。Jetpack 是背包式飞行器的意思,是一种小巧的个人飞行器。顾名思义,通过使用Android Jetpack 这套组件,可以帮助开发者更高效、更容易地构建优秀的应用。为此,Android 官方团队也把 Jetpack 的Logo 设计成了一个背着火箭的小机器人。除了在 2018 Google I/O 大会上新添加的功能外,它还把以前退出的一些功能囊括其中,比如 Archi

Google 在 2018 Google I/O 大会上推出了 Android Jetpack,它包含了开发库、 工具 以及最佳实践指南。

Jetpack 是背包式飞行器的意思,是一种小巧的个人飞行器。顾名思义,通过使用Android Jetpack 这套组件,可以帮助开发者更高效、更容易地构建优秀的应用。为此,Android 官方团队也把 Jetpack 的Logo 设计成了一个背着火箭的小机器人。

除了在 2018 Google I/O 大会上新添加的功能外,它还把以前退出的一些功能囊括其中,比如 Architecture Components 等。并且,Android 团队将继续在Android平台上为 Jetpack 添加新的功能。

下面来看一下 Jetpack 包含了哪些功能,下图会随着 Jetpack 功能的更新保持同步更新:

Android JetPack

接下来也会通过一系列的博客来介绍 Jetpack 的使用。

先来看一下 Jetpack 中的架构组件,这些组件关联使用将更能发挥它的作用,我们将采取循序渐进,由浅入深的方式来逐步介绍这些组件的使用。

Google 官方Demo源码:

https://github.com/googlecodelabs/android-lifecycles

https://github.com/googlesamples/android-architecture-components

https://github.com/googlesamples/android-sunflower

关于AndroidX

先来个插曲介绍一下 AndroidX,后面 Android 会把 support 库放到 AndroidX 中,仅仅会改变包名和 Maven 库的名字,类的名字不会改变。

添加依赖汇总

官方文档

添加 Google Maven 仓库

在project下的build.gradle中添加Maven仓库

allprojects {
    repositories {
        jcenter()
        google()//添加Google Maven仓库
    }
}

添加依赖

LifeCycle

包含 LiveData 和 ViewModel 的依赖。

Android X

dependencies {
    def lifecycle_version = "2.0.0"

    // ViewModel and LiveData
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
    // alternatively - just ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" // use -ktx for Kotlin
    // alternatively - just LiveData
    implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
    // alternatively - Lifecycles only (no ViewModel or LiveData). Some UI
    //     AndroidX libraries use this lightweight import for Lifecycle
    implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"

    annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" // use kapt for Kotlin
    // alternately - if using Java8, use the following instead of lifecycle-compiler
    implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

    // optional - ReactiveStreams support for LiveData
    implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version" // use -ktx for Kotlin

    // optional - Test helpers for LiveData
    testImplementation "androidx.arch.core:core-testing:$lifecycle_version"
}

AndroidX 之前版本

dependencies {
    def lifecycle_version = "1.1.1"

    // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:$lifecycle_version"
    // alternatively - just ViewModel
    implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // use -ktx for Kotlin
    // alternatively - just LiveData
    implementation "android.arch.lifecycle:livedata:$lifecycle_version"
    // alternatively - Lifecycles only (no ViewModel or LiveData).
    //     Support library depends on this lightweight import
    implementation "android.arch.lifecycle:runtime:$lifecycle_version"

    annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // use kapt for Kotlin
    // alternately - if using Java8, use the following instead of compiler
    // 比如你想使用 DefaultLifecycleObserver 就要依赖  java 8
    implementation "android.arch.lifecycle:common-java8:$lifecycle_version"

    // optional - ReactiveStreams support for LiveData
    implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"

    // optional - Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:$lifecycle_version"
}

Room

AndroidX

dependencies {
    def room_version = "2.1.0-alpha03"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version" // use kapt for Kotlin

    // optional - RxJava support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "androidx.room:room-guava:$room_version"

    // optional - Coroutines support for Room
    implementation "androidx.room:room-coroutines:$room_version"

    // Test helpers
    testImplementation "androidx.room:room-testing:$room_version"
}

AndroidX 之前版本

dependencies {
    def room_version = "1.1.1"

    implementation "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor "android.arch.persistence.room:compiler:$room_version" // use kapt for Kotlin

    // optional - RxJava support for Room
    implementation "android.arch.persistence.room:rxjava2:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "android.arch.persistence.room:guava:$room_version"

    // Test helpers
    testImplementation "android.arch.persistence.room:testing:$room_version"
}
dependencies {
    // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:1.1.1"
    // alternatively, just ViewModel
    implementation "android.arch.lifecycle:viewmodel:1.1.1"
    // alternatively, just LiveData
    implementation "android.arch.lifecycle:livedata:1.1.1"
 
    annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
 
    // Room (use 1.1.0-beta3 for latest beta)
    implementation "android.arch.persistence.room:runtime:1.0.0"
    annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
 
    // Paging
    implementation "android.arch.paging:runtime:1.0.0-rc1"
 
    // Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:1.1.1"
 
    // Test helpers for Room
    testImplementation "android.arch.persistence.room:testing:1.0.0"
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序设计语言

程序设计语言

斯科特 / 裘宗燕 / 电子工业出版社 / 2007-6 / 99.00元

★列为全球上百所大学标准教材和首席参考书! ★图书馆必备典藏,作者Michael L.Scott 是计算机领域的著名学者,译者是北京大学的裘宗燕教授,他熟悉专业,译笔流畅,因此,这是一本难得的著、译双馨的佳作。 这是一本很有特色的教材,其核心是讨论程序设计语言的工作原理和技术。本书融合了传统的程序设计语言教科书和编译教科书的有关知识,并增加了一些有关汇编层体系结构......一起来看看 《程序设计语言》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具