文章列表
- 从零开始搭建一个联网Android APP(一)—— 工具和基本概念介绍
- 从零开始搭建一个联网Android APP(二)—— 服务器端程序
- 从零开始搭建一个联网Android APP(三)—— Android端程序
本文源码
注:该工程有两个branch,master为离线版本,所有功能集成到Android端,便于使用;online为在线版本,适合喜欢折腾的人
注:本系列博客主要重点在于服务器端的程序开发、部署和Android端如何与服务器端通信,不涉及具体的Android开发内容。
整体概述
目标效果:多台Android设备共享同一份数据,一个设备更改信息后能够立刻同步到所有设备。
这里以一个小型记账本软件为例,讲述整个流程
需求:所有人共享一份数据,每个人都可以添加新的账单,可统计共花了多少钱和人均等
基本原理
账单数据储存在服务器端的数据库(sqlite3)内部->
client通过okhttp3向server提交请求->
server收到请求后读取后端数据库信息(进行逻辑处理)并以JSON格式返回->
client利用GSON解析返回的数据->
server端nginx默认监听云服务器的80端口(Http端口),并将传来的数据转发给gunicorn运行的端口(通过nginx的配置文件实现),然后python编写的程序解析数据,并作出反应。
涉及软件
- 服务器端
python3 —— 编写服务器端实现代码
flask —— 轻量级web框架
sqlite3 —— 轻量级数据库
gunicorn —— 运行python程序
nginx —— 反向代理,转发请求,监听端口
- Android端
Android Studio —— 开发程序
okhttp3 —— 网络请求库
GSON —— JSON格式库
- 电脑端:
WinSCP —— 图形化SFTP客户端,用于访问远程服务器的文件
(Mac下可用FileZilla代替)DB Browser forSQLite —— 用于查看.db数据库文件
(该软件同时支持Windows和Mac)SecureCRT —— 终端仿真程序,用于Windows下登录Unix或Linux服务器主机
(Mac下可用Terminal的SSH功能代替)
可选:
- NotePad++和插件NppFTP —— 同样也是用于远程访问服务器端文件,同时可以直接在线编辑代码,保存后自动上传至服务器端(直接用SFTP+密钥/密码登录)