当您在Android Studio中启动全新的应用程序时,您将陷入一个准项目,该项目可能只有一个空的Activity。

如果您要建立超出“你好,世界!”,特别是如果您打算遵循使用MVVM之类的一些体系结构最佳实践时,每个项目中包含的基本Android库都会很快遇到一些限制。

在创建了一些基本的入门应用程序之后,我想我将分享我认为是添加到您的Android项目中的最佳“第一步”依赖项。

TL;DR - app/build.gradle

在我详细介绍之前,这里是基本的依存关系我为上一个入门应用程序整理的清单。

dependencies {

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31"
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.core:core-ktx:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    // enable ViewModelProviders
    implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
    // enable TextInputLayout
    implementation 'com.google.android.material:material:1.0.0'

    testImplementation 'junit:junit:4.12'
    // enable Mocking with Mockito
    testImplementation 'org.mockito:mockito-core:2.19.0'
    // enable InstantTaskExecutorRule
    testImplementation 'androidx.arch.core:core-testing:2.0.1'

    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    // non-deprecated AndroidJUnit4
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'

}

我评论的行是我添加到Android Studio 3.4中基本的Android空白活动入门应用程序中的行。

让我们仔细看看这些库是什么以及我们为什么需要它们。

Prod Code

的实作关键字指定您实际的,正在运行的生产代码中的依赖项。

Lifecycle Extensions

Enable some handy extensions for Android Lifecycle components. Namely, the ability to use ViewModelProviders.

implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"

Any Android project needs an architectural pattern to follow. Google recommends using MVVM with the Android ViewModel. ViewModelProviders enables you to quickly setup ViewModels in your Activities and Fragments in a Google-approved way.

Material

You can get by without many of the Material Design components, but it's easier to use them. They support some very useful UI elements that Android users are used to seeing.

implementation 'com.google.android.material:material:1.0.0'

For me, this library allowed me to use TextInputLayout for my text fields. This enables built in error fields, animated hints, and a Material-first design that I wanted in my app.

Unit Tests

使用测试实施指定单元测试的依赖关系。 默认情况下包含JUnit。

Mockito

The included ExampleUnitŤest in any Android beginner project doesn't use Mockito to test. However, as projects grow, you'll quickly realize the benefits of a full-fledged mocking library.

testImplementation 'org.mockito:mockito-core:2.19.0'

Mockito使您可以使用MockitoJUnitRunner并在测试中模拟数据和函数调用。 它确实有助于减少样板,并在单元测试中专注于正确的功能。

Lifecycle Testing

如果您做对了,并且将MVVM与Android Architecture Components配合使用,那么您可能需要测试您的视图模型和实时数据。

testImplementation 'androidx.arch.core:core-testing:2.0.1'

核心测试库使您可以测试实时数据在您的JUnit测试中,使用InstrumentationTestRegistry规则。

/**
 * Enables Architecture Components testing in JUnit tests.
 * (Include this at the top of your Unit Test class body.)
 */
@get:Rule
var task = InstantTaskExecutorRule()

UI Testing

的androidTestImplementation关键字指的是UI / Instrumentation测试依赖项。

Android JUnit

虽然您不需要使用AndroidJUnit4,此依赖项包括最新的,不建议使用的版本。

androidTestImplementation 'androidx.test.ext:junit:1.1.1'

What's next?

希望本指南能帮助您确定几乎所有Android项目都需要的一些基本依赖项。

对于下一个Android项目中探索无限可能所需要的依赖关系,我们不可能一一列举。 接下来要取决于您。

This article is republished from my blog, AJ.dev - read it there.

from: https://dev.to//robotsquidward/your-first-android-libraries-47k9

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