Skip to content

Latest commit

 

History

History
executable file
·
163 lines (126 loc) · 7.9 KB

README-cn.md

File metadata and controls

executable file
·
163 lines (126 loc) · 7.9 KB

Android Sunflower Java(alpha)

CircleCI

本项目 fork 自 googlesamples/android-sunflower . 我将所有 Kotlin 实现都变成了 Java, 添加了 [app-java] module 作为 Java 版本的 Sunflower, 所以 Android Sunflower Java 项目中有两个 app modules:

[app] Sunflower app 的 Kotlin 实现。 README

[app-java] Sunflower app 的 Java 实现。 README

创建 Android Sunflower Java 项目的初衷:

  • 很多开发者因为对 Kotlin 语言的不熟悉,学习 Android Jetpack 的过程中遇到不少困难,或者干脆一直拖延了 Jetpack 的学习计划.
  • 许多团队非常热切的想要在现有的项目里实践 Android Jetpack, 但倾向于继续使用 Java 语言,或者逐步使用 Kotlin 语言。

一个使用 Android Jetpack 来演示 Android 开发最佳实践的园艺 app.

Android 向日葵目前作为 alpha 版本发布,并且正在加紧开发中… 要查看最新的变化,请访问 Releases page.

注意某些更改(例如数据库结构修改)不支持向后兼容,在 alpha 期间,这些不兼容可能会导致应用崩溃。如果发生这种情况,请卸载并重装应用。

介绍

Android Jetpack 一系列组件、工具和指南的集合,用以帮助开发者更轻松地开发出色的应用。 它将 Support 类库和架构组件结合,并分为四个类别。

Android Jetpack

Android Sunflower 演示了如何使用这些组件来开发一个简单的园艺应用。 阅读 Introducing Android Sunflower 文章快速了解 app.

开始上手

项目使用 Gradle 构建系统,使用 gradlew build 命令构建项目或者使用 "Import Project" 在 Android Studio 导入项目。

有两个任务用于测试项目:

  • connectedAndroidTest - 在连接设备上执行 Espresso 任务
  • test - 执行单元测试

更多学习 Android 开发的资料,请访问 Developer Guides 位于 developer.android.com.

Screenshots

List of plants Plant details My Garden

使用的库

  • Foundation - 基础核心系统能力的组件,同时也支持 multiex 和自动化测试。
    • AppCompat - 在较低版本的 Android 系统上恰当地降级
    • Test - 用于单元测试和运行时界面测试的 Android 测试框架
  • Architecture - 一组集合库帮助您设计稳健、可测试且易维护的应用。通过一些类着手管理你的界面组件的生命周期并处理持久化数据。
    • Data Binding - 以声明方式将可观察数据绑定到界面元素
    • Lifecycles - 管理您的 Activity 和 Fragment 生命周期
    • LiveData - 在底层数据库更改时通知视图
    • Navigation - 处理应用内导航所需的一切
    • Room - 流畅地访问 SQLite 数据库
    • ViewModel - 以注重生命周期的方式管理界面相关的数据
    • WorkManager - 管理您的 Android 后台作业
  • UI - 帮助完成如何使用 UI 组件的各个细节, - 配合使用或单独使用
  • 三方库
    • Glide 用于图片加载

开发中的功能

新版本的更新将包括新纳入的 Jetpack 组件,随着组件库的演进继续更新已有的组件。 希望见到 Android 框架或 Jetpack 的某个特征在这个应用上实现?请新开一个 issue.

Android Studio IDE 准备

对于开发, Android Studio 3.3 以上版本是必须的。 可以从这里下载到最新的 IDE Bundle.

附加的资料

查看 Wiki 页了解更多关于 Android Sunflower 的信息:

非目标

这个项目的专注于 Android Jetpack 和 Framework. 所以近期没有计划实现此范围外的特征。

关于依赖注入的注意 - 许多项目 (例如 Plaid) 使用 Dagger 2 做 DI, Sunflower 没有纳入 DI 的计划。 这使得对于依赖注入框架不熟悉的开发者更容易理解 Sunflower 的代码。

支持

如果你发现了示例中的错误,请提交一个 issue: https://github.com/googlesamples/android-sunflower/issues

鼓励补丁, 你可以 Fork 这个项目并且提交通过 Github 提交 pull request/

三方的内容

用于描述植物的文本 (in plants.json) 是通过 CC BY-SA 3.0 US (协议文件在 ASSETS_LICENSE) 协议从 Wikipedia 引用来的。

License

Copyright 2018 Google, Inc.

Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.