论文部分内容阅读
【摘要】 Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。随着Android系统的迅猛发展,它已经成为全球范围内具有广泛影响力的操作系统[1]。软件包括客户端和服务器端,属于C/S结构。客户端实现于Android平台的智能手机上,完成数据输入、信息显示的功能。服务器端由Linux主机作为服务器,负责数据的接收、处理和回传以及通信服务。
【关键字】 Android Linux 编程软件
一、需求分析和可行性分析
1、需求分析。对基于Android系统的C语言手机编程软件的功能性需求分析如下:界面设计应该简洁明了,使用户操作方便。程序运行的结果应有清晰明确的显示。操作按钮和菜单设置合理。各模块分区明确,相互切换方便。尽可能压缩客户端的大小。对基于Android系统的C语言手机编程软件的非功能性需求分析如下:本论文研究开发的软件是基于Android 2.2开发,适用于Android 2.2及以上版本。安全性需求是在用戶没有得到需要的结果时系统会尽可能的为用户提供有用的错误信息提示,使用户可以很明确的知道错误是出自何处该如何处理。
2、可行性分析。技术上的可行性可以从硬件的性能要求,软件的性能要求和开发者自身技术要求等几个方面去考虑。在硬件平台方面:基于Android系统的C语言手机编程软件的开发环境Eclipse可以基于Windows、Linux,具有良好的跨平台兼容性。在软件平台方面:Android操作系统已经成熟稳定并且有大量的Android开发经验。Android系统是一个开源的平台,对Java具有良好的兼容性。Java语言是一个非常成熟的面向对象语言,它有着良好的可移植性、安全性,且支持可视化图形界面[2]。
二、系统总体结构设计
2.1系统架构设计
基于Android系统的C语言手机编程软件由客户端和服务器组成,前台和后台实现分离,客户端和服务器通过SOCKET进行通信。系统架构如图1所示。
客户端是在Android系统下实现用户登录及编写代码的功能,服务器是在Linux下使用GCC编译器来编译和运行代码,Mysql数据库用来存储用户的用户名和密码以及代码和运行结果。
2.2 功能模块设计
基于Android系统的C语言手机编程软件应具有如下功能:用户可以在注册登录之后进行个人设置操作,修改个人信息和登录密码。用户可以编辑代码,然后进行编译和运行。可以对代码进行保存,打开已经保存过的代码进行修改。功能模块如图2所示。
三、系统实现
客户端包含了一个编辑框,用来进行C语言代码的编写,两个按钮实现编译和运行,菜单栏实现新建、保存、打开、退出。保存是将编写完成的代码以文本形式保存在本机上。打开是通过单项选择消息框来选择打开已经保存的代码。
客户端与服务器socket连接:服务器端将端口打开,并将IP地址和传输所使用的协议进行分配一个套接口的描述字及其所用的资源。int server_sockfd = socket(AF_INET, SOCK_STREAM, 0)。然后使用bind()将本地地址与套接字进行捆绑,成功之后便可使用listen()来监听客户端与服务器的连接情况。bind(server_sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr))。真正与客户端连接是在accept()函数成功之后,accept(server_sockfd, (struct sockaddr *)&client_addr,&len)。在成功调用之后,从socket的等待连接队列中抽取第一个连接,传递一个与socket同类的新的套接口并返回句柄。
数据处理:使用Linux的GNU编译套件对数据进行处理。对于数据回传,即将编译和运行结果回传到客户端,首先要确定回传的是哪一个文件夹,是error.txt还是sussess.txt,这里使用的是文件交换方法。选定之后,将文件写入到buffer中,使用send回传到socket。
四、结论
本设计主要完成的内容是基于Android的编程软件的设计与实现。包括在客户端编辑代码,保存和打开代码以及将代码发送到服务器端进行编译和运行并将结果返回显示到客户端。虽然完成了基本的功能,但语法高亮等功能没有实现,还需不断改进完善。
参 考 文 献
[1] 李刚:疯狂Android讲义[M],电子工业出版社,2013.3
[2] Bruce Eckel:Java编程思想[M],机械工业出版社,2013.8
【关键字】 Android Linux 编程软件
一、需求分析和可行性分析
1、需求分析。对基于Android系统的C语言手机编程软件的功能性需求分析如下:界面设计应该简洁明了,使用户操作方便。程序运行的结果应有清晰明确的显示。操作按钮和菜单设置合理。各模块分区明确,相互切换方便。尽可能压缩客户端的大小。对基于Android系统的C语言手机编程软件的非功能性需求分析如下:本论文研究开发的软件是基于Android 2.2开发,适用于Android 2.2及以上版本。安全性需求是在用戶没有得到需要的结果时系统会尽可能的为用户提供有用的错误信息提示,使用户可以很明确的知道错误是出自何处该如何处理。
2、可行性分析。技术上的可行性可以从硬件的性能要求,软件的性能要求和开发者自身技术要求等几个方面去考虑。在硬件平台方面:基于Android系统的C语言手机编程软件的开发环境Eclipse可以基于Windows、Linux,具有良好的跨平台兼容性。在软件平台方面:Android操作系统已经成熟稳定并且有大量的Android开发经验。Android系统是一个开源的平台,对Java具有良好的兼容性。Java语言是一个非常成熟的面向对象语言,它有着良好的可移植性、安全性,且支持可视化图形界面[2]。
二、系统总体结构设计
2.1系统架构设计
基于Android系统的C语言手机编程软件由客户端和服务器组成,前台和后台实现分离,客户端和服务器通过SOCKET进行通信。系统架构如图1所示。
客户端是在Android系统下实现用户登录及编写代码的功能,服务器是在Linux下使用GCC编译器来编译和运行代码,Mysql数据库用来存储用户的用户名和密码以及代码和运行结果。
2.2 功能模块设计
基于Android系统的C语言手机编程软件应具有如下功能:用户可以在注册登录之后进行个人设置操作,修改个人信息和登录密码。用户可以编辑代码,然后进行编译和运行。可以对代码进行保存,打开已经保存过的代码进行修改。功能模块如图2所示。
三、系统实现
客户端包含了一个编辑框,用来进行C语言代码的编写,两个按钮实现编译和运行,菜单栏实现新建、保存、打开、退出。保存是将编写完成的代码以文本形式保存在本机上。打开是通过单项选择消息框来选择打开已经保存的代码。
客户端与服务器socket连接:服务器端将端口打开,并将IP地址和传输所使用的协议进行分配一个套接口的描述字及其所用的资源。int server_sockfd = socket(AF_INET, SOCK_STREAM, 0)。然后使用bind()将本地地址与套接字进行捆绑,成功之后便可使用listen()来监听客户端与服务器的连接情况。bind(server_sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr))。真正与客户端连接是在accept()函数成功之后,accept(server_sockfd, (struct sockaddr *)&client_addr,&len)。在成功调用之后,从socket的等待连接队列中抽取第一个连接,传递一个与socket同类的新的套接口并返回句柄。
数据处理:使用Linux的GNU编译套件对数据进行处理。对于数据回传,即将编译和运行结果回传到客户端,首先要确定回传的是哪一个文件夹,是error.txt还是sussess.txt,这里使用的是文件交换方法。选定之后,将文件写入到buffer中,使用send回传到socket。
四、结论
本设计主要完成的内容是基于Android的编程软件的设计与实现。包括在客户端编辑代码,保存和打开代码以及将代码发送到服务器端进行编译和运行并将结果返回显示到客户端。虽然完成了基本的功能,但语法高亮等功能没有实现,还需不断改进完善。
参 考 文 献
[1] 李刚:疯狂Android讲义[M],电子工业出版社,2013.3
[2] Bruce Eckel:Java编程思想[M],机械工业出版社,2013.8