Android高效率编码-第三方SDK详解系列(二)_第1页
Android高效率编码-第三方SDK详解系列(二)_第2页
Android高效率编码-第三方SDK详解系列(二)_第3页
Android高效率编码-第三方SDK详解系列(二)_第4页
Android高效率编码-第三方SDK详解系列(二)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android高效率编码-第三方SDK详解系列(二)Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能我的的本意是第二篇写Mob的shareSDK分享组件的,奈何需要去注册各平台的账号,还要审核,有些审核还挺久,就没办法,改为写这个Bmob了,相信大家对Bmob都是挺期待的吧,因为他作为Android后端的实现很好的支持,国内很多软件都在使用它,他的功能也是特别神奇,这里就不一一细说了,我们用实际的例子来见证他的神奇这里我简单的介绍一下Bmob吧,Bmob平台为您的移动应用提供了一个完整的后端解决方案,他们提供轻量级的SDK开发包,让开发者以

2、最小的配置和最简单的方式使用Bmob平台提供的服务,进而完全消除开发者编写服务器代码以及维护服务器的操作。目录:好了,我们得到了我们想要的key了,我们就可以开始编写了一.Hello Bmob1.下载SDK,添加进工程这个相信都不用多说了Android Studio鉴于目前Google官方推荐使用 Android Studio 进行Android项目开发,自 V3.4.2 开始,Bmob Android SDK 可以使用Gradle来进行包依赖管理,如果你使用Android Studio来进行基于BmobSDK的项目开发1.在Project的build.gradle文件中添加如下配置(注意文字

3、说明部分)buildscript repositories jcenter() dependencies classpath 'com.android.tools.build:gradle:1.2.3' allprojects repositories jcenter() /Bmob的maven仓库地址,必须填写 maven url " 2、在app的build.gradle文件中添加如下配置(注意文字说明部分):apply plugin: 'com.android.application'android compileSdkVersion 22 bu

4、ildToolsVersion '22.0.1' defaultConfig applicationId "cn.bmob.android" minSdkVersion 14 targetSdkVersion 22 versionCode 1 versionName "1.0" buildTypes release minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), '

5、' lintOptions abortOnError false dependencies compile fileTree(dir: 'libs', include: '*.jar') compile 'com.android.support:appcompat-v7:22.2.0' /以下SDK开发者请根据需要自行选择 /bmob-sdk :Bmob的android sdk包 compile 'cn.bmob.android:bmob-sdk:3.4.5' /bmob-push:Bmob的推送包 compile 

6、9;cn.bmob.android:bmob-push:0.6' /bmob-im:bmob的im包,以下两个配置是im功能所需 compile 'cn.bmob.android:bmob-im:1.1.9' compile 'cn.bmob.android:bmob-sdk:3.4.3' /okhttp(选填):为解决弱网情况下SDK请求失败及响应慢的问题,自V3.4.3版本开始使用okhttp优化SDK的网络框架。 compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.

7、squareup.okio:okio:1.4.0' /bmob-sms :Bmob单独为短信服务提供的包 compile 'cn.bmob.android:bmob-sms:1.0.1'注:1、如果你只需要Bmob提供的短信功能,那么你只需单独配置bmob-sms,如果你既需要bmob的数据服务,也需要短信服务,那么你只需要配置bmob-sdk即可。2、每个版本的im都对应特定版本的bmob-sdk,如果你使用的是1.1.8版本的im,那么配套的bmob-sdk的版本为3.3.5。使用的是1.1.9配套的bmob-sdk的版本为、与okhttp有关的配置依

8、赖不是必填项,开发者可以不添加该依赖。Eclipse直接拷贝到lib目录下下面的例子均在Eclipse环境下完成2.添加权限<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_ST

9、ATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_LOGS"/>3.初始化BmobSDKpublic class MainAct

