Android程序员搭建一个属于自己的服务器,不再求各种公共API

前言

最近在跟小伙伴合作开发一款app,苦于没有合适的公共api接口,所以决定自己搭建一个服务器,目前已实现注册、登录,爬虫定时拉取闲鱼首页更新数据库。

app传送门 一个极致的集大成App

搭建服务器需要些什么工作

本文所介绍的服务器都是入门级别的,适合移动端同学自己搭建玩玩,还没有达到商业开发水平,大牛请莫见怪。

我们搭建服务器主要有以下几个步骤:

  • 1.搭建开发环境,IntelliJ + spring-boot + mybatis
  • 2.搭建数据库,mysql + navicat
  • 3.搭建运行环境,tomcat + 阿里云

一、搭建开发环境

本文安装环境是基于Windows的,Linux和Mac环境也都大同小异,我就不一一介绍了,如果有问题,可以在github上留言 https://github.com/foxleezh/

1.1 IntelliJ安装

作为Android开发,基本都习惯使用Android Studio,而IntelliJ跟它几乎是一模一样,因为Android Studio正是基于它开发的,所以它是Android程序员开发服务器最好的选择。

首先我们需要去下载一个IntelliJ安装包,https://www.jetbrains.com/idea/download/
这个软件是需要注册的,不过也可以试用。

1.2 配置IntelliJ

第一次运行会进入下面界面,我们选择Darcula风格,然后一直Next就可以

image

之后会让我们新建项目,这里我们先不着急,先git clone https://github.com/G-Joker/WeaponApp ,把项目拉下来放在任意一个目录下,然后再选择Import Project
image

选择我们刚才clone下来的目录,注意这里要选Server,Client是客户端项目

image

点击Ok,需要选择构建方式,我们选择import,然后选择gradle

image

点击下一步,配置下gradle和java的环境

image

点击Finish即进入IntelliJ主界面,这个大家都比较熟悉了,跟Android Studio几乎一样,我们先进行一些界面配置,调整下字体大小,自动导包等,Ctrl+Alt+S


image

image

image

配置一下JDK目录


image

这些步骤完成后,开发环境即配置好了,但是项目还不能运行,因为还没有配置数据库

二、搭建数据库

2.1 安装MySQL

到官网下载比较慢,所以我就直接在百度上下载了,直接百度搜索 “mysql 下载”,就可以了,我下载的文件为mysql-5.7.17.msi,点击直接安装,在第二步Choosing a Setup Type的时候,选择Server only


image

然后一直Next,在输入数据库密码的时候输入App123,A大写,为什么输入这个,因为WeaponApp项目里面配置的密码是这个


image

之后就一直Next,MySQL安装成功,下面我们讲数据库操作

2.1 用navicat操作数据库

navicat是个工具,可以直接到百度下载,然后连接数据库,密码是App123


image

新建一个数据库test,为什么叫test,因为WeaponApp里配置的数据库叫test


image

接下来导入数据,本来这里表是需要一个个建的,为了省事,我已经把项目的表结构都导出来了,在Server项目下有个tools目录,里面有个data.sql的文件,我们可以用navcat直接导入所有的表
image

这样,我们数据库就搭建好了,接下来就可以运行项目了

三、搭建运行环境

3.1 直接运行项目

跟Android一样,Server也有debug模式和release模式,我们先讲debug模式,这个其实比较简单,首先确定根目录下的gradle.properties里DEVELOP_MODE=true,然后点击运行即可

image

然后我们就可以在浏览器里输入http://localhost:8080/home/taobaolist ,当然还有其他接口,可以参照doc目录下的接口文档

image

3.2 运行在tomcat

我们的项目需要挂到tomcat上,这样服务就可以一直开着了,毕竟开发工具你不可能一直开着。首先我们需要去下载一个tomcat,下载地址http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M27/bin/apache-tomcat-9.0.0.M27.exe 。下载好后直接运行,中间有一步选择JDK路径

image

接下来去把项目release包打出来,我们打开IntelliJ,首先确定根目录下的gradle.properties里DEVELOP_MODE=false,然后在Terminal中输入gradlew assemble就可以了,然后在build/libs下有个Server-0.0.1-SNAPSHOT.war,这就是我们打出的release包

