通过Bmob + Android轻松制作一个APP

本篇来自 ithuangqing 的投稿,分享了如何使用Bmob作为服务器来配合开发出一个Android APP程序,希望大家喜欢!

ithuangqing 的博客地址:

http://blog.csdn.net/sinat_33921105​​​​​​​

如何轻松搭建一个服务器端,制作一款属于自己的app呢?今天我们来一起学习一下!首先我们先来看看它------Bmob。

Bmob 是一个可以开发云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。针对移动应用开发的特性,Bmob还提供了主动推送服务,可以让移动开发者将信息从服务器直接推送到应用程序中,从而实现软件的主动更新、信息通知等服务。

对于很多Android/iOS个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,每开发一款移动应用程序,就必须开发维护对应的服务器程序。这一切对于移动开发者来说,都是一个冗长的噩梦。

如何让移动开发者从繁琐的机械劳动中解脱出来,将更多精力投入到移动应用程序的创意研发,从而不断提升产品质量呢?Bmob移动应用云存储平台的诞生就很好地解决了以上难题。

在Bmob平台上,只需注册一个帐号,成功后申请创建任意多个数据库,获得对应的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用存取API,进行数据的任意操作。有了Bmob,您在5分钟内就可以学会如何开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便您浏览终端保存的各种信息。

是不是很心动啊,废话不多说,我们直接开始吧!

创建应用

首先你需要注册一个Bmob账号,注册成功之后页面是这样的:

0?wx_fmt=png

你的应该是空白的,点击创建应用:

0?wx_fmt=png

按操作进行即可,这里我们选择开发版免费的。当你创建完应用,点击所创建的应用:

0?wx_fmt=png

你的应该只有一个数据表_User,我这里已经创建了两个数据表,我们先打开设置看一个非常重要的东西:

0?wx_fmt=png

这个ID一定要注意,很重要,我们继续。页面右下角有一个文档,我们点开找到Android开发文档:

0?wx_fmt=png

0?wx_fmt=png

你可以快速浏览一下这里的快速入门,接下来我们开始导入sdk,首先说明一点我们使用Android Studio来完成开发工作,在快速入门中你会看到导入sdk的方法,我们优先选择自动导入。

自动导入

在 Project 的 build.gradle 文件中添加 Bomb 的 maven 仓库地址:

 
  1.  
  2. buildscript {

  3.     repositories {

  4.         jcenter()

  5.     }

  6.     dependencies {

  7.         classpath     'com.android.tools.build:gradle:1.2.3'

  8.     }

  9. }

  10.  
  11. allprojects {

  12.     repositories {

  13.         jcenter()

  14.         //Bmob的maven仓库地址--必填

  15.         maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }

  16.     }

  17. }

按照文档说明来即可。接着配置AndroidManifest.xml,最后一步比较重要的是就是初始化BmobSDK了。

初始化BombSDK

在你的应用程序启动的 Activity 的 onCreate方法中初始化BombSDK:

 
  1. package com.bmob.example;

  2. import cn.bmob.v3.Bmob;

  3. import android.app.Activity;

  4. import android.os.Bundle;

  5. public class MainActivity extends Activity {

  6.    @Override

  7.    protected void onCreate(Bundle savedInstanceState) {

  8.         // TODO Auto-generated method stub

  9.        super.onCreate(savedInstanceState);

  10.         //提供以下两种方式进行初始化操作:

  11.  
  12.        //第一:默认初始化

  13.        Bmob.initialize(this, "Your Application ID");

  14.        // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能

  15.        //Bmob.initialize(this, "Your Application ID","bmob");

  16.  
  17.        //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),

  18.        //BmobConfig config =new BmobConfig.Builder(this)

  19.        ////设置appkey

  20.        //.setApplicationId("Your Application ID")

  21.        ////请求超时时间(单位为秒):默认15s

  22.        //.setConnectTimeout(30)

  23.        ////文件分片上传时每片的大小(单位字节),默认512*1024

  24.        //.setUploadBlockSize(1024*1024)

  25.        ////文件的过期时间(单位为秒):默认1800s

  26.        //.setFileExpiration(2500)

  27.        //.build();

  28.        //Bmob.initialize(config);

  29.    }

  30. }

当你初始化完成并且上述步骤都无误的情况下你就能使用bmob啦,我们来验证一下:

0?wx_fmt=png

当你随便在一个java类文件中写上bmob的时候就会出现很多bmob的相关方法了,至此配置bmob已经全部完成,接下来开始使用bmob吧!

创建数据表

我觉得bmob的一个核心就是数据的使用,就是上传数据,读取数据,也注重说一下这点,首先我们创建一个自己需要的数据表:

 
  1. public class FoundData extends BmobObject {
       private String title;    
       private String describe;    
       private String phone;    
       
       public void setPhone(String phone) {
           this.phone = phone;

  2.    }    
           
       public void setDescribe(String describe) {
           this.describe = describe;

  3.    }    
           
       public void setTitle(String title) {
           this.title = title;

  4.    }    
       
       public String getPhone() {        
           return phone;

  5.    }    
       
       public String getDescribe() {        
           return describe;

  6.    }    
       
       public String getTitle() {        
           return title;

  7.    }

  8. }

这里我根据项目需要创建了一个FoundData数据表,我们创建数据表的时候记住要继承自Bmobject这个类,然后定义相关属性,添加set与get方法,在我们的项目中成功创建数据表之后我们需要在bmob后端控制太添加数据表与之形成对应:

0?wx_fmt=png

选择添加表:

0?wx_fmt=png

这里选择自定义,要注意这里的名称必须与你在项目里创建的数据表名称一模一样,添加表完成之后打开这个表:

