精华内容
下载资源
问答
  • 本篇文章主要介绍了Android后端服务器的搭建方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • NoEnemyLG_Android 使用 GAE 的 Android 后端客户端
  • Android后端服务器的搭建

    万次阅读 2018-06-23 01:11:13
    Android后端服务器的搭建 一直做Android前端,今天突然心血来潮想搭建一个后台玩玩。平时都是需要什么样的接口直接出个接口文档扔给后台的兄弟,自己从来不操心他们内部的实现问题。今天怀着好奇的心理去搭建了一个...

    Android后端服务器的搭建

      一直做Android前端,今天突然心血来潮想搭建一个后台玩玩。平时都是需要什么样的接口直接出个接口文档扔给后台的兄弟,自己从来不操心他们内部的实现问题。今天怀着好奇的心理去搭建了一个JAVA编译环境下的后台服务器。听说用PHP搭建服务器的居多,但是我们做大Android的最熟悉的还是Java了,所以下面我就开始搭建这个服务器。很简单。。。

      首先我下载了一个myelipse应为我们开发android的eclipse不能创建web project 要不然你去下载个插件也行,下载好以后创建web project会生成一个目录,然后右键你的这个项目选择myeclipse  -> add structs capabilities... 选择2.1 finish  OK这样就创建成功这个项目了,下面我贴出来我的项目树供大家参考(感谢yayun0516 ,他的博文给了我很大的帮助,但是其中有些不足我已经在下面改正了)

    下面配置structs.xml

    复制代码
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
        <package name="struts2" extends="struts-default" namespace="/">
            <action name="getjson" class="com.shao.action.JSONAction"
                method="json">
                <result name="success">index.jsp</result>
            </action>
        </package>
    </struts>    
    复制代码

    只有这一个需要配置,其他的在你添加struct的时候就会自动生成。下面创建类型文件

    复制代码
    package com.shao.domain;
    
    public class Music {    
        
        private Integer id;      
        private String name;      
        private String time;    
        private String  author;    
        public Integer getId() {    
            return id;    
        }    
        public void setId(Integer id) {    
            this.id = id;    
        }    
        public String getName() {    
            return name;    
        }    
        public void setName(String name) {    
            this.name = name;    
        }    
        public String getTime() {    
            return time;    
        }    
        public void setTime(String time) {    
            this.time = time;    
        }    
        public String getAuthor() {    
            return author;    
        }    
        public void setAuthor(String author) {    
            this.author = author;    
        }     
    }   
    复制代码

    然后再创建转json的方法JSONAction:

    复制代码
    package com.shao.action;
    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.net.URLDecoder;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    
    import com.google.gson.Gson;
    import com.opensymphony.xwork2.ActionSupport;
    import com.shao.domain.Music;
    
    public class JSONAction extends ActionSupport implements ServletRequestAware,
            ServletResponseAware {
    
        /**  
         *   
         */
        private static final long serialVersionUID = -3604892179657815531L;
        private HttpServletRequest request;
        private HttpServletResponse response;
        private String format;
    
        public String getFormat() {
            return format;
        }
    
        public void setFormat(String format) {
            this.format = format;
        }
    
        @Override
        public void setServletRequest(HttpServletRequest request) {
            this.request = request;
        }
    
        @Override
        public void setServletResponse(HttpServletResponse response) {
            this.response = response;
        }
    
        public void json() {
            List<Music> list = new ArrayList<Music>();
            Gson gson = new Gson();
            Music m1 = new Music();
            m1.setId(1);
            m1.setAuthor("周");
            m1.setName("外婆");
            m1.setTime("04:04");
            list.add(m1);
            Music m2 = new Music();
            m2.setId(2);
            m2.setAuthor("周杰伦");
            m2.setName("半兽人");
            m2.setTime("04:05");
            list.add(m2);
            Music m3 = new Music();
            m3.setId(3);
            m3.setAuthor("周杰伦");
            m3.setName("乌克丽丽");
            m3.setTime("02:55");
            list.add(m3);
            java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<Music>>() {
            }.getType(); // 指定type
            String beanListToJson = gson.toJson(list, type); // list转换成json字符串
            System.out.println("GSON-->" + beanListToJson);
            try {
                response.setContentType("application/json; charset=GBK");
                response.setCharacterEncoding("UTF-8");
                this.response.getWriter().write(beanListToJson);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    复制代码
     response.setContentType("application/json; charset=GBK");一定要注意,如果不加这句会在你请求服务器数据的时候,中文出现乱码现象,同时在index.jsp中加入了contentType="text/html; charset=GBK"
    还有不要忘了导入Gson包。
    完了,就这样服务器就完成了,下面运行一下 run as -> myeclipse service application 成功后会弹出一个框,上面写着This is my JSP page.这就说明你已经成功创建了服务器。
    下面打开http://localhost:8080/Test2/getjson.action 下面就是服务器返回的内容了。


    基本就是这样了,又不懂的可以问我。下面说android端的,更简单了。
    创建我们的项目然后加入xutils和gson包。

    这是一个新建的项目,在activity_main.xml中我给那个TextView添加了一个id
    然后在MainActivity中实现如下:
    复制代码
    package com.example.test2;
    
    import com.lidroid.xutils.HttpUtils;
    import com.lidroid.xutils.exception.HttpException;
    import com.lidroid.xutils.http.ResponseInfo;
    import com.lidroid.xutils.http.callback.RequestCallBack;
    import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
    
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.TextView;
    
    
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            final TextView text = (TextView) findViewById(R.id.text);
            HttpUtils httpUtils = new HttpUtils();
            httpUtils.send(HttpMethod.POST, "http://192.168.199.171:8080/Test2/getjson.action", new RequestCallBack<String>() {
    
                public void onFailure(HttpException arg0, String arg1) {
                    Log.d("=====================onFailure", arg1+";"+arg0.toString());
                    
                }
    
                public void onSuccess(ResponseInfo<String> arg0) {
                    Log.d("=====================onSuccess", arg0.result);
                    text.setText(arg0.result);
                }
            
                
            });
        }
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    复制代码

    整个android端就是这样了,下面我们运行一下刚才的数据已经显示在了该TextView上。

     

    其实整个代码内容是很简单的,主要难的地方就是在环境搭建上,大家多练练吧,整个代码是我跑下来的,所以代码没有问题,如果你跑不成功就多去研究研究环境搭建。

    分享至此,以后可以往这方面多了解一下,就算不做后台开发,也要多了解了解,减少沟通成本。

     

    展开全文
  • Tomcat + Servlet 实现Android后端开发 这只是一个简单的测试项目,具体实现还需要自己学习,为创建Android后端项目提供一个思路,目前网上大多教程的开发环境都是Eclipse EE 或者过时很久,这是基于其他的教程所...

    Tomcat + Servlet 实现Android后端开发,实现一个简单的注册功能
    这只是一个简单的测试项目,具体实现还需要自己学习,为创建Android后端项目提供一个思路,目前网上大多教程的开发环境都是Eclipse EE 或者过时很久,这是基于其他的教程所编写的一个开发流程,留作记录。

    1.准备工作

    开发工具:Android Studio + IDEA 2020
    JDK版本: jdk11
    数据库:MySQL 8.0.22
    数据库可视化软件:Navicat Premium 15
    服务器:Tomcat 10

    (1)App写出基础框架
    用异步任务发送Http请求,用get和post方法
    (2)配置上述软件的环境变量

    2.创建项目

    1. 新建一个IDEA项目
    选择Maven,从原型创建,选择webapp,然后Next创建(A simple Java web application)
    在这里插入图片描述
    2.自动生成的项目结构如下
    在这里插入图片描述
    右键main新建文件夹,同时创建两个文件夹,java文件夹用来放项目代码,resource文件夹用来放资源文件
    在这里插入图片描述

    3.修改pom.xml中的项目依赖
    将Maven的jdk版本改为自己安装的jdk版本

      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
      </properties>
    

    在 dependencies中添加依赖mysql-connector-java,根据自己的mysql版本选择对应的版本

      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.22</version>
        </dependency>
      </dependencies>
    

    点击右上角按钮,加载 Maven变更
    在这里插入图片描述
    4.添加项目依赖
    打开项目结构,选择Tomcat项目依赖
    在这里插入图片描述

    3.编写Servlet代码

    1.在main/java文件夹下创建一个Servlet包,新建一个.class文件继承于HttpServlet并重写doGet和doPost方法
    resp.setContentType(“text/html;charset=utf-8”); // 设置响应报文的编码格式,避免出现中文乱码的情况

    package Servlet;
    
    import jakarta.servlet.ServletException;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    
    import java.io.IOException;
    
    public class TestServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String account = req.getParameter("account"); // 从 request 中获取名为 account 的参数的值
            String password = req.getParameter("password"); // 从 request 中获取名为 password 的参数的值
            System.out.println("account:" + account + "\npassword:" + password); // 打印出来看一看
    
            String result = "";
            if("abc".equals(account)
                    && "123".equals(password)){ // 模拟登陆账号、密码验证
                result = "Login Success! 成功了";
            }else {
                result = "Sorry! Account or password error.";
            }
            /* 这里我们只是模拟了一个最简单的业务逻辑,当然,你的实际业务可以相当复杂 */
    
            resp.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式
            PrintWriter pw = resp.getWriter(); // 获取 response 的输出流
            pw.println(result); // 通过输出流把业务逻辑的结果输出
            pw.flush();
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doPost(req, resp);
        }
    }
    

    2.在web.xml中添加Servlet
    在url-pattern中一定注意加“/”,这是访问Servlet的路径

    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class>Servlet.TestServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
      </servlet-mapping>
    </web-app>
    

    3.编辑配置
    点击左上角+号,选择Tomcat本地服务器,点击部署,选择添加工件,点击确定保存
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    4.运行项目

    如果Tomcat的log出现中文乱码,就打开tomcat安装目录的conf文件夹,打开logging.properties文件,将里面的编码格式改为GBK
    在这里插入图片描述

    服务器启动成功,会自动弹出初始网页,就是项目中的web.jsp,在地址栏输入:

    http://localhost:8080/ss_war_exploded/test?account=abc&password=123
    

    http://localhost:8080/ss_war_exploded/就是初始网页,后面跟/test就是访问上文所写的TestServlet,问号后面跟的是request参数

    出现下面的文字表示访问成功
    在这里插入图片描述
    至此,Tomcat服务器的访问就没有问题了,接下来是数据库的连接

    4.编写数据库代码

    1.用Navicat连接MySQL数据库,写连接名,输入mysql的密码,测试连接,连接成功就确定保存
    在这里插入图片描述

    2.新建一个数据库fistmysql两个用户表user_login和user_info
    在这里插入图片描述
    user_info表
    在这里插入图片描述
    user_login表

    在这里插入图片描述

    3.在java文件夹下新建一个db包,新建一个DBUtil类,用来连接数据库

    根据自己的mysql版本选择对应的Driver
    可以参考菜鸟教程的连接方法:https://www.runoob.com/java/java-mysql-connect.html

    package db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class DBUtil {
        // table
        public static final String TABLE_PASSWORD = "user_login";
        public static final String TABLE_USERINFO = "user_info";
    
        public static Connection getConnect() {
            String url="jdbc:mysql://localhost:3306/fistmysql?&useSSL=false&serverTimezone=UTC"; // 数据库的Url
            Connection connecter = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver"); // java反射,固定写法
                connecter = DriverManager.getConnection(url, "root", "1997");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                System.out.println("SQLException: " + e.getMessage());
                System.out.println("SQLState: " + e.getSQLState());
                System.out.println("VendorError: " + e.getErrorCode());
            }
            return connecter;
        }
    }
    
    

    4.新建一个注册Servlet来测试数据库

    package Servlet;
    
    import db.DBUtil;
    import jakarta.servlet.ServletException;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.HashMap;
    
    public class RegisterServlet extends HttpServlet {
    
    
        public RegisterServlet() {
            super();
        }
    
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String account = request.getParameter("account"); // 从 request 中获取名为 account 的参数的值
            String password = request.getParameter("password"); // 从 request 中获取名为 password 的参数的值
            System.out.println("account:" + account + "\npassword:" + password); // 打印出来看一看
    
            String resCode = "";
            String resMsg = "";
            String userId = "";
    
    
            /* 这里我们做一个最简单的注册逻辑,当然,你的实际业务可以相当复杂 */
            try {
                Connection connect = DBUtil.getConnect();
                Statement statement = connect.createStatement(); // Statement可以理解为数据库操作实例,对数据库的所有操作都通过它来实现
                ResultSet result;
    
                String sqlQuery = "select * from " + DBUtil.TABLE_PASSWORD + " where account='" + account + "'";
    
                // 查询类操作返回一个ResultSet集合,没有查到结果时ResultSet的长度为0
                result = statement.executeQuery(sqlQuery); // 先查询同样的账号(比如手机号)是否存在
                if(result.next()){ // 已存在
                    resCode = "201";
                    resMsg = "该账号已注册,请使用此账号直接登录或使用其他账号注册";
                    userId = "";
                } else { // 不存在
                    String sqlInsertPass = "insert into " + DBUtil.TABLE_PASSWORD + "(account,password) values('"+account+"','"+password+"')";
                    // 更新类操作返回一个int类型的值,代表该操作影响到的行数
                    int row1 = statement.executeUpdate(sqlInsertPass); // 插入帐号密码
                    if(row1 == 1){
                        String sqlQueryId = "select userId from " + DBUtil.TABLE_PASSWORD + " where account='" + account + "'";
                        ResultSet result2 = statement.executeQuery(sqlQueryId); // 查询新增记录的userId
                        if(result2.next()){
                            userId = result2.getInt("userId") + "";
                        }
                        String sqlInsertInfo = "insert into " + DBUtil.TABLE_USERINFO + "(userId) values('" + userId + "')";
                        int row2 = statement.executeUpdate(sqlInsertInfo); // 在用户信息表中插入刚注册的Id
                        if(row2 == 1){ // 两个表中都插入成功,从业务角度认定为注册成功
                            resCode = "100";
                            resMsg = "注册成功";
                        }
                    } else {
                        resCode = "202";
                        resMsg = "用户信息表插入错误";
                        userId = "";
                    }
                }
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            HashMap<String, String> map = new HashMap<>();
            map.put("resCode", resCode);
            map.put("resMsg", resMsg);
            map.put("userId", userId);
    
            response.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式
            PrintWriter pw = response.getWriter(); // 获取 response 的输出流
            pw.println(map.toString()); // 通过输出流把业务逻辑的结果输出
            pw.flush();
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
    
    

    5.同样的,在web.xml中添加这个Servlet

    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <servlet>
        <servlet-name>test</servlet-name>
        <servlet-class>Servlet.TestServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>register</servlet-name>
        <servlet-class>Servlet.RegisterServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>register</servlet-name>
        <url-pattern>/reg</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
      </servlet-mapping>
    </web-app>
    
    

    6.运行项目,在浏览器输入

    http://localhost:8080/ss_war_exploded/reg?account=root&password=123
    

    在这里插入图片描述
    注册成功,刷新一下Navicat中的数据,可以看到数据已经被添加到数据库中
    在这里插入图片描述
    再一次刷新浏览器,相当于再一次提交GET请求,对于同一个账号,就会注册失败
    在这里插入图片描述
    至此,mysql数据库也就连接成功

    展开全文
  • 简单的servlet后端实现前端Android调用传参到后台连接数据库实现查询
  • 前期准备后端(语言java,框架ssm (springmvc+mybatis),开发工具 intellij IDEA)后端(javaee)打开intellij IDEA点击create New project 选项按照步骤点击next继续点下一步这两部基本都默认,最后点击finish默认进来...

    前期准备

    后端(语言java,框架ssm (springmvc+mybatis),开发工具 intellij IDEA)

    后端(javaee)

    打开intellij IDEA

    b7189249d97015cdfa6be71c69440b86.png

    点击create New project 选项

    4e9e7f6783522db2f7be3a08f3926276.png

    按照步骤点击next

    0486e426f3ab043078dd457e4104bb5b.png

    继续点下一步

    ebc22686b7dc1b1da03f5e34ee462819.png

    这两部基本都默认,最后点击finish

    98afb7730c0d3d06096cc96e7098aba8.png

    默认进来是长这个样子,现在进行一下相关配置,才能达到我们想要的springmvc

    配置步骤

    点击File---project structure---modules在main建立java目录,一次建立包名,包名下面建立controller,exception,interceptor,mapper,po,service这些目录

    d200a60b90487d70ce9b525221402e4d.png

    目录建立好后开始配置mybatis,springmvc相关

    pom.xml添加相关libs(spring框架,mybatis,log4j,JSP tag,文件上传,json 转换,分页插件)

    e1ea172955b02817cc64728af2ddeed0.png

    接下来就是一些重要配置,而且是必要配置

    2f077f1ce427307771b33dbf1596eb8c.png

    由于时间问题就不一一说了,红色圈的就是springmvc必要配置,按照这个模板配置,方框圈就是mybatis必要配置,按照对应目录配置。

    配置完后就可以写实现了

    写个service接口,定义一个方法

    //商品查询列表

    List findItemsList(HomeItems itemsQueryVo) throws Exception;

    有了接口,就去写个实现类ItemsServiceImpl

    @Autowired

    private HomeMapper itemsMapper;

    public List findItemsList(HomeItems itemsQueryVo) throws Exception {

    return itemsMapper.findItemsList(itemsQueryVo);

    }

    itemsMapper.findItemsList(itemsQueryVo)就是直接调用HomeMapper.xml

    resultType="com.dandroid.service.po.HomeItems">

    SELECT items.* FROM items

    实现已经写好了,那我们就开始写个控制器来调用了HomeController

    由于我们要返回给前台,所以交互式就输出json给前台

    responseJson方法

    忘了一步数据库的搭建和连接配置

    我们通过navicat.exe这个工具打开mysql,输入密码建立连接

    b70d0f364b3307208a4193881b9460fe.png

    输入密码后,建立一个库为dandroid

    fbf0102d1b591a070e97cacf4b60935a.png

    建立一个表items,里面建立一些字段,注意这里的字段最好跟实体一模一样名称,在里面添加一些数据,完成以后再把db.properties里面配置一下就完成了

    af217e908b895b450823e04f859af4ac.png

    ok,最后一步就是开始运行了,idea的运行需要这样配置

    e8b1657bc0cd6b1d059bce7d2e6a0d0e.png

    点击进来后,点击左上角+号,找到tomcat server---选择local host

    1c75abe9d121bffce1d092d9b0d09f9d.png

    8220eb614b22c765ecdc2fd246d00167.png

    这三个红圈需要添加一下,第一个是自己叫个名字,第二个是切换过来,点击第三个加好,把.war加过来,点击右下角ok

    最后点击运行,运行的结果

    c629910cfcea70c637fb5f3d805763e8.png

    完美?

    no no no

    还没给前台输出json了,我们找到spring 控制器HomeController,找到@RequestMapping("/getIndexImage") 看一下我们url路径是getIndexImage,参数是@RequestParam(value = "pageNo", required = true) Integer pageNo, @RequestParam(value = "pageSize",required = false) Integer pageSize

    88515061cddf087f25485da1401aa61e.png

    这下有结果给前台了,才算完美?

    no no no

    最后一步打包放在服务器才算完美

    11b39e6066e128e0e35b98e5d4573635.png

    点击build--选择build artifacts...

    2e64475fa4f10bbcebc52ca4205bf332.png

    选择dandroid_service:war 点击build,当控制台出现Compilation completed successfully in 2s 77ms

    就是编译成功,编译成功就会在

    1178ce8c801563b52868849df1fd972b.png

    生成一个.war文件包,这个包就是上传到服务,供前端使用

    展开全文
  • Xwt手机 Xwt 的 android-backend,一个跨平台的 UI 工具包 ( ) 我只会实现它的图形部分(Xwt.Drawing)。
  • 我练手写了个大学家教APP,因为对后台服务器不熟悉,准备用bmob提供的云服务,但是现在刚接触bmob也很蛋疼。有用过bmob的吗,想问问bmob的数据库管理只能通过app代码来增删改查或者用MySQL做好了上传?...
  • 对于很多Android/ios/wp个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,每开发一款移动应用程序,就必须开发...

    Bmob简介:

        Bmob可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。
        对于很多Android/ios/wp个人移动开发者来说,开发一个具有网络功能的应用不是一件容易的事,不仅需要购买/租赁服务器,还必须掌握一门诸如Java/.net/php这类的服务器开发语言,每开发一款移动应用程序,就必须开发维护对应的服务器程序。这一切对于移动开发者来说,都是一个冗长的噩梦。
        简单易学的数据操作
        主动推送服务实时将信息推送给终端用户
        数据丰富安全 开发者无后顾之忧
    

    Bmob开发文档
    点击这里
    Bmob使用视频
    点击这里

    关于Bmob的使用后续将加以完善和补充。

    展开全文
  • 前后端一般用什么调用http post,webservice?还是其它的? 后端用什么开发
  • Android后端服务之Bmob

    2015-06-24 10:05:03
    .relpost{clear:both};
  • 方法有很多,你可以自己拿responseBody里的json,一个个字段自己解析;也可以给okhttp添加拦截器来处理response内容。...如果后端返回格式不规矩或者会变化的时候,将bean里定义的是Any或*即可比如有时返回的是这...
  • RT,求指点[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/26.gif][/img]
  • 作为一个Android开发人员,总是与UI打交道,完全没有数据操作权限,有时候会感觉很苦恼,当自己突发奇想,想写个Demo练练手,却没有后端的支持,最终无疾而终。 所以接下来,我们先搭建一台自己的服务器吧,搭建...
  • 视频地址:http://www.imooc.com/learn/254 这次学习的视频里面主要是粗浅的讲了一下移动后端服务与其提供商,然后用Bmob后端云提供的相关的SDK进行了一下简单的测试。
  • 后端工程师”的意思是负责数据提供,熟悉后端流程,熟练掌握一种后端工具的使用,学会如何使用工具...(3)独立负责Android/ios系统后台服务器端应用程序开发与维护,并提供接口文档。(4)根据产品需求完成模块设计...
  • 后端支持Android( 见截图 )和通用ARM Linux( Debian上的截图 )。之前,用于生成 Mac OS X 可执行文件的后端已经完成(到目前为止支持x86的CPU)。 hello arm android hello arm qemu 红语言...
  • android移动端后端整合开发 使用Android最新开发技术模块分离 提供后端平台
  • Unitbv Android后端 Universitatea Transilvania Brasov的Android应用后端以下是一些屏幕截图: : 如何设置项目 如何解决问题 如有疑问,请与我联系: iosifnicolae2@gmail.com 谢谢! 测试提交!
  • 设计android应用后端

    2016-10-02 15:43:14
    <p>If I need to design an entire android app and host my app on google play, and my users need to get real-time data, how would I go about designing the backend. <p>I learnt few things about views, ...
  • 3年Android后端

    2021-03-10 15:01:42
    3年Android后端 一直想写博客,但人果然还是太懒了。所以想到什么,还是立即动手吧,现在不动,可能以后都不会去动 自我介绍 先介绍博主自己,在进入大学时就开始学习 Android 开发,大四开始全职上班,17 年 7 ...
  • 玩超级出租车 Play 框架中的 SuperTaxi Android 应用后端
  • Android集成Bmob后端

    2018-02-10 01:45:22
    Bmob 后端云 全方位一体化的后端服务平台 无需再造应用后端服务 轻松拥有开发中需要的各种后端能力 功能比较多,常用的比如数据库、推送统计、IM即时通讯、短信等... 文档:http://doc.bmob.cn/data/android/index.ht
  • android后端之FireBase配置

    千次阅读 2016-06-21 13:50:36
    如果你要转载,请把转载地址标明 [我的博客]... But,由于菜,服务端代码不会玩,就一直搁浅搁浅… ——真的不是因为懒 直到前不久,我用上了搜索(Google),才发现有“云后端”这一说。经过我不
  • 记录一下bmob后端云数据库在android上的简单使用 官方文档:http://doc.bmob.cn/data/android/ 先在bmob官网创建一个表用于增删改查 字段 name age sex 创建android项目,声明权限: <!--允许联网 --> <...
  • 关于Android解密后端RSA加密的Base64字符串后端前端(Android App)关于RSA的补充参考 后端 后端的操作步骤: 后端提供了私钥给前端,假设为final String PRIVATE_KEY = “EFAASOAmldEJWeqHnfaDjH1T”; 数据先使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,774
精华内容 20,709
关键字:

android后端