MongoDB在Android上的使用体验
【前言】一般来讲,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:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.mongodb\
,打开该路径之后截图如下所示:
四、使用 MongoDB Mobile
(一)、初始化
// import com.mongodb.client.MongoCollection;// 基础 Stitch 包// MongoDB Mobile 运行必需的组件
(二)、初始化MongoDB Mobile数据库,然后在应用程序中创建MongoDB Mobile客户端
// Create the default Stitch Clientfinal StitchAppClient client = Stitch.initializeDefaultAppClient("");// 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的区别
更多相关文章
- Android(安卓)ContentProvider UnderStanding
- 关于Android(安卓)drawable和drawable-v24文件夹有什么区别
- Android(安卓)如何对/dev/log路径设备节点进行读写
- 【Android】 开发即时聊天工具 YQ (仿QQ) 教程:目录
- 第6章 数据存储
- Android(安卓)应用程序分析之Settings
- Android(安卓)适配之FileProvider的使用
- android studio中安装git
- Android(安卓)studio使用NDK编译和调试(生成so文件)