0?wx_fmt=png

因为你是刚创建的所以你的里面只有objectid String这一样,你需要手动添加,我们选择添加列:

0?wx_fmt=png

注意列的名称也必须与你项目中创建的变量名称一致,包括数据类型:

0?wx_fmt=png

完成上述操作我们就成功创建一个数据表了,接下来我们重点说一下对数据的读取,首先我们需要在数据表中添加相关数据,像这样:

0?wx_fmt=png

记住添加数据的时候是添加行。然后我们打开开发文档:

0?wx_fmt=png

点开开发文档:

0?wx_fmt=png

这是关于bmob对于android开发的一系列操作,我们需要找到查询数据的方法:

0?wx_fmt=png

找到查询指定列

0?wx_fmt=png

这里给我们提供一个查询指定列的方法,我们看在项目中的具体使用:

 
  1.    //获取数据  

  2.    public void getData(){  

  3.  
  4.        //获取数据  

  5.        BmobQuery<FoundData> bmobQuery = new BmobQuery<FoundData>();  

  6.        //不指定查找具体的哪一项则为查找全部数据  

  7.        // bmobQuery.addQueryKeys("title");  

  8.        bmobQuery.findObjects(new FindListener<FoundData>() {  

  9.            @Override  

  10.            public void done(List<FoundData> list, BmobException e) {  

  11.  
  12.            }  

  13.        });  

  14.  
  15.  
  16.    }

我们需要注意,bmob提供的是查询指定列的方法,就是它可以得到一列的数据,但是我们知道我们的数据并不是只有一列数据,如果我们想查询所有数据该怎么办呢?很简单我们将查询指定列的那段代码去掉就可以查询全部数据了,注意看我代码的注释。

我一直觉得对于查询得到的数据的处理是一个难点,当你做好了app的界面,再加入网络功能可以读取后台数据,基本上一个简单的app就成了,接下来我们就说说如何处理得到的数据:

 
  1. //获取数据
    public void getData(){

  2.  
  3.    //获取数据

  4.    BmobQuery<FoundData> bmobQuery = new BmobQuery<FoundData>();

  5.    //不指定查找具体的哪一项则为查找全部数据

  6.    // bmobQuery.addQueryKeys("title");

  7.    bmobQuery.findObjects(new FindListener<FoundData>() {

  8.        @Override

  9.        public void done(List<FoundData> list, BmobException e) {

  10.        Toast.makeText(getContext(),"刷新成功"+list.size(),Toast.LENGTH_SHORT).show();

  11.  
  12.        /**

  13.        * 1.list为得到的数据源

  14.        * 2.得到的数据有三项

  15.        *  2.1 title

  16.        *  2.2 phone

  17.        *  2.3 describe

  18.        */

  19.        //处理list中的数据,for循环遍历

  20.        for(FoundData data : list){

  21.            mHashMap = new HashMap<>();

  22.            mHashMap.put("title",data.getTitle());

  23.            mHashMap.put("phone",data.getPhone());

  24.            mHashMap.put("describe",data.getDescribe());

  25.           }

  26.         List<Map<String,String>> mapList = new ArrayList<>();

  27.         mapList.add(mHashMap);

  28.         simpleAdapter = new SimpleAdapter(getContext(),mapList,R.layout.list_item,new String[]{"title","phone","describe"},new int[]{R.id.lf_title,R.id.lf_phone,R.id.lf_describe});

  29.         //数据布局填充adapter,即是绑定数据

  30.         listView.setAdapter(simpleAdapter);

  31.         simpleAdapter.notifyDataSetChanged();

  32.      }

  33.  });

  34. }

我们要清楚的知道得到的数据是什么,这里是一个list集合,集合中的数据是FoundData对象,并且含有三项数据,看注释,得到的数据是要给用户看的,我们一般选在listview,处理数据的一个标准还是要看我们选择的适配器,这里我选择使用simpleAdapter,如果选择使用了simpleAdapter我们就需要一个数据源,这个数据源是一个list集合,但是集合中的每一个数据又都是一个map集合,因此我们就需要将得到的list转化成simpleAdapter需要的数据源,这里我们处理的逻辑是先使用hashmap接收得到的list,再将其转化成数据元素是map集合的list,注意看代码实现。运行过上述代码的可能会发现,上述代码的实现似乎有点问题,当我们在多添加一行数据的时候发现读取到的数据却只有一行,这是因为使用for循环遍历的时候处理不当,修改如下:

 
  1. @Override
    public void done(List<FoundData> list, BmobException e) {

  2.    Toast.makeText(getContext(),"刷新成功"+list.size(),Toast.LENGTH_SHORT).show();

  3.    List<Map<String,String>> mapList = new ArrayList<>();

  4.    /**

  5.     * 1.list为得到的数据源

  6.     * 2.得到的数据有三项

  7.     *  2.1 title

  8.     *  2.2 phone

  9.     *  2.3 describe

  10.     */    //处理list中的数据,for循环遍历    
       for(FoundData data : list){

  11.        mHashMap = new HashMap<>();

  12.        mHashMap.put("title",data.getTitle());

  13.        mHashMap.put("phone",data.getPhone());

  14.        mHashMap.put("describe",data.getDescribe());

  15.        mapList.add(mHashMap);
       }

  16. }

当我们处理好以上逻辑,完成相应的界面设置我们在app上就可以看到相应的数据了:

0?wx_fmt=png

至此大公告成,更多更详细的可以仔细阅读开发文档,bmob让你的开发更加简单快捷!

猜你喜欢

转载自blog.csdn.net/fu_jian_ping/article/details/84887694