Bmob移動後端雲服務平臺--Android從零開始--(二)android快速入門
上一篇博文我們簡單介紹何爲Bmob移動後端服務平臺,以及其相關功能和優勢。本文將利用Bmob快速實現簡單例子,進一步瞭解它的強大之處。
一、準備工作
1.註冊Bmob賬號
在網址欄輸入www.bmob.cn或者在百度輸入Bmob進行搜索,打開Bmob官網後,點擊右上角的「註冊」,在跳轉頁面填入你的姓名、郵箱、設置密碼,確認後到你的郵箱激活Bmob賬戶,你就可以用Bmob輕鬆開發應用了。

2.網站後臺創建應用
登錄賬號進入bmob後臺後,點擊後臺界面左上角「創建應用」,在彈出框輸入你應用的名稱,然後確認,你就擁有了一個等待開發的應用。

3.獲取應用密鑰和下載SDK
選擇你要開發的應用,點擊該應用下方對應的「應用密鑰」

在跳轉頁面,獲取Application ID,此ID將會在初始化SDK中使用到。

獲取Application ID後,下載SDK,開發者可以根據自己的需求選擇相應的iOS SDK 或Android SDK,點擊下載即可。

二、代碼實現
需求:本實例簡單的實現用戶利用用戶名和密碼進行註冊。註冊成功後,利用註冊的數據,進行登陸,操作成功後給出相應的提示。
代碼實現步驟:
1> 引入BmobSDK 架包
將下載的BmobSDK中包含如下的架包引入到Android應用

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_STATE"/>
- <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> 初始化BmobSDK
在你應用程序啓動的Activity的onCreate()方法中初始化Bmob功能。代碼如下所示:
- @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");
- }
4>創建繼承於BmobObject的實體UserBean
- package com.example.bmobdemo.bean;
-
- import cn.bmob.v3.BmobObject;
-
- /**
- *
- *
- * 項目名稱:BmobDemo
- * 類名稱:UserBean
- * 類描述: 繼承BmobObject的用戶實體類
- * 創建時間:2014年12月18日 下午10:25:40
- * 修改人:Administrator
- * 修改時間:2014年12月18日 下午10:25:40
- * 修改備註:
- * @version
- *
- */
- public class UserBean extends BmobObject{
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private String loginId;
- private String userName;
- private String password;
- public String getLoginId() {
- return loginId;
- }
- public void setLoginId(String loginId) {
- this.loginId = loginId;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String toString() {
- return "UserBean [loginId=" + loginId + ", userName=" + userName
- + ", password=" + password + "]";
- }
-
-
-
- }
4>案例效果

Bmob平臺服務器數據

5>相關的佈局文件和清單文件
1.清單文件,AndroidManifest.xml
- <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.bmobdemo"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk
- android:minSdkVersion="17"
- android:targetSdkVersion="19" />
-
- <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.READ_PHONE_STATE" />
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.READ_LOGS" />
-
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name="com.example.bmobdemo.MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
- </manifest></span>
2.主佈局文件,activity_main.xml
本實例需要一個用戶名的EditText和密碼的EditText,以及註冊和登陸的Button。
- <span style="font-size:18px;"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="20dp"
- android:orientation="horizontal" >
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="10dp"
- android:text="用戶名:"
- android:textColor="#FF0000" />
-
- <EditText
- android:id="@+id/id_login_name_et"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="20dp"
- android:orientation="horizontal" >
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginRight="10dp"
- android:text="密碼:"
- android:textColor="#FF0000" />
-
- <EditText
- android:id="@+id/id_password_et"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
- </LinearLayout>
-
- <Button
- android:id="@+id/id_register_btn"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="10dp"
- android:text="註冊"
- android:textColor="#0000FF" />
-
- <Button
- android:id="@+id/id_login_btn"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="登陸"
- android:textColor="#0000FF" />
-
- </LinearLayout></span>
5>java實現代碼
1.主界面代碼MainActivity.java
- package com.example.bmobdemo;
-
- import java.util.List;
-
- import cn.bmob.v3.Bmob;
- import cn.bmob.v3.BmobQuery;
- import cn.bmob.v3.listener.FindListener;
- import cn.bmob.v3.listener.SaveListener;
-
- import com.example.bmobdemo.bean.UserBean;
- import com.example.bmobdemo.util.ToastUtils;
-
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.EditText;
-
- public class MainActivity extends Activity implements OnClickListener {
-
- // Bmob應用創建建時獲取的Application id,根據自己創建的應用來寫入
- private static final String BMOB_APPLICATION_ID = "be783fdda4eac8a781a9f80596e98fe0";
- private Button registerBtn, loginBtn;
- private EditText loginEt, passwordEt;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- /**
- * 初始化BmobSDK
- */
- Bmob.initialize(this, BMOB_APPLICATION_ID);
- initView();
- }
-
- /**
- *
- * 初始化控件
- */
- private void initView() {
- registerBtn = (Button) this.findViewById(R.id.id_register_btn);
- loginBtn = (Button) this.findViewById(R.id.id_login_btn);
- loginEt = (EditText) this.findViewById(R.id.id_login_name_et);
- passwordEt = (EditText) this.findViewById(R.id.id_password_et);
-
- registerBtn.setOnClickListener(this);
- loginBtn.setOnClickListener(this);
-
- }
-
- /**
- * 註冊
- */
- private void register() {
- String loginId = loginEt.getText().toString();
- String password = passwordEt.getText().toString();
- if (loginId.isEmpty() || password.isEmpty()) {
- ToastUtils.toast(this, "密碼或賬號不爲空!");
- return;
- }
-
- final UserBean userBean = new UserBean();
- userBean.setLoginId(loginId);
- userBean.setPassword(password);
- userBean.setUserName("Bmob");
- /**
- * 保存數據到Bmob服務器
- */
- userBean.save(this, new SaveListener() {
-
- @Override
- public void onSuccess() {
- ToastUtils.toast(MainActivity.this, userBean.toString()
- + " 註冊成功");
- }
-
- @Override
- public void onFailure(int arg0, String arg1) {
- ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 註冊失敗");
- }
- });
-
- }
-
- /**
- * 登陸
- */
- private void login() {
- String loginId = loginEt.getText().toString();
- String password = passwordEt.getText().toString();
- if (loginId.isEmpty() || password.isEmpty()) {
- ToastUtils.toast(this, "密碼或賬號不爲空!");
- return;
- }
-
- BmobQuery<UserBean> userQuery = new BmobQuery<UserBean>();
-
- // 查詢條件
- userQuery.addWhereEqualTo("loginId", loginId);
- userQuery.addWhereEqualTo("password", password);
-
- userQuery.findObjects(this, new FindListener<UserBean>() {
-
- @Override
- public void onError(int arg0, String arg1) {
- ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 登陸失敗");
- }
-
- @Override
- public void onSuccess(List<UserBean> userList) {
- if (userList != null && userList.size() > 0)
- &nbsx!important; margin-bottom:0px!important; padding:0px 3px 0px 10px!important"> userQuery.addWhereEqualTo("loginId", loginId);
- userQuery.addWhereEqualTo("password", password);
-
- userQuery.findObjects(this, new FindListener<UserBean>() {
-
- @Override
- public void onError(int arg0, String arg1) {
- ToastUtils.toast(MainActivity.this, arg0 + "," + arg1 + " 登陸失敗");
- }
-
- @Override
- public void onSuccess(List<UserBean> userList) {
- if (userList != null && userList.size() > 0)
- ToastUtils.toast(MainActivity.this, " 登陸成功");
- else {
- }
-
- @Override
- public void onSuccess(List<UserBean> userList) {
- if (userList != null && userList.size() > 0)
- ToastUtils.toast(MainActivity.this, " 登陸成功");
- else {
- ToastUtils.toast(MainActivity.this, " 登陸失敗");
- }
- }
- });
- }
-
- @Override
- public void onClx; padding:0px; border:none; color:rgb(0,0,0); background-color:inherit"> public void onSuccess(List<UserBean> userList) {