Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

foxleezh發表於2017-10-09

前言

最近在跟小夥伴合作開發一款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就可以

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
之後會讓我們新建專案,這裡我們先不著急,先git clone https://github.com/G-Joker/WeaponApp ,把專案拉下來放在任意一個目錄下,然後再選擇Import Project
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
選擇我們剛才clone下來的目錄,注意這裡要選Server,Client是客戶端專案

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
點選Ok,需要選擇構建方式,我們選擇import,然後選擇gradle

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
點選下一步,配置下gradle和java的環境

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
點選Finish即進入IntelliJ主介面,這個大家都比較熟悉了,跟Android Studio幾乎一樣,我們先進行一些介面配置,調整下字型大小,自動導包等,Ctrl+Alt+S
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
配置一下JDK目錄
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
這些步驟完成後,開發環境即配置好了,但是專案還不能執行,因為還沒有配置資料庫

二、搭建資料庫

2.1 安裝MySQL

到官網下載比較慢,所以我就直接在百度上下載了,直接百度搜尋 “mysql 下載”,就可以了,我下載的檔案為mysql-5.7.17.msi,點選直接安裝,在第二步Choosing a Setup Type的時候,選擇Server only

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
然後一直Next,在輸入資料庫密碼的時候輸入App123,A大寫,為什麼輸入這個,因為WeaponApp專案裡面配置的密碼是這個
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
之後就一直Next,MySQL安裝成功,下面我們講資料庫操作

2.1 用navicat運算元據庫

navicat是個工具,可以直接到百度下載,然後連線資料庫,密碼是App123

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
新建一個資料庫test,為什麼叫test,因為WeaponApp裡配置的資料庫叫test
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
接下來匯入資料,本來這裡表是需要一個個建的,為了省事,我已經把專案的表結構都匯出來了,在Server專案下有個tools目錄,裡面有個data.sql的檔案,我們可以用navcat直接匯入所有的表
Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
這樣,我們資料庫就搭建好了,接下來就可以執行專案了

三、搭建執行環境

3.1 直接執行專案

跟Android一樣,Server也有debug模式和release模式,我們先講debug模式,這個其實比較簡單,首先確定根目錄下的gradle.properties裡DEVELOP_MODE=true,然後點選執行即可

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
然後我們就可以在瀏覽器裡輸入http://localhost:8080/home/taobaolist ,當然還有其他介面,可以參照doc目錄下的介面文件

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

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路徑

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
接下來去把專案release包打出來,我們開啟IntelliJ,首先確定根目錄下的gradle.properties裡DEVELOP_MODE=false,然後在Terminal中輸入gradlew assemble就可以了,然後在build/libs下有個Server-0.0.1-SNAPSHOT.war,這就是我們打出的release包

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
我們先把這個war包改個名字,叫api.war,然後找到tomcat的安裝目錄,裡面有個目錄叫webapps,把裡面的檔案全部刪除,然後把api.war拷貝進去,這時候api.war包會自動解壓成資料夾,說明伺服器啟動了,如果沒有自動解壓,那我們可以到tomcat的bin目錄下執行Tomcat9w.exe,然後點選下面的start

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
這樣我們就可以在瀏覽器輸入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,你們可以根據自己的情況來,開通好後就可以前往控制檯了

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

阿里雲控制檯提供了遠端控制功能,但是不太方便,因為一是瀏覽器比較卡,二是傳輸檔案不太方便,所以我一般是直接用電腦遠端連線,首先win+R,輸入mstsc

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
這時候我們需要輸入遠端ip地址,這個在阿里雲的控制檯上有,點選概覽,然後選擇伺服器

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

比如我的ip是47.95.198.174,然後輸入到剛才Win+R開啟的介面,進行如下操作即可

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API

這樣我們阿里雲的伺服器就可以訪問本地C盤和D盤上的內容了,而且速度也比瀏覽器快很多,接下來我們講如何在阿里雲上搭建伺服器執行環境。

3.4 阿里雲執行環境

阿里雲伺服器就相當於一臺電腦,所以執行環境的搭建跟我們在本地其實是一樣的。我們先要安裝MySQL,這個跟本地一樣,我們可以去伺服器的瀏覽器下載,也可以從本地拷貝過去

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
本地拷貝

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
本地拷貝的速度是比較慢的,因為遠端連線也是通過網路,所以我建議能從瀏覽器下載的都從瀏覽器下載,除非我們要釋出war包之類的才用本地拷貝。安裝完MySQL後安裝navicat,新建資料庫,匯入資料,安裝tomcat,拷貝war包到webapps下,這些都跟在本地一樣。這些工作做完後,我們在伺服器的瀏覽器上輸入http://localhost:8080/api/home/taobaolist ,如果能訪問說明伺服器環境搭建成功

3.5 在外網訪問介面

阿里雲伺服器執行環境搭建好後,我們在外網用http://47.95.198.174:8080/api/home/taobaolist 是沒法訪問的,因為阿里雲控制檯有安全控制,不是所有埠都可以在外網訪問的,這時我們需要去阿里雲控制檯設定埠

Android程式設計師搭建一個屬於自己的伺服器,不再求各種公共API
這樣我們就可以在外網用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,然後用阿里雲作為雲伺服器

相關文章