zoukankan      html  css  js  c++  java
  • Bmob后端云

    我们结对项目想做一款关于失物招领的APP,我们在讨论过程中关于数据存储是应放在本地还是云端发生了争执,经过多次探讨与利弊分析,最终决定使用Bmob后端云来存储数据。因为Bmob云端存储更加方遍用户存取信息,更好的保护数据安全,同时提供了一个方便的数据管理后台。

    注册Bmob账号(搜索Bmob官网,点击注册即可)

    创建应用

    在bmob中,一个用户可以创建多个应用,每个应用拥有其所属的专用数据库,多个应用之间相互独立。用户需要创建一个应用,先点击管理后台中的“创建应用”按钮,如图所示:

    点击创建应用会弹出创建应用框,有需创建的用户名称与用户类型

    获取应用密匙和下载SDK

    选择你要开发的应用进入该应用(此处省略),在跳转页面,进入设置/应用密钥,点击复制,即可得到Application ID

    获取Application ID后,下载SDK(下载地址:http://www.bmob.cn/site/sdk#android_sdk)。

     

    SDK导入

    AndroidStudio配置

    鉴于目前Google官方推荐使用 Android Studio 进行Android项目开发,自 V3.4.2 开始,Bmob Android SDK 可以使用Gradle来进行包依赖管理,如果你使用Android Studio来进行基于BmobSDK的项目开发,有两种方式:

    自动导入(推荐)

    请按照如下两个步骤进行:

    1. 在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,示例如下:(注意文字说明部分):

       buildscript {
           repositories {
               jcenter()
           }
           dependencies {
               classpath     'com.android.tools.build:gradle:1.2.3'
           }
       }
      
       allprojects {
           repositories {
               jcenter()
               //Bmob的maven仓库地址--必填
               maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
           }
       }

      2.在appbuild.gradle文件中添加compile依赖文件,示例如下:(注意文字说明部分):

      apply plugin: 'com.android.application'
      
      android {
          compileSdkVersion 22
          buildToolsVersion '22.0.1'
      
          **兼容Android6.0系统所需,如果这句话报错,可在dependencies标签下使用compile 'cn.bmob.android:http-legacy:1.0'**
          useLibrary 'org.apache.http.legacy'
      
          ...
      }
      dependencies {
              compile fileTree(dir: 'libs', include: ['*.jar'])
      
              //以下SDK开发者请根据需要自行选择
              //bmob-sdk:Bmob的android sdk包,包含了Bmob的数据存储、文件等服务,以下是最新的bmob-sdk:
              //3.5.5:请务必查看下面注释[1]
              compile 'cn.bmob.android:bmob-sdk:3.5.5'
      
              //bmob-push:Bmob的推送包
              compile 'cn.bmob.android:bmob-push:0.8'
      
              //bmob-im:Bmob的即时通讯包,注意每个版本的im依赖特定版本的bmob-sdk,具体的依赖关系可查看下面注释[2]
              compile 'cn.bmob.android:bmob-im:2.0.5@aar'
              compile 'cn.bmob.android:bmob-sdk:3.4.7-aar'
      
              //bmob-sms :Bmob单独为短信服务提供的包
              compile 'cn.bmob.android:bmob-sms:1.0.1'
      
              //如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar)
              compile 'cn.bmob.android:http-legacy:1.0'
          }

      注:

      [1]、为了降低开发者的使用成本,自v3.4.7开始,同步提供aar格式的文件,此aar包含libbmob.so、依赖jar包(okhttp、okio、rx、gson等)及自动更新组件所需要的资源文件。开发者再也不需要配置libbmob.so,不需要添加依赖jar,也不需要复制自动更新组件的资源文件啦,只需要添加以下依赖即可。

      compile 'cn.bmob.android:bmob-sdk:3.5.0'

      注:由于PermissionManager权限管理类需要依赖support-v4:23.2.1的jar包,导致开发者认为SDK依赖文件较多,故分离出SDK。开发者如果需要兼容Android6.0系统,可以在下载的SDK的官方Demo的com.example.bmobexample.permission包下面查看该类源码。                                                                                         [2]、每个版本的im依赖特定版本的bmob-sdk:

      bmob-im:1.1.8--->bmob-sdk:3.3.5
      bmob-im:1.1.9--->bmob-sdk:3.4.3
      bmob-im:2.0.1--->bmob-sdk:3.4.6-0304
      bmob-im:2.0.2--->bmob-sdk:3.4.6-0304
      bmob-im:2.0.3--->bmob-sdk:3.4.6
      bmob-im:2.0.4--->bmob-sdk:3.4.6
      bmob-im:2.0.5--->bmob-sdk:3.4.7-aar
      bmob-im:2.0.6--->bmob-sdk:3.5.0

      其中

    2. bmob-sdk:3.4.6-0304是Bmob Android SDK的过渡版本,主要用于NewIM_v2.0.1及v2.0.2
      bmob-sdk:3.4.6的相关依赖包可见注释[3]

      [3]、bmob-sdk:3.4.6依赖以下包:

      compile 'cn.bmob.android:bmob-sdk:3.4.6'
      compile 'com.squareup.okhttp:okhttp:2.4.0'//CDN文件服务使用okhttp相关包进行文件的上传和下载(必填)
      compile 'com.squareup.okio:okio:1.4.0'

      如果需要兼容Android6.0系统,请添加以下两项:

      compile 'com.android.support:support-v4:23.2.1'
      compile 'cn.bmob.android:http-legacy:1.0'

      [4]、bmob-sms适用于只需要使用Bmob短信功能的开发者,而bmob-sdk内部包含了bmob-sms的短信功能,请不要重复添加。

      [5]、BmobSDK的官方仓库:bmob-android-sdk,开发者可到此仓库查看最新发布的各版本SDK,我们会尽量与官网发布的SDK保持同步更新。                         

      手动导入:
      1. 开发者到SDK下载中心下载 数据服务 的Android 版本的SDK,并将下载下来的libs文件夹里面的文件根据需要复制到工程的libs目录下(注意,自v3.4.7开始提供libbmob.so文件);

      2. appbuid.gradle文件中添加SO库目录配置:

     android {
         sourceSets {
             main.jniLibs.srcDirs = ['libs']
        }
     }

      3.点击Sync,同步配置。

    配置AndroidManifest.xml

    在你的应用程序的AndroidManifest.xml文件中添加相应的权限:

    <!--允许联网 --> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息  --> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <!--获取wifi网络状态的信息 --> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <!--获取sd卡写的权限,用于文件上传和下载-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许读取手机状态 用于创建BmobInstallation--> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <?xml version="1.0" encoding="utf-8"?>
        <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="cn.bmob.example"
            android:versionCode="1"
            android:versionName="1.0">
    
        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
    
        <uses-permission android:name="android.permission.INTERNET" /> 
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
        <uses-permission android:name="android.permission.WAKE_LOCK" /> 
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme">
            <activity
                android:name="cn.bmob.example.MainActivity"
                android:screenOrientation="portrait"
                android:label="@string/app_name">
    
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
    
    
            <activity
                android:name=".CreateActivity"
                android:screenOrientation="portrait">
            <activity
                android:name=".DeleteActivity"
                android:screenOrientation="portrait">
            <activity
                android:name=".UpdateActivity"
                android:screenOrientation="portrait">
            <activity
                android:name=".FindActivity"
                android:screenOrientation="portrait">
        </application>
    </manifest>

    初始化BmobSDK

    在你应用程序启动的Activity的onCreate()方法中初始化Bmob功能。代码如下所示:

    package com.bmob.example;
    import cn.bmob.v3.Bmob;
    import android.app.Activity;
    import android.os.Bundle;
    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
             // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
             //提供以下两种方式进行初始化操作:
    
            //第一:默认初始化
            Bmob.initialize(this, "Your Application ID");
            // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能
            //Bmob.initialize(this, "Your Application ID","bmob");
    
            //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
            //BmobConfig config =new BmobConfig.Builder(this)
            ////设置appkey
            //.setApplicationId("Your Application ID")
            ////请求超时时间(单位为秒):默认15s
            //.setConnectTimeout(30)
            ////文件分片上传时每片的大小(单位字节),默认512*1024
            //.setUploadBlockSize(1024*1024)
            ////文件的过期时间(单位为秒):默认1800s
            //.setFileExpiration(2500)
            //.build();
            //Bmob.initialize(config);
        }
    }
  • 相关阅读:
    python学习笔记二
    计网第三章
    python学习笔记一
    Java基础第二十七天总结——网络编程
    Java基础第二十六天总结——IO流
    Java基础第二十五天总结——泛型
    Java基础第二十四天总结——集合
    Java基础第二十三天总结——集合
    Java基础第二十二天总结——枚举类与注解
    Java基础第二十一天总结——日期时间API
  • 原文地址:https://www.cnblogs.com/buyaping/p/6918192.html
Copyright © 2011-2022 走看看