image

我们先把这个war包改个名字,叫api.war,然后找到tomcat的安装目录,里面有个目录叫webapps,把里面的文件全部删除,然后把api.war拷贝进去,这时候api.war包会自动解压成文件夹,说明服务器启动了,如果没有自动解压,那我们可以到tomcat的bin目录下运行Tomcat9w.exe,然后点击下面的start

image

这样我们就可以在浏览器输入http://localhost:8080/api/home/taobaolist 直接访问了,这里注意一点,和直接debug运行不同,地址8080后要加一个api的路径,这个名字跟war包的名字相同

至此,一个本地版的服务器就搭建起来了,如果其他电脑和你的电脑在同一个局域网内,就可以通过ip地址访问服务器了,比如你的ip是192.168.1.101,那么其他电脑就可以用http://192.168.1.101:8080/api/home/taobaolist 访问,如果要外网也可以访问,那就要搭建云服务器了,接下来我将讲如何搭建阿里云。

3.3 搭建阿里云

搭建阿里云之前,你需要去买一个阿里云的服务器,我是买的免费6个月的,一共9.9,地址https://free.aliyun.com/ ,买了之后再进入这个页面,它会叫你去开通各项免费服务,这里主要是 “云服务器 ECS”,其他的东西暂时用不着,开通的时候会让你选择什么操作系统,我选的是Windows Server 2012中文版,主要是平时开发用的Windows,你们可以根据自己的情况来,开通好后就可以前往控制台了

image

阿里云控制台提供了远程控制功能,但是不太方便,因为一是浏览器比较卡,二是传输文件不太方便,所以我一般是直接用电脑远程连接,首先win+R,输入mstsc

image

这时候我们需要输入远程ip地址,这个在阿里云的控制台上有,点击概览,然后选择服务器

image
image

比如我的ip是47.95.198.174,然后输入到刚才Win+R打开的界面,进行如下操作即可

image

这样我们阿里云的服务器就可以访问本地C盘和D盘上的内容了,而且速度也比浏览器快很多,接下来我们讲如何在阿里云上搭建服务器运行环境。

3.4 阿里云运行环境

阿里云服务器就相当于一台电脑,所以运行环境的搭建跟我们在本地其实是一样的。我们先要安装MySQL,这个跟本地一样,我们可以去服务器的浏览器下载,也可以从本地拷贝过去

image

本地拷贝

image

本地拷贝的速度是比较慢的,因为远程连接也是通过网络,所以我建议能从浏览器下载的都从浏览器下载,除非我们要发布war包之类的才用本地拷贝。安装完MySQL后安装navicat,新建数据库,导入数据,安装tomcat,拷贝war包到webapps下,这些都跟在本地一样。这些工作做完后,我们在服务器的浏览器上输入http://localhost:8080/api/home/taobaolist ,如果能访问说明服务器环境搭建成功

3.5 在外网访问接口

阿里云服务器运行环境搭建好后,我们在外网用http://47.95.198.174:8080/api/home/taobaolist 是没法访问的,因为阿里云控制台有安全控制,不是所有端口都可以在外网访问的,这时我们需要去阿里云控制台设置端口

image

这样我们就可以在外网用http://47.95.198.174:8080/api/home/taobaolist 访问了,当然我们可以把端口8080改成80,这样我们就可以用http://47.95.198.174/api/home/taobaolist 访问了,这个需要我们配置服务器的tomcat,打开tomcat下面的conf目录,里面有个server.xml

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

将port改成80即可,然后同样需要在阿里云控制台配置80端口

如果你想把ip地址变成域名访问,比如http://app.foxleezh.me/api/home/taobaolist (目前要备案无法访问),那还要去买域名,做一下域名映射就行了,这个比较简单,本文就不介绍了

小结

本文主要介绍如何搭建一个简单的服务器供Android客户端访问,主要有以下几个方面:

1.搭建开发环境,主要是用IntelliJ开发,框架是Spring-Boot和Mybatis
2.搭建数据库,数据库用MySQL,操作工具是navicat
3.搭建运行环境,挂载容器用Tomcat,然后用阿里云作为云服务器

推荐阅读更多精彩内容