恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Android之Bmob移动后端云服务器

  • 首页
  • 资讯中心
  • /
  • Android之Bmob移动后端云服务器

相关资讯

5000字超详细字节跳动Android客户端面经 2026/8/27 12:49:41
一位3年Android开发的焦虑:月薪不到3万,担心被应届生取代 2026/8/27 12:49:41
超级详细的 VirtualBox 虚拟机安装 及入门教程 2026/8/27 12:44:40

最新资讯

2026年开始学习AI,是否为时已晚?揭秘为何30+人群在AI领域更具竞争力
35岁大龄程序员现在学AI大模型完全没问题,甚至可能比年轻人更有优势!!
24V转5V/12V 20A同步Buck电源设计:从参数计算到PCB布局实战
COM-Based SBC高I/O密度解析:从核心板到载板设计实战
高温电机控制的硬骨头:32位MCU选型、设计与调试实操指南
未来十年人工智能的发展前景如何?人工智能未来发展方向是什么?

今日推荐

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用
LeetCode Hot100(51-60)算法精解与面试技巧
CRC校验实战:从模2除法到HJ212协议排错

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Android之Bmob移动后端云服务器

发布时间:2026/8/27 12:49:41
Android之Bmob移动后端云服务器 PS一般情况下我们在写android程序的时候想要实现登录注册功能可以选择自己用servlet作为服务端来实现过滤没有注册过的用户但是太麻烦而且不是随时都可以用的。这里介绍一个移动后端云服务器平台bmob这不仅可以实现云数据库储存还可以获取手机验证等随时随地都很轻松下面写一个小demo实现一个登陆注册功能认识增删查改。下面我稍微写一个例子简单实现注册登录功能。1首先到bmob官网注册一个账号里面创建一个项目如图2创建一个android项目AndroidStudio1:添加依赖在app下的build.gradle中添加 compilecn.bmob.android:bmob-sdk:3.4.6compilecom.squareup.okhttp:okhttp:2.4.0//CDN文件服务使用okhttp相关包进行文件的上传和下载必填compilecom.squareup.okio:okio:1.4.0sourceSets{main.jniLibs.srcDirs[libs]}useLibraryorg.apache.http.legacy位置如图2添加权限!--允许联网--uses-permission android:nameandroid.permission.INTERNET/!--获取GSM2g、WCDMA联通3g等网络状态的信息--uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE/!--获取wifi网络状态的信息--uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE/!--保持CPU运转屏幕和键盘灯有可能是关闭的,用于文件上传和下载--uses-permission android:nameandroid.permission.WAKE_LOCK/!--获取sd卡写的权限用于文件上传和下载--uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/!--允许读取手机状态 用于创建BmobInstallation--uses-permission android:nameandroid.permission.READ_PHONE_STATE/3:添加maven到指定的云库maven{urlhttps://raw.github.com/bmob/bmob-android-sdk/master}4初始化Bmob.initialize(this,“你的 应用ID”);3下面就是代码了写一个实体类personpackagecn.day1.model;importcn.bmob.v3.BmobObject;/** * Created by CMusketeer on 17/10/22. */publicclassPersonextendsBmobObject{privateString name;privateString password;publicStringgetName(){returnname;}publicvoidsetName(String name){this.namename;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(String password){this.passwordpassword;}}写三个布局分别是注册页面登录页面登录成功跳转的页面activity_main.xml?xml version1.0encodingutf-8?LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:contextcn.day1.bmobtest1.MainActivityTextViewandroid:gravitycenterandroid:textSize20dpandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text登录/EditTextandroid:idid/id_usernameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintusername/EditTextandroid:idid/id_userpasswordandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintpassword/LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalButtonandroid:idid/id_okandroid:layout_width0dpandroid:text登录android:layout_heightwrap_contentandroid:layout_weight1/Buttonandroid:idid/id_registerandroid:text注册android:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_weight1//LinearLayout/LinearLayout注册页面register_layout.xml先把各页面都写了后续就好办了。?xml version1.0encodingutf-8?LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:contextcn.day1.bmobtest1.MainActivityTextViewandroid:gravitycenterandroid:textSize20dpandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text注册中心/EditTextandroid:idid/id_register_usernameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintusername/EditTextandroid:idid/id_register_userpasswordandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hintpassword/LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalButtonandroid:idid/id_register_okandroid:text注册android:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_weight1//LinearLayout/LinearLayout登录成功页面success.xml?xml version1.0encodingutf-8?LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentTextViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:text成功登录android:gravitycenterandroid:textSize50dp//LinearLayout注册ActivityRegisterActivity.java 功能增这里是一个简单的注册里面没有加判断所以一个号可以重复注册但是只有唯一ID。packagecn.day1.bmobtest1;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.TextView;importandroid.widget.Toast;importcn.bmob.v3.listener.SaveListener;importcn.day1.model.Person;/** * Created by CMusketeer on 17/10/22. */publicclassRegisterActivityextendsActivity{privateTextView register_user;privateTextView register_password;privateButton register_ok;privatePerson p2;OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.register_layout);addControl();//加载控件addRegisterShow();//注册方法}privatevoidaddRegisterShow(){register_ok.setOnClickListener(newView.OnClickListener(){OverridepublicvoidonClick(View v){final String rUserregister_user.getText().toString().trim();String rPasswordregister_password.getText().toString().trim();//判断用户名和密码是否为空,如果为空则不能进去。if(rUser.length()0rPassword.length()0){p2newPerson();p2.setName(rUser);p2.setPassword(rPassword);//插入方法p2.save(RegisterActivity.this,newSaveListener(){OverridepublicvoidonSuccess(){// TODO Auto-generated method stubregister_password.setText();register_user.setText();Toast.makeText(RegisterActivity.this,添加数据成功返回objectId为p2.getObjectId(),Toast.LENGTH_SHORT).show();}OverridepublicvoidonFailure(int code,String msg){// TODO Auto-generated method stubToast.makeText(RegisterActivity.this,创建数据失败msg,Toast.LENGTH_SHORT).show();}});}else{Toast.makeText(RegisterActivity.this,用户名或者密码不能为空,Toast.LENGTH_SHORT).show();}}});}privatevoidaddControl(){register_user(TextView)findViewById(R.id.id_register_username);register_password(TextView)findViewById(R.id.id_register_userpassword);register_ok(Button)findViewById(R.id.id_register_ok);}}登录页面MainActivity.java 功能查packagecn.day1.bmobtest1;importandroid.content.Intent;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;importandroid.widget.TextView;importandroid.widget.Toast;importjava.util.List;importcn.bmob.v3.Bmob;importcn.bmob.v3.BmobQuery;importcn.bmob.v3.listener.FindListener;importcn.day1.model.Person;publicclassMainActivityextendsAppCompatActivity{privatePerson p2;privateTextView lgUser;privateTextView lgPassword;privateButton btn_ok;privateButton btn_rg;OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);Bmob.initialize(this,你的 应用id);setContentView(R.layout.activity_main);addControl();addLogin();}privatevoidaddLogin(){btn_rg.setOnClickListener(newView.OnClickListener(){OverridepublicvoidonClick(View v){Intent intentnewIntent(MainActivity.this,RegisterActivity.class);startActivity(intent);}});btn_ok.setOnClickListener(newView.OnClickListener(){OverridepublicvoidonClick(View v){BmobQueryPersonquerynewBmobQueryPerson();query.findObjects(MainActivity.this,newFindListenerPerson(){String lgUlgUser.getText().toString().trim();String lgplgPassword.getText().toString().trim();int panduan1;OverridepublicvoidonSuccess(ListPersonlist){for(int i0;ilist.size();i){String namelist.get(i).getName();String passwordlist.get(i).getPassword();Log.e(user,唯一 id:list.get(i).getObjectId()----name---password);if(name.equals(lgU)password.equals(lgp)){Toast.makeText(MainActivity.this,登录成功,Toast.LENGTH_SHORT).show();panduan2;//成功后panduan等于2,则跳出该循环,并且把输入快都清空,跳转到指定页面lgUser.setText();lgPassword.setText();Intent intentnewIntent(MainActivity.this,Success.class);startActivity(intent);break;}}if(panduan1){Toast.makeText(MainActivity.this,登录失败,Toast.LENGTH_SHORT).show();}}OverridepublicvoidonError(int i,String s){}});}});}privatevoidaddControl(){lgUser(TextView)findViewById(R.id.id_username);lgPassword(TextView)findViewById(R.id.id_userpassword);btn_ok(Button)findViewById(R.id.id_ok);btn_rg(Button)findViewById(R.id.id_register);}}登录成功页面 Success.javapackagecn.day1.bmobtest1;importandroid.app.Activity;importandroid.os.Bundle;/** * Created by CMusketeer on 17/10/22. */publicclassSuccessextendsActivity{OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.success);}}总结唯一id的获取可以通过用户名来获取当用户输入用户名时只要数据库中用户名和输入的一致则就可以list.get(i).getObjectId()处理增删查改 增 personnewPerson();person.setName(user);person.setAddress(password);person.save(newSaveListenerString(){Overridepublicvoiddone(String s,BmobException e){if(enull){Toast.makeText(MainActivity.this,成功,Toast.LENGTH_SHORT).show();}else{}}});删 Id可以通过查处所有的从而得到id idlist.get(i).getObjectId();personnewPerson();person.delete(id,newUpdateListener(){Overridepublicvoiddone(BmobException e){if(enull){Log.e(sss,删除成功);}}});查 和上面的查不大一样这也是一种方法//查询所有query.findObjects(newFindListenerPerson(){Overridepublicvoiddone(ListPersonlist,BmobException e){}}//查询单个query.getObject(idnewlistener)改 person.setName(“111”);person.update(id,newUpdateListener(){Overridepublicvoiddone(BmobException e){if(enull){// Toast.makeText(MainActivity.this, 更改成功, Toast.LENGTH_SHORT).show();Log.e(sss,更改成功);}}效果图

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号