这是我的本科毕业设计课题,也是我首次接触安卓开发,特此记录。
本系统最终实现的是两个安卓手机之间进行交互,一个作为客户端,另一个作为服务器端,连接采用socket。要求实现以下功能:
(1)客户端呈现可执行任务包(Job Package);
(2)客户端发送任务包;
(3)服务器接收任务包;
(4)服务器解析并执行任务包;
(5)服务器通知客户端任务执行完成。
这是系统交互图:
首先,服务器端与客户端分别启动,客户端在启动之后,还会显示出一个列表,该列表内容为当前所有的可执行任务包。图中红框部分里面的内容是一系列循环执行的动作,即:首先在客户端,由用户从可执行任务包列表中选择一个任务包并确认要将其发送给服务器端,用户确认发送后,客户端即开始向服务器发送连接请求,连接服务器端成功之后,客户端即开始可执行任务包的发送,由服务器端接收,一旦服务器端完成了可执行任务包的接收,就会开始对任务包进行解析并完成执行动作,执行成功后,向客户端发送一个回执消息,告知客户端任务执行成功。当服务器端决定不再接收客户端发来的可执行任务包时,便会退出界面,断开连接之后服务器端将会将所有来自于客户端的可执行任务包删除。
这是系统架构图:
客户端的任务包发送器会向任务包选择器发送请求,任务包选择器接收请求后从任务包仓库中选择相应可执行任务包,任务包仓库可以为一个文件夹,该文件夹内存放的全部为当前客户端具有的可执行任务包。任务包选择器会将选择到的可执行任务包交给任务包发送器,再由任务包发送器发送给服务器端,由服务器端的任务包接收器完成可执行任务包的接收。接收完成后,任务包接收器会将接收到的可执行任务包提交给任务包解析器,任务包解析器对该任务包进行解析,提取出任务包内可执行代码的相关配置文件并读取,再将任务包提交至引擎执行。
采用技术及工具:
Android 4.3
Android Studio 2.0.0