开发工具及环境:

       Eclipse、SQL Server、JDK、JRE、Android SDK、ADT;

前期工作准备:

       1.搭配Java开发环境;

       2.配置Android开发环境;

       3.在Eclipse里安装ADT插件;


开发的个人健康记录系统是个什么样子呢?A(病人)通过客户端将个人健康数据发送给服务器端上的B(医生),B查看信息后及时反馈一些医疗建议给A;在发送数据的同时,服务器将数据存入SQL数据库;客户端与JSP网站都可以对数据库进行操作。



1.客户端布局:

       布局比较简单,整体用的ScrollView滚动视图来显示全部内容,除去文字用的TextView,剩下的是Button以一定间隔排列;Button左右都是图片,中间是文字。


       用户点击不同的Button出现的窗口也不同,点击Filter时进行数据库内容筛选,可以选择显示一条记录里的某几项数据或者选择某个时段内的个人健康记录。

       响应点击事件的代码如下:

     suggest7.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {// get prompts.xml viewLayoutInflater li = LayoutInflater.from(context);View promptsView = li.inflate(R.layout.prompts6, null);AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);// set prompts.xml to alertdialog builderalertDialogBuilder.setView(promptsView);final EditText userInput = (EditText) promptsView.findViewById(R.id.editTextDialogUserInput);// set dialog messagealertDialogBuilder.setCancelable(false).setPositiveButton("OK",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int id) {// get user input and set it to result// edit texted07_msg.setText(userInput.getText());}}).setNegativeButton("Cancel",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int id) {dialog.cancel();}});// create alert dialogAlertDialog alertDialog = alertDialogBuilder.create();// show italertDialog.show();}});  

服务器网站:

网站布局上简单用了表格显示数据库查询的数据,数据筛选用了个时间控件;我的服务器代码与JSP网站是用的Eclipse的WEB项目完成的,servlet里写服务器代码,当访问网站时,根据URL-pattern映射关系调用servlet执行服务器代码;SQL数据库操作在JSP网页里(使用了JDBC,百度一下,数据库操作代码很简单的)。

Scoket通信:

Android 4.0之后,socket通信不能放在主线程中,需要新开一个子线程;

    private Thread getThread = new Thread(){@Overridepublic void run() {try {socket = new Socket(HOST, PORT);in = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8")), true);while(true){content=in.readLine();//一直接收socket通信数据}} catch (IOException ex) {ex.printStackTrace();ShowDialog("login exception" + ex.getMessage());}};};

多线程技术:

开一个线程池,当一个手机客户端与服务器端连接时,将用户添加进链表存储并放入线程池;如此便实现一个服务器对应多个客户端进行socket通信,将用户存入链表也可以方便服务器对每个客户端进行遍历。

 public void init() throws ServletException{new Thread() {public void run(){try{ServerSocket server = new ServerSocket(1245);mExecutorService = Executors.newCachedThreadPool(); //线程池Socket socket = null;while (true){socket = server.accept();SocketServer.mList.add(socket);mExecutorService.execute(new SocketServer(socket));  }}catch (IOException ex){System.out.println(ex.getMessage());}}}.start();}

发送与接收数据上的处理:

//发送String msg = ed01_msg.getText().toString() +"@"+ ed02_msg.getText().toString() +"@"+ ed03_msg.getText().toString() +"@" + ed04_msg.getText().toString() +"@"+ ed05_msg.getText().toString() +"@"+ ed06_msg.getText().toString() +"@"+ ed07_msg.getText().toString() +"@"+ ed001_msg.getText().toString() +"@"+ ed002_msg.getText().toString() +"@"+ ed003_msg.getText().toString() +"@"+ ed004_msg.getText().toString();//接收while(true) {if((msg = in.readLine())!= null) {date =SocketServer.msg.split("@",11);msg1=date[0];msg2=date[1];msg3=date[2];msg4=date[3];msg5=date[4];msg6=date[5];msg7=date[6];msg01=date[7];msg02=date[8];msg03=date[9];msg04=date[10];}



至此,简单的个人健康记录系统的基本流程叙述完了;这是我第一次写博客,写的不好请多多见谅;我的程序表达能力不是很好,希望通过写博客来慢慢加强自己的表达能力!

简单的个人健康记录系统(Android+Web)相关推荐

  1. AgentWeb , 一个简洁易用的 Android Web 库

    转自:http://www.jianshu.com/p/c80da1c41af7 AgentWeb 介绍 AgentWeb 是一个高度封装的 Android WebView ,简单易用 , 带有进度条 ...

  2. Android Web应用高级编程

    为什么80%的码农都做不了架构师?>>>    基本信息 原书名: Pro Android Web Apps: Develop for Android using HTML5, CS ...

  3. 仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]

    本文为原创分享,转载请注明出处. 1.引言 即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成"年/月/日 时: ...

  4. android改变下拉框字体颜色,有没有简单的方法来改变Android中的Spinner下拉颜色?...

    我创建我的主题以与应用程序一起使用,主题的父级是Theme.AppCompat.Light.NoActionBar 顺便说一句,我想要白色背景和黑色文字. 这是适配器代码 val adapter = ...

  5. keepalived架设简单高可用的nginx的web服务器   ----那些你不知道的秘密

    keepalived架设简单高可用的nginx的web服务器----那些你不知道的秘密 如果負載均衡軟件不使用LVS的話,那麼keepalived的配置是相當的簡單的,只需要配置好MASTER和SLA ...

  6. android fragment相机,简单的易于集成的Android相机Fragment – Camer...

    CameraFragment 一个简单的易于集成的Android相机Fragment. //you can configure the fragment by the configuration bu ...

  7. [转]使用简单的 5 个步骤设置 Web 服务器集群

    文章来源:http://www.ibm.com/developerworks/cn/linux/l-linux-ha/index.html 使用简单的 5 个步骤设置 Web 服务器集群 使用 Lin ...

  8. 计算机毕业设计Python+uniapp+安卓运动健康app(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓运动健康app(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ py ...

  9. 基于Android + Web+ MySQL设计和开发微博应用

    基于Android + Web+ MySQL设计和开发微博应用 实践内容要求 客户端效果图 源码分享 微博应用系统设计 系统功能设计 关键问题设计 实践内容要求 ①用Android开发微博客户端: ② ...

最新文章

  1. 31岁成为博导!从小乡村走出的985高校教授坦言:读书这条路最简单...
  2. php是独立服务吗,在LNMP服务器中,PHP是作为一个独立的服务存在的,这个服务叫做_______。...
  3. CUDA与Java速度比较---生成Julia数据集并画图
  4. 【Socket网络编程】15. 发送端和接收端数据大小不一致时 的分析
  5. Linus:“我删除了Linux,因为它就是个垃圾!”
  6. arma模型_R语言与计量经济学(七)ARMA模型
  7. [JavaWeb-Servlet]Servlet3.0注解配置
  8. 单例测试phpunit
  9. 授予数据库账号dba权限_深入理解 MySQL 用户和权限
  10. 【报告分享】2021制造业数字化转型路线图.pdf(附下载链接)
  11. mysqldump 导出中文乱码
  12. 即时战略类游戏:北加尔Northgard for Mac中文版
  13. 在互联网寒冬,程序员能够做什么?
  14. JavaScript中的文档碎片
  15. 数据库事务Transaction)那点事
  16. 程序员如何轻松实现数据可视化?
  17. Linux如何更改root用户密码
  18. 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...
  19. PLSQL导入Excel遇到的奇怪问题
  20. 【人脸识别】视频帧聚合:Discriminative Aggregation Network

热门文章

  1. 1、从键盘输入一个小写字母,转化为大写字母并输出。
  2. 植物大战僵尸一:多线程修改UI界面,游戏必备API
  3. maven工程提示pom.xml无法解析org.apache.maven.plugins:maven-resources-...
  4. mysql5.5升级至5.7
  5. python识别火车票二维码_Python实现查询12306火车票信息
  6. 12306抢票:极限并发带来的思考
  7. 怎么该软件创建桌面快捷方式
  8. 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第一章 概念和工具(二)
  9. 升级 Elasticsearch
  10. 华为快应用IDE:微信小程序转换成快应用功能火热公测啦!