MongoDB在Android上的使用体验

  • 2019 年 10 月 6 日
  • 筆記

【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。但是我发现了一个Web上最近几年比较火的一个数据库 —- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。

【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。


一、准备工作

(一)、环境要求

  • Android系统 >= 5.0
  • API >= 21
  • 支持的设备CPU型号:armeabi-v7a、arm64-v8a或x86_64(不支持x86设备)。

(二)、创建一个新的Android项目,或者打开已存在的项目。

创建一个新项目,截图如下:

(三)、然后做以下配置

在module的build.gradle文件中添加依赖项:

dependencies {      // 添加 MongoDB Mobile SDK      implementation 'org.mongodb:stitch-android-sdk:4.1.0'  }

然后在module的build.gradleandroid节点里面文件中添加java 1.8支持:

android {      compileSdkVersion 28      defaultConfig {          applicationId "com.lzw.mongodbdemo"          minSdkVersion 25          targetSdkVersion 28          versionCode 1          versionName "1.0"          testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"      }        buildTypes {          release {              minifyEnabled false              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'          }      }        // 编译选项      compileOptions {          sourceCompatibility JavaVersion.VERSION_1_8          targetCompatibility JavaVersion.VERSION_1_8      }    }

(四)、最后点击右上角的Sync Now,表示下载MongoDB SDK并自动执行了gradle build命令。

编译成功如下图所示:


三、MongoDB SDK在本地的路径

(一)、MongoDB SDK会有很多附带的依赖包

如下图所示:

(二)、本地路径

下载的mongodb所在本地的路径为:C:UsersAdministrator.gradlecachesmodules-2files-2.1org.mongodb,打开该路径之后截图如下所示:


四、使用 MongoDB Mobile

(一)、初始化

// import com.mongodb.client.MongoCollection;      // 基础 Stitch 包      //  MongoDB Mobile 运行必需的组件

(二)、初始化MongoDB Mobile数据库,然后在应用程序中创建MongoDB Mobile客户端

// Create the default Stitch Client  final StitchAppClient client =     Stitch.initializeDefaultAppClient("<APP ID>");    // Create a Client for MongoDB Mobile (initializing MongoDB Mobile)  final MongoClient mobileClient =     client.getServiceClient(LocalMongoDbService.clientFactory);

(三)、您现在可以直接访问MongoDB Mobile。例如,要指向集合并插入文档,请使用以下代码:


(四)、本地路径


五、遇到的一些错误:

1、com.mongodb.embedded.client.MongoClientEmbeddedException

具体错误如下图所示:

  • 【原因】:MongoDB Mobile不支持x86设备。默认情况下,Android Studio会为AVD部署选择x86映像,刚好运行的模拟器使用了x86镜像,导致了这个错误的发生。
  • 【解决方案】:如果要将Android应用程序部署到AVD模拟器(即:AS自带模拟器),请务必为AVD选择x86_64或者arm的映像。

参考:BSON的介绍及BSON与JSON的区别