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.gradle
的android
节点里面文件中添加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的映像。