博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bmob基础
阅读量:4325 次
发布时间:2019-06-06

本文共 5632 字,大约阅读时间需要 18 分钟。

  BaaS是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。本文介绍了六款你必用的移动后端云服务/产品。  

  一款移动应用一旦需要后端服务的强大支撑时,开发商就必须考虑基础架构、服务集成、可伸缩性等繁冗复杂的问题。而在这些方面耗费的大量时间精力财力却不能直接提升App的用户体验。

为了解决这些问题,部分App发行商租用了譬如(Amazon Web Services)的公有云服务,有的则部署内部专用的私有云服务。而移动开发团队越来越趋向于小规模化,架设需要高成本运营的服务器群或许并不是最好的方法,租用或免费使用后端云服务开始流行起来。

  BaaS(后端即服务)悄然兴起

  移动应用开发领域目前有一个(后端即服务:Backend as a Service)的概念。BaaS是指为移动应用开发者提供整合云后端的边界服务。现在,BaaS生态系统正从一个小众垂直领域迅速成为非常重要的行业环节。

  BaaS服务提供商的基础服务是数据/文件存储,主要帮助App开发者解决存储的问题。更进一步的集成服务则包括:账户管理、消息推送、社交网络整合、地理位置与广告等。BaaS分两种模式:一种是API模式,让开发者自己拓展代码;另一种是SDK模式,提供如iOS、Android及Windows Phone等的SDK。

  目前,国外比较知名的BaaS服务提供商是StackMob和Parse。在国内,Talking Data、友盟、Bmob、百度和新浪开放平台均有相关业务。

  本篇就带领大家一起来简单使用一下Bmob的开发,个人感觉还是很方便的。开发平台选择Android,由于IOS的高成本,无力支付高昂的硬件成本,所以就不再提IOS问题了。

  工欲善其事,必先利其器。首先我们需要到Bmob的官网:http://www.bmob.cn/

  

  下载需要的jar包(Android SDK),解压里面有三个文件,两个jar文件是我们开发需要的jar包,另外一个文件,是Bmob为我们提供的一个参考实例。下载好之后下载之后我们还需要注册一个账号,然后进入后台,点击创建应用,开始我们的Bmob之旅。

  

  Bmob为我们开发熟悉提供的了详细的文档支持,大家也可以参考一下官网的文档,本篇我将带领大家通过实现一个登录的功能来,来进一步认识Bmob的功能。

  第一步:登录Bmob,然后进入后台,点击创建应用,这是系统我们的生成了一个应用,点击进入应用,会看到系统为我们生成Key,到这里我们在Bmob上的工作就可以告一段落了。

  

  第二步:创建Android应用,通过Eclipse或Android Stdio新建一个工程项目,然后把我们刚刚下载好的jar包拷贝到工程的libs文件下,将jar包导入到我们的项目中。

  第三步:修改我们的布局文件,我们实现的是登录,所以我们需要写一个登录界面:

  第四步、添加权限,在AndroidManifest.xml文件中,将官网为我们声明的权限添加进去:

  第五步、创建我们的登录对象类(Imooc.java),因为我们和Bmob之间的通信是借助类完成的。

@SuppressWarnings("serial")public class Imooc extends BmobObject{    private String name;    private String password;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Imooc(String name, String password) {        super();        this.name = name;        this.password = password;    }}

   最后一步、我们的MainActivity.java:

public class MainActivity extends Activity implements OnClickListener{        private EditText name;    private EditText password;    private Button login;    private Button add;        private String input_name;    private String input_password;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 初始化 Bmob SDK        // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID        Bmob.initialize(this, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");                init();            }    private void init() {        name = (EditText) findViewById(R.id.editText1);        password = (EditText) findViewById(R.id.editText2);        login = (Button) findViewById(R.id.button1);        add = (Button) findViewById(R.id.button2);        login.setOnClickListener(this);        add.setOnClickListener(this);            }        private void getEditTextValue(){        input_name = name.getText().toString();        input_password = password.getText().toString();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public void onClick(View arg0) {        switch (arg0.getId()) {        case R.id.button1:            this.getEditTextValue();            this.Login();            break;        case R.id.button2:            this.getEditTextValue();            this.Add();            break;        }    }        public void Login(){        if(input_name.equals("")||input_password.equals("")){            return;        }                BmobQuery
query = new BmobQuery
(); query.addWhereEqualTo("name", input_name); query.findObjects(this, new FindListener
() { @Override public void onSuccess(List
arg0) { if(arg0.size()!=0){ for(Imooc imooc : arg0){ if(imooc.getPassword().equals(input_password)){ Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); break; }else{ password.setText(""); password.requestFocus(); Toast.makeText(MainActivity.this, "密码输入有误", Toast.LENGTH_SHORT).show(); } } }else{ Toast.makeText(MainActivity.this, "请先注册", Toast.LENGTH_SHORT).show(); } } @Override public void onError(int arg0, String arg1) { Toast.makeText(MainActivity.this, "系统出错啦", Toast.LENGTH_SHORT).show(); } }); } public void Add(){ if(input_name.equals("")||input_password.equals("")){ return; } Imooc imooc = new Imooc(input_name, input_password); imooc.save(this, new SaveListener() { @Override public void onSuccess() { Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(int arg0, String arg1) { Toast.makeText(MainActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } }); } }

  最后附一张效果图:

  

 

转载于:https://www.cnblogs.com/AndroidJotting/p/4483143.html

你可能感兴趣的文章
crontab导致磁盘空间满问题的解决
查看>>
java基础 第十一章(多态、抽象类、接口、包装类、String)
查看>>
Hadoop 服务器配置的副本数量 管不了客户端
查看>>
欧建新之死
查看>>
C程序之修改Windows的控制台颜色(转载)
查看>>
自定义滚动条
查看>>
[QT][待解决问题]对话框ui载入卡顿问题
查看>>
jquery中单选选中及清除选中状态
查看>>
APP开发手记01(app与web的困惑)
查看>>
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
mysql 日期时间运算函数(转)
查看>>
初识前端作业1
查看>>
为啥程序会有bug?
查看>>
跨域技术
查看>>
JS里的居民们7-对象和数组转换
查看>>
计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
查看>>
python初体验
查看>>
配置vue,vue脚手架的应用(老版本)
查看>>
Start with PJSIP on windows
查看>>
【图像处理】ISP 图像传感器camera原理
查看>>