什么是移动后端服务:
移动后端服务也叫BaaS(后端即服务:Backend as a Service),为移动应用开发者提供整合云后端的边界服务。它为应用开发提供后台的云服务,包括提供数据存储、托管环境,也包括提供消息推送等通行后端技术能力。BaaS作为应用开发的新模型,进一步实现专业分工,有助于应用的成本下降和市场的进一步繁荣。
这里给出一些BaaS服务提供商:
Bmob移动后端云服务平台
接下来主要从注册Bmob账号,数据存储(手动导入外部数据),Android端加载Bmob中数据这三个方面介绍Bmob移动后端云服务平台。
1、注册Bmob账号
(1)在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名、邮箱、设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了。
(2)登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用。
2、导入外部数据
Bmob可以存储数据,数据可以通过移动端上传到Bmob平台,也可以通过Bmob网站后台上传外部数据,其中上传外部数据格式仅支持Json数据或者CSV格式数据。
导入外部数据之前需要提前在创建好的应用中创建一个数据表,然后在该数据表中“更多”——“导入数据”,选择要导入的json数据或csv数据,即可导入相关外部数据。
常见问题:
(1)浏览器兼容
浏览器必须支持flash,已经安装了flash插件,否则导入数据时“确定”按钮点击不了。(google浏览器如果不行,试试ie浏览器。)
(2)Bmob支持导入csv格式和json格式数据
操作:a、xlsx数据或者xls数据在Excel中转成csv格式即可;b、csv格式数据必须为“UTF-8无BOM格式编码”,否则导入的数据或出现乱码情况。可以在notepad++将csv格式数据的编码格式转成“UTF-8无BOM格式编码”,转完后记得点击“保存”如下图:
(3)Bmob中无需提前在数据表中创建要导入数据的相应字段
导入数据时遵循数据表中如果存在同名字段则不重新创建,如果不存在同名字段则创建新列的原则,进行数据导入。
(4)数据导入后,会以邮件的形式提醒是否导入成功,如果导入完发现数据表中还是空的,等收到邮件提醒再刷新数据表,这时你发现数据就已经成功导入了。(邮箱账号则是在创建Bmob账号时存储的账号,邮件提醒会发送到此账号)
导入成功后的数据,如下:
3、Android端加载Bmob中数据
(1)Bmob SDK导入
可以支持自动导入和手动导入两种方式,在这里选择手动导入方式;
下载完使用于Android平台的Bmob SDK后将下图中的jar文件拷贝到创建的Android项目的libs文件下,并将“BmobSDK_3.5.3_20161116”添加到依赖库中(project structure——>dependencies——>File dependency);然后将相关文件夹文件拷贝到新创建的jniLibs文件夹中;
(2)配置Android Manifest.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" />
(3)初始化BmobSDK
在应用程序启动的Activity的onCreate()方法中初始化Bmob功能。
Bmob.initialize(this, "Your Application ID");
在Bmob创建的Android应用都会有自己唯一的Application ID,可以通过Bmob中创建的Android应用的"设置"——>Application ID查看;
(4)核心功能编码
实体类PlantShow.java:(注意:实体类名必须和Bmob中数据表名一致,声明的变量名和数据表中字段名一致,数据类型也需一致)
import cn.bmob.v3.BmobObject;
import cn.bmob.v3.datatype.BmobFile;
public class Plantshow extends BmobObject {
private Integer keyid;//id编号
private String id;//id编号
private String plantname;//植物名称
private String ladingname;//拉丁名
private String ke;//科名
private String shu;//属名
private String brief;//植物概况
private String location;//分布位置
private BmobFile picFile;//植物图片(Bmob中数据表创建一个字段(File类型),上传对应的图片文件)
public PlantShow(String tableName) {
super(tableName);
}
public PlantShow(Integer keyid, String id, String plantname, String ladingname, String ke, String shu, String brief, String location, BmobFile picFile) {
this.keyid = keyid;
this.id = id;
this.plantname = plantname;
this.ladingname = ladingname;
this.ke = ke;
this.shu = shu;
this.brief = brief;
this.location = location;
this.picFile = picFile;
}
public Integer getKeyid() {
return keyid;
}
public void setKeyid(Integer keyid) {
this.keyid = keyid;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPlantname() {
return plantname;
}
public void setPlantname(String plantname) {
this.plantname = plantname;
}
public String getLadingname() {
return ladingname;
}
public void setLadingname(String ladingname) {
this.ladingname = ladingname;
}
public String getKe() {
return ke;
}
public void setKe(String ke) {
this.ke = ke;
}
public String getShu() {
return shu;
}
public void setShu(String shu) {
this.shu = shu;
}
public String getBrief() {
return brief;
}
public void setBrief(String brief) {
this.brief = brief;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
//返回图片路径,就可以使用图片开源库(Glide、Volly等)基于返回的图片URL进行加载显示。
public String getPicFile() {
return picFile.getFileUrl();
}
}
(5)结果显示