10、ivity extends Activity Override protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stub super.onCreate(savedInstanceState); / 初始化 Bmob SDK / 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID Bmob.initialize(this, "Your Application ID"); 二.数据操作首先我们把布局添加一下la

11、yout_main.xml<LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="+id/btn_add" android:layout_width="fill_parent"

12、android:layout_height="wrap_content" android:text="添加数据" /> <Button android:id="+id/btn_update" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="更新数据" /> <Button android:id="+id/btn_dele

13、te" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="删除数据" /> <Button android:id="+id/btn_query" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="查询数据

14、" /></LinearLayout>然后实例化这四个Button private Button btn_add, btn_update, btn_delete, btn_query; btn_add = (Button) findViewById(R.id.btn_add); btn_add.setOnClickListener(this); btn_update = (Button) findViewById(R.id.btn_update); btn_update.setOnClickListener(this); btn_delete = (Button)

15、findViewById(R.id.btn_delete); btn_delete.setOnClickListener(this); btn_query = (Button) findViewById(R.id.btn_query); btn_query.setOnClickListener(this);因为考虑到有四个点击事件,我们直接implements OnClickListener这样也许更直观一点,所以onClick()方法就是这个样子了 Override public void onClick(View v) switch (v.getId() /添加数据 case R.id.b

16、tn_add: break; /更新数据 case R.id.btn_update: break; /删除数据 case R.id.btn_delete: break; /查询数据 case R.id.btn_query: break; 准备工作差不多都做完了?No,还有一件非常重要的事情要做1.创建JavaBean我们新建一个类继承BmobObject,具体操作看注释package com.lgl.bmobdemo;import cn.bmob.v3.BmobObject;/* * javabean * * author lgl * */public class Bean extends B

17、mobObject /* * 这个javabean必须视情况而定,也就是你需要你的表上有什么信息你就加什么,当然,前提是,你的表单上有 * 添加表单可以在Bmob应用控制-数据浏览页面操作,后续会讲到 这里,我们假设有三个信息数据,分别是姓名,年龄,分数 */ private String name; private int age; private int score; public String getName() return name; public void setName(String name) = name; public int getAge() retu

18、rn age; public void setAge(int age) this.age = age; public int getScore() return score; public void setScore(int score) this.score = score; 2.添加数据其实就是调用了Bean的get,set方法case R.id.btn_add: / new出这个bean Bean bean = new Bean(); / 分别设置相应的信息 bean.setName("刘桂林"); bean.setAge(20); bean.setScore(100

19、); bean.save(this, new SaveListener() Override public void onSuccess() / 成功 Toast.makeText(MainActivity.this, "保存成功", 1) .show(); Override public void onFailure(int arg0, String arg1) / 失败 Toast.makeText(MainActivity.this, "保存失败", Toast.LENGTH_LONG) .show(); ); break;我们运行程序,然后点击添

20、加数据,当弹出Toast说明保存成功后,我们回到Bmob官网,找到我们的项目,点击数据浏览,就会看到已经保存的信息,这个就是我们的后台了3.更新数据更新数据,就是更新一条数据的记录,就像你修改个人信息,本来是男,现在要修改成女一样,但是,我们必须知道一点,就是如下图所示的objectid假设我先现在知道这个id,那我们的操作就可以这样case R.id.btn_update: bean = new Bean(); bean.setObjectId("edec38a77d"); bean.setName("修改刘桂林"); bean.setScore(30

21、); bean.update(this, new UpdateListener() Override public void onSuccess() / 成功 Toast.makeText(MainActivity.this, "更新成功", 1).show(); Override public void onFailure(int arg0, String arg1) / 失败 Toast.makeText(MainActivity.this, "更新失败", 1).show(); );break;然后我们来运行程序,点击更新数据,然后我们回到后台去查

22、看4.删除数据同样的,你要删除一条数据,你还得知道人家的objectidcase R.id.btn_delete: bean = new Bean(); bean.setObjectId("edec38a77d"); bean.delete(this, new DeleteListener() Override public void onSuccess() /成功 Toast.makeText(MainActivity.this, "删除成功", 1).show(); Override public void onFailure(int arg0, S

23、tring arg1) /失败 Toast.makeText(MainActivity.this, "删除失败", 1).show(); ); break;然后我们运行程序,点击删除数据后回到后台可以看到,表明bean还在,但是数据已经被删除了5.查询数据这几个数据操作,唯一不同的就是查询了,他必须使用到一个查询的类BmobQuery case R.id.btn_query: / BmobQuery<要查询的数据表> 项目一般不会只有一张表的 BmobQuery<Bean> query = new BmobQuery<Bean>(); q

24、uery.findObjects(this, new FindListener<Bean>() Override public void onSuccess(List<Bean> arg0) / 成功 Toast.makeText(MainActivity.this, "查询成功"+arg0.size(), 1).show(); Override public void onError(int arg0, String arg1) / 失败 Toast.makeText(MainActivity.this, "查询失败", 1).

25、show(); ); break;然后我们点击查询之后,他返回的是一个List,这里我们就不详细看List里面有什么了,表里只有一条数据,我们直接Toast他的size5.1条件查询跟数据库操作是一样的,你可以根据条件来查询,看代码case R.id.btn_query: / BmobQuery<要查询的数据表> 项目一般不会只有一张表的 BmobQuery<Bean> query = new BmobQuery<Bean>(); /条件查询 我们查询名称是刘桂林的数据 query.addWhereEqualTo("name", &quo

26、t;刘桂林"); query.findObjects(this, new FindListener<Bean>() Override public void onSuccess(List<Bean> arg0) / 成功/ Toast.makeText(MainActivity.this, "查询成功"+arg0.size(), 1).show(); for (Bean bean : arg0) Toast.makeText(MainActivity.this, "查询成功"+bean.getName()+"-

27、"+bean.getAge(), 1).show(); Override public void onError(int arg0, String arg1) / 失败 Toast.makeText(MainActivity.this, "查询失败", 1).show(); ); break;运行的结果5.2单条查询case R.id.btn_query: / BmobQuery<要查询的数据表> 项目一般不会只有一张表的 BmobQuery<Bean> query = new BmobQuery<Bean>(); / 查询单条

28、数据 query.getObject(this, "9fe91ce9a6", new GetListener<Bean>() Override public void onFailure(int arg0, String arg1) / 失败 Toast.makeText(MainActivity.this, "查询失败", 1).show(); Override public void onSuccess(Bean bean) / 成功 Toast.makeText(MainActivity.this, bean.getName()+&qu

29、ot;,"+bean.getAge(), 1).show(); ); break;这里你要单条数据查询的话,你就必须只带objectid才行,这里就不演示了三.登录,注册,更新资料,修改密码,邮箱验证前面废话啰嗦了也有一大堆了,现在来聊聊实际点的东西,Bmob他毕竟是一个后台数据管理的平台,所以前面才说了一堆的数据操作,我们接下来要实现的功能就是用户的注册和登录。1.注册Bmob实现登录注册,还有邮箱验证的功能,其实就是利用上面的数据操作,也就是增删查改我们进入后台会看到用户表单里面有一些字段这里写图片描述这可不是固定的,而是根据我们的需求可以增加或者删除的,默认的是最基本的我们为了

30、方便,新建一个工程BmobTest,然后把架包放在lib目录下,添加相应的权限以及在onCreate()方法里初始化Bmob,准备工作做完了之后,我们开始写代码:我们还是用回上面的哪个Bean,因为用户名和密码是不需要复写的,不过这里特别需要注意的是,这次我们不是继承BmobObject,而是继承BmobUser;* 我们要先搭建一个工程activity_main.xml<LinearLayout xmlns:android="http:/ xmlns:tools=" android:layout_width="match_parent" andr

31、oid:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" /> <EditText android:id="+i

32、d/et_pass" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" /> <Button android:id="+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint=

33、"登录" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:orientation="horizontal" > <TextView android:id="+id/tv_etpass" android:layout_width="wr

34、ap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:text="修改密码" /> <TextView android:id="+id/tv_register" android:layout_width="wrap_content" android:layout_height="wra

35、p_content" android:layout_weight="1" android:gravity="center" android:text="注册用户" /> </LinearLayout></LinearLayout>activity_register.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layo

36、ut_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="+id/et_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名"

37、/> <EditText android:id="+id/et_pass" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" /> <Button android:id="+id/btn_register" android:layout_width="match_parent" android:layout_heig

38、ht="wrap_content" android:hint="注册" /></LinearLayout>布局就是这样,想必跳转的逻辑也不用说了吧,很简单的一个例子,那我们先来注册:RegisterActivitypackage com.lgl.bmobtest;import cn.bmob.v3.listener.SaveListener;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.V

39、iew.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class RegisterActivity extends Activity private Button btn_register; private EditText et_name, et_pass; Override protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated

40、 method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); btn_register = (Button) findViewById(R.id.btn_register); et_name = (EditText) findViewById(R.id.et_name); et_pass = (EditText) findViewById(R.id.et_pass); btn_register.setOnClickListener(new OnClickListener(

41、) Override public void onClick(View v) Bean bean = new Bean(); / 设置的内容可以不需要,这里为了简便直接写死了 bean.setName("刘桂林"); bean.setAge(20); bean.setScore(100); bean.setUsername(et_name.getText().toString(); bean.setPassword(et_pass.getText().toString(); bean.signUp(RegisterActivity.this, new SaveListene

42、r() Override public void onSuccess() / 如果注册成功,就finish()掉,也就是退回主界面 finish(); Override public void onFailure(int arg0, String arg1) Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_LONG).show(); ); ); 我们把项目部署在模拟器上点击注册之后直接就finish()了说明注册成功了,我们进Bmob后端控制台去看一下表里面有数据,说明我们已经注册成功了用户名是12345

43、 密码是678902.登录登录其实是比较简单的case R.id.btn_login: Bean bean = new Bean(); bean.setUsername(et_name.getText().toString(); bean.setPassword(et_pass.getText().toString(); bean.login(this, new SaveListener() Override public void onSuccess() Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG

44、) .show(); Override public void onFailure(int arg0, String arg1) Toast.makeText(MainActivity.this, "账号或密码错误", Toast.LENGTH_LONG).show(); ); break;我们把项目部署在模拟器上3.更新用户信息我们时常就是会碰到这么一个场景,自己的个人信息填写错了,需要修改这里我们在主布局加一个Button <Button android:id="+id/btn_update" android:layout_width=&quo

45、t;match_parent" android:layout_height="wrap_content" android:hint="更新用户信息" /> 更新信息的代码其实和上面的数据操作是有异曲同工的case R.id.btn_update: / Bmob在登录成功后会缓存 bean = BmobUser.getCurrentUser(this, Bean.class); bean.setName("刘桂林修改"); bean.update(this, new UpdateListener() Override p

46、ublic void onSuccess() Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_LONG) .show(); Override public void onFailure(int arg0, String arg1) ); break;我们把项目部署在模拟器上注意:我们更新用户信息的前提是已经登录有图有真相,我们看一下控制台4.邮箱验证功能使用邮件验证功能,我们必须去后端控制台开启这个功能里面的信息我们可以自定义,我们将之前注册的过程进行修改,如果觉得乱的会后续也会贴上源码,其实就是加个邮箱而已bean.setEmail("748778890");然后我们把项目部署在模拟器上,我们项目注册之后就有一个邮箱了是不是很神奇,我们来看看邮件的内容,你会发现,就是Bmob后台的邮件信息,你是可以自定义的我们点击链接如果我们没有验证的话,就算你的注册时能finish(),你也不能登录的,挺实用的我们可以在登录的时间写一个判断if (bean.ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论