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"
}

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

查看所有标签

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

黑客攻防技术宝典(第2版)

黑客攻防技术宝典(第2版)

[英] Dafydd Stuttard、[英] Marcus Pinto / 石华耀、傅志红 / 人民邮电出版社 / 2012-6-26 / 99.00元

内容简介: Web应用无处不在,安全隐患如影随形。承载着丰富功能与用途的Web应用程序中布满了各种漏洞,攻击者能够利用这些漏洞盗取用户资料,实施诈骗,破坏其他系统等。近年来,一些公司的网络系统频频遭受攻击,导致用户信息泄露,造成不良影响。因此,如何确保Web应用程序的安全,已成为摆在人们眼前亟待解决的问题。 本书是Web安全领域专家的经验结晶,系统阐述了如何针对Web应用程序展开攻击与......一起来看看 《黑客攻防技术宝典(第2版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器