Bmob 开发 Android程序快速入门 2
Bmob 简介
Bmob平台为您的移动应用提供了一个完整的后端解决方案,我们提供轻量级的SDK开发包,让开发者以最小的配置和最简单的方式使用Bmob平台提供的服务,进而完全消除开发者编写服务器代码以及维护服务器的操作。
开源案例
Bmob致力于为开发者提供快速开发服务,为方便大家更好的理解Bmob SDK能够做的事情,我们特意为大家提供了一些源码,大家可以下载之后,嵌入Bmob的AppKey,再打包运行。
阅读源码是一种良好的习惯!!
即时聊天案例源码:https://github.com/bmob/BmobIMSDK4Android
图文社区案例源码:https://github.com/bmob/Wonderful2 这个案例是猿圈媛圈开发团队提供的。
校园小菜案例源码:https://github.com/bmob/Shop 这个案例是湖工大的朋友提供的。
社交分享案例源码:https://github.com/bmob/bmob-android-social-share 这个是金刚锁开发者提供的
第三方登录案例源码:https://github.com/bmob/bmob-android-demo-thirdpartylogin 包含第三方登录和登录后获取用户信息的源码
应用程序
在Bmob平台注册后,每个账户可创建多个应用程序,创建的每个应用程序都有其独自的应用程序ID,此后所有的应用程序将凭其ID进行Bmob SDK的使用。即使只有一个应用程序,也可以以不同的版本进行测试和生产。
应用安全
请大家在使用Bmob开发应用程序之前,认真阅读我们给大家提供的“数据与安全”的文档,确保你的应用在发布时安全。文档的链接地址是:http://docs.bmob.cn/datasafety/index.html?menukey=otherdoc&key=datasafety
数据类型
目前为止,我们支持的数据类型有String、Integer、Boolean、ArrayList以及BmobObject对象类型。同时Bmob也支持BmobDate、BmobGeoPoint、 BmobFile数据类型。
对象
一个对象对应了数据表中的一条数据,也可以理解为应用程序中的JavaBean.
数据对象
Bmob存储的数据是建立在BmobObject基础上的,所以任何要保存的数据对象必须继承自BmobObject类。BmobObject对象包含objectId、createdAt、updatedAt、ACL四个默认的属性,objectId为对象的唯一标示,可以理解为数据表中的主键,createdAt为对象的创建时间,updatedAt为对象的最后修改时间,ACL为这条数据的操作权限控制。例如,游戏中可能会用到的分数对象GameScore,它可能包含score、playerName、cheatMode等属性,那么这个数据对象创建的示例代码如下:
public class GameScore extends BmobObject{
private String playerName;
private Integer score;
private Boolean cheatMode;
private BmobFile pic;
public String getPlayerName() {
return playerName;
}
public void setPlayerName(String playerName) {
this.playerName = playerName;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public Boolean getCheatMode() {
return cheatMode;
}
public void setCheatMode(Boolean cheatMode) {
this.cheatMode = cheatMode;
}
public BmobFile getPic() {
return pic;
}
public void setPic(BmobFile pic) {
this.pic = pic;
}
}
类名和表名的关系
- 默认情况下,Bmob提供了类名和表名完全一致的简单方式,实现类名和表名的映射。如,上面的GameScore类对应Web后台的表名是GameScore(区分大小写),如果创建一个数据对象名称为T_a_b,那么这个类名对应的Web后台的表名也是T_a_b。
- 但很多时候,你希望在后台创建的表名和类名并不相同,如表名为T_a_b,而类名还是GameScore,那么你可以使用BmobObject提供的setTableName("表名")的方法,示例代码如下:
//这时候实际操作的表是T_a_b
public class GameScore extends BmobObject{
private String playerName;
private Integer score;
private Boolean cheatMode;
private BmobFile pic;
public GameScore() {
this.setTableName("T_a_b");
}
public String getPlayerName() {
return playerName;
}
//其他方法,见上面的代码
}
当然了,你也可以在GameScore实例中动态调用setTableName方法,实现操作可变表(如根据日期建立表来存储信息)的可能。
查询自定义表名的数据
如果您使用了setTableName方法来自定义表名,那么在对该表进行数据查询的时候必须使用以下方法来进行查询。需要注意的是查询的结果是一个JSONArray,您需要自行解析JSONArray中的数据来进行使用。
/**
* 查询数据
*/
public void queryData(){
BmobQuery query = new BmobQuery("T_a_b");
query.findObjects(this, new FindCallback() {
@Override
public void onSuccess(JSONArray arg0) {
// TODO Auto-generated method stub
showToast("查询成功:"+arg0.length());
}
@Override
public void onFailure(int arg0, String arg1) {
// TODO Auto-generated method stub
showToast("查询失败:"+arg1);
}
});
}
自定义表名情况下的更新、删除数据和普通的更新、删除数据方式一样,没有变化。尽管如此,我们还是提供了一个关于自定义表名情况下增删改查数据的Demo供开发者朋友参照源码来学习,下载地址是:https://github.com/bmob/bmob-android-demo-dynamic-tablename。
特殊对象
为了提供更好的服务,BmobSDK中提供了BmobUser、BmobInstallation两个特殊的BmobObject对象来完成不同的功能,在这里我们统一称为特殊对象。 BmobUser对象主要是针对应用中的用户功能而提供的,它对应着web端的User表,使用BmobUser对象可以很方便的在应用中实现用户的注册、登录、邮箱验证等功能,具体的使用方法可查看文档的用户
部分。 BmobInstallation对象主要用于应用的安装设备管理中,它对应着web端的Installation表,任何安装了你应用的设备都会在此表中产生一条数据标示该设备。结合Bmob提供的推送功能,还可以实现将自定义的消息推送给不同的设备终端,具体的使用方法可查看文档的消息推送
部分。
希望对你有帮助。