概览¶
DHIS2 Android SDK是一个库,它抽象了与DHIS2 Web API交互的复杂性。它旨在作为为DHIS2构建Android应用程序的起点,涵盖了任何Android应用程序应执行的一些任务,例如元数据和数据同步。
主要目标:
- **摘要DHIS2网络API **。无需对服务器执行api查询。 SDK包含与网络api交互的方法。
- 离线工作。它实现了 DHIS2 模型的简化版,并持久保存在本地数据库(房间数据库)中。它可确保随时提供执行数据录入任务所需的所有元数据,以建立数据录入表格。数据保存在本地,并在连接可用时上载到服务器。
- 确保DHIS2兼容性。它封装了DHIS2版本之间的更改,因此该应用程序不必关心它们。如果SDK进行了一些更改以适应新的DHIS2版本,则该应用程序可以在编译时安全地检测到这些更改。
技术概述¶
该 SDK 主要使用 Java 8 编写,使用最低 Android API 版本中允许的功能减少子集,尽管较新的组件是在 Kotlin 中实现的,这是 Google 推荐的语言构建 Android 应用程序。 SDK 使用一些特定于 Android 的组件,例如用于创建分页列表(LiveData、PagedList)或访问文件系统的库。因此,目前**该 SDK 只能在 Android 环境中运行**。
它使用[RxJava](https://github.com/ReactiveX/RxJava)促进某些方法的异步处理。尽管它是可选的,但我们建议您采用这种方法来确保非阻塞调用。
SDK 内部使用的其他库包括用于依赖注入的 Koin、用于 JSON 解析的 Kotlinx Serialization、用于 API 通信的 Ktor 和 OkHttpClient 、用于数据库持久化的 Room 或用于数据库加密的 SQLCipher。