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,然后用阿里云作为云服务器

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容