Trang i LỜI CẢM ƠN Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản phẩm của công nghệ Một trong những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống Vì vậy em đã lựa chọn đề tài “Ứng Dụng Bác Sĩ Tại Gia trên hệ điều hành Android ” để làm đồ án với ý nghĩa mang tính thực tế Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ hướng dẫn tận tình của các thầy giáo, cô giáo trong bộ môn lập trình – Khoa Khoa Học Máy Tính – Trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt – Hàn đã giúp em hoàn thành được đồ án này Em xin chân thành cảm ơn giảng viên Võ Hoàng Phương Dung – người trực tiếp hướng dẫn đã tận tình hướng dẫn và giúp đỡ em hoàn thành cuốn đồ án này Một lời cảm ơn sâu sắc nữa em muốn gửi tới toàn thể thầy cô giáo đã trang bị cho em những kiến thức cơ bản cần thiết trong những năm học vừa qua để em có thể thực hiện tốt cuốn đồ án này cũng như đủ tự tin để làm việc sau này Em xin chân thành cảm ơn! Trang ii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC TỪ VIẾT TẮT iv DANH MỤC CÁC HÌNH VẼ v CHƢƠNG 1 : CHƢƠNG MỞ ĐẦU 1 1 1 LÝ DO CHỌN ĐỀ TÀI 1 1 2 MỤC TIÊU VÀ NHIỆM VỤ 1 1 3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG 2 1 4 PHƢƠNG PHÁP NGHIÊN CỨU 2 1 5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG 2 CHƢƠNG 2 : CƠ SỞ LÝ THUYẾT 3 2 1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID 3 2 1 1 Tổng quan cấu trúc của Android 3 2 1 2 Sơ lƣợc các phiên bản Android 4 2 1 3 Các thành phần cơ bản của ứng dụng Android 5 2 2 LẬP TRÌNH TRÊN HỆ ĐIỀU HÀNH ANDROID 9 2 2 1 Ngôn ngữ JAVA 9 2 2 1 1 Tổng quan về ngôn ngữ JAVA 9 2 2 1 2 Một số tính chất ngôn ngữ JAVA 9 2 2 2 Ngôn ngữ JSON 12 2 2 3 Ngôn ngữ XML 12 2 2 4 Ngôn ngữ PHP 13 2 3 MÁY ẢO DALVIK VÀ ANDROID SDK 14 2 3 1 Máy ảo Dalvik 14 2 3 2 Android SDK 15 2 3 3 Android Emulator 16 CHƢƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 18 3 1 MÔ TẢ HỆ THỐNG 18 3 1 1 Y êu cầu chức năng : 18 3 1 2 Yêu cầu phi chức năng : 18 3 1 3 Yêu cầu hệ thống 18 3 2 PHÂN TÍCH THIẾT KẾ 19 3 2 1 Mô hình hoá yêu cầu 19 3 2 2 Mô hình hóa khái niệm 23 Trang iii 3 2 3 Mô hình hóa tƣơng tác 24 3 2 3 1 Biểu đồ trình tự 24 3 2 3 2 Biểu đồ cộng tác 31 3 2 4 Mô hình hóa hành vi 37 3 2 4 1 Biểu đồ trạng thái 37 3 2 4 2 Biểu đồ hành vi 38 3 2 5 Thiết kế chi tiết biểu đồ lớp 41 3 2 6 Thiết kế kiến trúc vật lý 41 3 2 6 1 Biểu đồ thành phần 41 3 2 6 2 Biểu đồ triển khai 42 CHƢƠNG 4 : XÂY DỰNG ỨNG DỤNG 43 4 1 DEMO CHƢƠNG TRÌNH 43 4 1 1 Xây dựng chức năng cập nhật dữ liệu của Web Services 43 4 1 2 Xây dựng chức năng xử lý của Web Services 43 4 1 3 Đọc dữ liệu từ file JSON 44 4 1 4 Truyền dữ liệu qua các form 45 4 2 GIAO DIỆN CHƢƠNG TRÌNH 46 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 49 DANH MỤC TÀI LIỆU THAM KHẢO 50 NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN 51 Trang iv DANH MỤC CÁC TỪ VIẾT TẮT API : Application Programming Interface (Giao diện lập trình ứng dụng) CPU : Central Processing Unit (Đơn vị xử lý trung tâm) CSDL : Cơ sở dữ liệu PHP : Hypertext Preprocessor (Ngôn ngữ lập trình kịch bản) HTML : HyperText Markup Language (Ngôn ngữ Đánh dấu Siêu văn bản) JSON : JavaScript Object Notation (Định dạng trao đổi dữ liệu cực nhẹ) OOP : object- oriented programming (Lập trình hướng đối tượng) OHA : Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng) XML : eXtensible Markup Language (Ngôn ngữ Đánh dấu Mở rộng) SDK : Software Development Kit (Bộ công cụ phát triển phần mềm) DM: Danh mục Trang v DANH MỤC CÁC HÌNH VẼ Hình 2 1 Các thành phần của hệ điều hành Android 4 Hình 2 2 Logo và tên các phiên bản Android 5 Hình 2 3 Mô hình hoạt động của Activity 8 Hình 2 4 Cách biên dịch chương trình truyền thống 10 Hình 2 5 Cơ chế biên dịch chương trình của Java 10 Hình 2 6 Môi trường phát triển ứng dụng Android trong Eclipse 16 Hình 2 7 Android Emulator 17 Hình 3 1 Kiến trúc hệ thống 18 Hình 3 2 Biểu đồ trường hợp sử dụng Uses case 21 Hình 3 3 Uses case trường hợp cập nhật DM Loại bệnh 21 Hình 3 4 Uses case trường hợp sử dụng Cập nhật DM Bệnh 22 Hình 3 5 Uses case trường hợp Cập nhật Chi tiết bệnh 22 Hình 3 6 Uses case trường hợp Tìm kiếm 22 Hình 3 7 Biểu đồ lớp biên 23 Hình 3 8 Biểu đồ lớp điều khiển 23 Hình 3 9 Biểu đồ lớp thực thể 24 Hình 3 10 Biểu đồ trình tự Mở hệ thống 24 Hình 3 11 Biểu đồ trình tự Đóng hệ thống 25 Hình 3 12 Biểu đồ trình tự Thêm DM Loại bệnh 25 Hình 3 13 Biểu đồ trình tự Hiệu chỉnh DM Loại bệnh 26 Hình 3 14 Biểu đồ trình tự Xóa DM Loại bệnh 26 Hình 3 15 Biểu đồ trình tự Thêm DM Bệnh 27 Hình 3 16 Biểu đồ trình tự Hiệu chỉnh DM Bệnh 27 Hình 3 17 Biểu đồ trình tự Xóa DM Bệnh 28 Hình 3 18 Biểu đồ trình tự Thêm Chi tiết bệnh 28 Hình 3 19 Biểu đồ trình tự Hiệu chỉnh Chi tiết bệnh 29 Hình 3 20 Biểu đồ trình tự Xóa Chi tiết bệnh 29 Hình 3 21 Biểu đồ trình tự Tìm Kiếm Bằng Web Services 30 Hình 3 22 Biểu đồ trình tự Gửi góp ý 30 Trang vi Hình 3 23 Biểu đồ trình tự Gọi cấp cứu 31 Hình 3 24 Biểu đồ cộng tác Mở hệ thống 31 Hình 3 25 Biểu đồ cộng tác Đóng hệ thống 31 Hình 3 26 Biểu đồ cộng tác Thêm DM Loại bệnh 32 Hình 3 27 Biểu đồ cộng tác Hiệu chỉnh DM Loại bệnh 32 Hình 3 28 Biểu đồ cộng tác Xóa DM Loại bệnh 33 Hình 3 29 Biểu đồ cộng tác Thêm DM Bệnh 33 Hình 3 30 Biểu đồ cộng tác Hiệu chỉnh DM Bệnh 34 Hình 3 31 Biểu đồ cộng tác Xóa DM Bệnh 34 Hình 3 32 Biểu đồ cộng tác Thêm Chi Tiết Bệnh 35 Hình 3 33 Biểu đồ cộng tác Hiệu chỉnh chi tiết bệnh 35 Hình 3 34 Biểu đồ cộng tác Xóa Chi tiết bệnh 36 Hình 3 35 Biểu đồ cộng tác Tìm kiếm bằng Web Services 36 Hình 3 36 Biểu đồ cộng tác Gửi góp ý 37 Hình 3 37 Biểu đồ cộng tác Gọi cấp cứu 37 Hình 3 38 Biểu đồ trạng thái Mở hệ thống 37 Hình 3 39 Biểu đồ trạng thái Tìm kiếm 38 Hình 3 40 Biểu đồ trạng thái Gửi góp ý 38 Hình 3 41 Biểu đồ trạng thái Gọi cấp cứu 38 Hình 3 42 Biểu đồ hành vi Mở hệ thống 38 Hình 3 43 Biểu đồ hành vi Cập Nhật DM Loại bệnh 39 Hình 3 44 Biểu đồ hành vi Cập Nhật DM Bệnh 39 Hình 3 45 Biểu đồ hành vi Chi tiết bệnh 40 Hình 3 46 Biểu đồ hành vi Tìm kiếm 40 Hình 3 47 Biểu đồ hành vi Gửi góp ý 40 Hình 3 48 Biểu đồ hành vi Gọi cấp cứu 41 Hình 3 49 Biểu đồ lớp mức chi tiết 41 Hình 3 50 Biểu đồ thành phần 42 Hình 3 51 Biểu đồ triển khai 42 Hình 4 1 Hình ảnh Web Services 43 Hình 4 2 Quá trình xử lý của Web Services 43 Trang vii Hình 4 3 Mô hình xác định mảng giá trị trong JSON 45 Hình 4 4 Mô hình trao đổi dữ liệu giữa 2 Activity 45 Hình 4 5 Cấu trúc 1 Intent 45 Hình 4 6 Mục lục loại bệnh 46 Hình 4 7 Mục lục bệnh 46 Hình 4 8 Chi tiết bệnh 47 Hình 4 9 Gọi cấp cứu 47 Hình 4 10 Góp ý 47 Hình 4 11 Giới thiệu 47 Hình 4 12 Tìm kiếm bệnh 48 Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 1 CHƢƠNG 1 : CHƢƠNG MỞ ĐẦU 1 1 LÝ DO CHỌN ĐỀ TÀI Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường Với giá thành ngày càng rẻ và các lợi ích đem lại, các thiết bị đó ngày càng được sử dụng nhiều và phổ biến Một nền tảng được sử dụng trong các thiết bị đó là hệ điều hành thông minh Android của Google Do vậy đi cùng việc phát triển và sử dụng các thiết bị phần cứng một cách hiệu quả thì việc phát triển các ứng dụng phần mềm chạy trên nền Android càng lúc càng tăng cao Các thiết bị di động ngày càng mạnh mẽ với khả năng xử lí các tác vụ mà chúng ta khó c ó thể tưởng tượng trước đây vài năm Những chiếc điện thoại thời trang và tiện dụng với những tính năng ưu việt về phần cứng Trong khi việc phát triển nền tảng di động hiện nay chủ yếu xây dựng trên các hệ điều hành độc quyền, hạn chế các ứng dụng của bên thứ ba, sự ra đời của Android đã mang lại một giải pháp mở Không bị hạn chế, các lập trình viên Android tự do viết các ứng dụng tận dụng tối đa sự phát triển mạnh mẽ của phần cứng cho điện thoại di động Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên và chiếm một thị phần lớn trong thị trường di động Việc sử dụng các thiết bị số ngoài khả năng hỗ trợ con người trong công việc, giải trí mà còn giúp con người tiết kiệm thời gian hơn vào nhiều công việc thực tiễn trong đời sống hằn g ngày Hiện nay việc cứu chữa và tự mình chấn đoán những bệnh thông thường của con người ngày càng hạn hẹp, sự thiếu đi kiến thức cũng như thực tiễn nhiều lúc đưa ra những phán đoán sai dẫn đến nguy hiểm cho con người Trong cuộc sống hiện nay việc trang bị những kiến thức đó không còn phổ biến và thường xuyên nữa Vì vậy tìm một cách chữa hợp lý và phán đoán đúng những triệu chứng bệnh kịp thời giúp cho việc chữa bệnh nhanh chóng và hiệu quả Từ những lý do trên nên em quyết định chọn đề tài “Ứng Dụng Bác Sĩ Tại Gia trên hệ điều hành Android” để làm đồ án tốt nghiệp 1 2 MỤC TIÊU VÀ NHIỆM VỤ Mục tiêu: Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để hoàn thành được ứng dụng có thể tìm kiếm nhanh và chính xác các bệnh Đưa ra các xử lý nhanh chóng Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 2 Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền A ndroid Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ngữ JAVA, tương tác với các tài nguyên của hệ thống Tìm hiểu xây dựng một dịch vụ web trên nền php sử dụng hệ cơ sở dữ liệu MySQL Nhiệm vụ: Đọc các tài liệu liên quan về bộ thư viện lập trình trên nền Android Tìm hiểu các dịch vụ liên quan đến ứng dụng 1 3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG Đối tƣợng : Ngôn ngữ JAVA, PHP, JSON, XML Hệ cơ sở dữ liệu MySQL Công cụ Android SDK Eclipse Hệ điều hành và tài nguyên hệ thống Android Phạm vi: Đề tài chỉ dừng lại ở khuôn khổ tìm kiếm các loại bệnh và bệnh, hướng dẫn cách nhận biết các bệnh, cách xử lý các bệnh đó sao cho nhanh chóng và hợp lý Ứng dụng được viết trên nền Android 2 3 1 4 PHƢƠNG PHÁP NGHIÊN CỨU Đọc sách và các tài liệu tham khảo tìm được 1 5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG Chương trình có thể áp dụng vào cuộc sống hàng ngày để xử lý cách bệnh thường gặp, cách chữa trị nhanh chóng và hiệu quả hơn Ứng dụng giúp con người như một bác sĩ tại nhà Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 3 CHƢƠNG 2 : CƠ SỞ LÝ THUYẾT 2 1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID Android là hệ điều hành trên các thiết bị số di động như smartphone và tablet (và hiện nay là cả trên một số đầu phát HD, HD Player) phát triển bởi Google và dựa trên nền tảng Linux Trước đây, Android được phát triển bởi công ty liên hợp Android Vào năm 2005, Google đã mua lại Android nằm trong chiến lược tiến vào thị trường di động Google muốn Android trở thành nền tảng “mở” và miễn phí Do vậy hầu hết mã nguồn của Android được phát hành theo giấy phép mã nguồn mở Apache nên bất cứ ai muốn sử dụng Android có thể download toàn bộ mã nguồn Hơn nữa các nhà sản xuất phần cứng có thể thêm các thành phần mở rộng độc quyền của hãng để tạo ra các sản phẩm khác nhau Chính mô hình phát triển đơn giản này khiến Android trở nên rất hấp dẫn Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình Hiện tại có khoảng hơn 250,000 ứng dụng cho Android OS và vào khoảng hơn 375,000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2 Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2 8 triệu dòng mã C, 2 1 triệu mã Java và 1 75 triệu dòng mã C++ 2 1 1 Tổng quan cấu trúc của Android Nói một cách đơn giản thì Android bao gồm ba thành phần: 1 Một hệ điều hành mở, miễn phí cho các thiết bị di động 2 Một nền tảng mã nguồn mở cho phát triển các ứng dụng 3 Thiết bị chạy hệ điều hành Android và các ứng dụng Android Chi tiết hơn thì Android gồm các thành phần quan trọng sau: 1 Một thiết kế phần cứng cho thiết bị di động hỗ trợ bộ phần mềm 2 Một nhân hệ điều hành Linux cung cấp giao diện mức thấp với phần cứng, quản lý bộ nhớ và kiểm soát tiến trình Tất cả đều tối ưu hoá cho thiết bị di động Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 4 3 Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit, OpenGL và quản lí đa phương tiện 4 Một hệ thống thực thi và lưu trữ cho ứng dụng Android bao gồm máy ảo Dalvik và các thư viện cơ bản cung cấp chức năng đặc thù cho Android Hệ thống thực thi được thiết kế nhỏ gọn và hiệu quả khi sử dụng trên các thiết bị di động 5 Một kiến trúc ứng dụng cung cấp các dịch vụ hệ thống cho tầng ứng dụng bao gồm quản lí cửa sổ, quản lí vị trí, cung cấp nội dung và các cảm biến 6 Một kiến trúc giao diện người dùng để lưu trữ và chạy các ứng dụng 7 Một số ứng dụng được cài đặt sẵn được coi như một phần của bộ ứng dụng 8 Một bộ phát triển ứng dụng bao gồm các công cụ và tài liệu Hình 2 1 Các thành phần của hệ điều hành Android 2 1 2 Sơ lƣợc các phiên bản Android Android là một nền tảng mới và phát triển nhanh Các phiên bản thông thường được phát hành sau khoảng 6 tháng Sau đây là danh sách các phiên bản chính và sự thay đổi lớn trong mỗi phiên bản Android OHA giới thiệu Android (5 -11-2007) Phát hành SDK (12-11-2007) Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 5 Apple pie - Android 1 0 (23/9/2008): Phát hành phiên bản Android 1 0 trên điện thoại Android đầu tiên – HTC Dream (G1) Banana bread - Android 1 1 (9-2- 2009): Phát hành phiên bản cập nhật 1 1 riêng cho T-Mobile G1 Cupcake - Android 1 5 (30/4/2009) Donut - Android 1 6 (15/9/2009) Éclair - Android 2 0 (26/10/2009) Froyo - Android 2 2 (20/5/2010) Gingerbread - Android 2 3 (6/12/2010) Honeycomb - Android 3 0 (22/2/2011) Ice Cream Sandwich: được tuyên bố phát hành trong quí 4 năm 2011 Đây là sự kết hợp của hai phiên bản Gingerbread và Honeycomb Tên gọi của các phiên bản Android đều được đặt theo các món tráng miệng: Hình 2 2 Logo và tên các phiên bản Android 2 1 3 Các thành phần cơ bản của ứng dụng Android Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn trong kiến trúc ứng dụng Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự tương tác giữa các thành phần này cũng như siêu dữ liệu về yêu cầu phần cứng Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 6 Các thành phần sau đây tạo nên một ứng dụng Android: Activity : là lớp thể hiện ứng dụng Mỗi màn hình trong ứng dụng là một mở rộng của lớp Activity Các Activity sử dụng các View tạo thành giao diện đồ họa tương tác người dùng để thể hiện thông tin và phản hồi hành động của người dùng Service : là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity , kích hoạt các Notification Các Service thường thực hiện các xử lí thông thường như tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị Content Provider : là thành phần lưu trữ dữ liệu chia sẻ Content Provider quản lí và chia sẻ cơ sở dữ liệu của ứng dụng Chúng được coi như là phương tiện chia sẻ dữ liệu giữa các ứng dụng Intent : là cấu trúc truyền thông điệp giữa các ứng dụng Chúng ta có thể sử dụng Intent để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định trước để thực thi một hoạt động Hệ thống sau đó sẽ xác định đối tượng nào sẽ thực hiện các hoạt động phù hợp Broadcast Receiver : là nơi nhận các Intent Chúng ta có thể tự tạo một Broadcast Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ lọc đặt trước Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với Intent nhận được và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo Widget : thành phần trực quan của ứng dụng có thể thêm vào màn hình chính Là một dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng dụng động, tương tác được nhúng ngay trên màn hình chính Notification : là thành phần thông báo cho người dùng Hộp thoại thông báo cho người dùng mà không gián đoạn các Activity hiện thời Đây là kĩ thuật thô ng báo cho người dùng năm trong một Service hay một Broadcast Receiver Ví dụ như khi nhận được một tin nhắn hay cuộc gọi đến có thể thông báo cho người dùng bằng nhấp nháy đèn hay bằng âm thanh… Một ứng dụng không nhất thiết phải gồm tất cả các thành phần trên nhưng để có một giao diện với người dùng thì ít nhất ứng dụng đó phải có một Activity Mã đã được biên dịch của các thành phần của ứng dụng, tài nguyên liên quan như thư viện, hình ảnh và các dữ liệu cần thiết khác được đóng gói trong một file apk duy nhất chính là dạng file thực thi của ứng dụng Android Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 7 Như đã trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android Hệ điều hành Android quản lí ứng dụng dưới dạng stack : khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trở thành running activity, các Actitivy trước đó sẽ bị tạm dừng vả chỉ hoạt động trở lại khi Activity mới được giải phóng Activity có 4 trạng thái: Active (running): Activity đang hiển thị trên màn hình (fore ground) Pause : Activity vẫn hiển thị (visible) nhưng không thể tương tác VD: một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này vẫn nhỏ hơn giao diện activity cũ Do đó ta vẫn thấy được một phần giao diện của activity cũ nhưng không tương tác được với nó Stop : Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop Killed : Khi hệ thống thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên ở trên Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi trạng thái trước đó Tuỳ từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các Activity được hoạt động đúng Chi tiết từng phương thức và sự kiện thay đổi trạng thái tương ứng: onCreate(): Phương thức này khởi tạo Activity Nó có thể bỏ qua trạng thái cũ để trở lại hoạt động Phương thức tiếp theo luôn là onStart() onRestart(): Được gọi sau khi một Activity dừng và muốn bắt đầu lại onStart(): Được gọi khi ứng dụng chuyển sang visible nhưng chưa tương tác được với người dùng onResume(): Activity có tương tác với người sử dụng và có thể nhận thông tin đầu vào Kiểu tiến trình của ứng dụng được chuyển sang dạng hiển thị (foreground) onPause(): Nếu ứng dụng không còn tương tác hay thiết bị không hoạt động, phương thức này được gọi và kiểu tiến trình ứng dụng sẽ được chuyển sang dạng visible Sau khi thực hiện phương thức này, hệ thống cho phép giải phóng ứng dụng bất cứ lúc nào Các thao tác sử dụng CPU và dữ liệu đều được lưu lại Activity sẽ có thể được hoạt động trở lại hoặc dừng lại Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 8 onStop(): Khi Activity không còn tương tác nữa thì kiểu tiến trình được chuyển sang chạy nền (background) và ứng dụng có thể bị giải phóng bất cứ lúc nào bởi hệ thống để lấy lại bộ nhớ Activity sẽ bị giải phóng hoặc khởi động lại onDestroy(): Phương thức cuối cùng này được hệ thống gọi trước khi giải phóng ứng dụng hay ứng dụng loại bỏ Activity Tiến trình của ứng dụng có thể chuyển sang kiểu rỗng nếu hệ thống muốn giữ lại ứng dụng để tiếp tục lại ứng dụng cho lần sau Hình 2 3 Mô hình hoạt động của Activity Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 9 2 2 LẬP TRÌNH TRÊN HỆ ĐIỀU HÀNH ANDROID 2 2 1 Ngôn ngữ JAVA 2 2 1 1 Tổng quan về ngôn ngữ JAVA Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C# Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng,… Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java 2 2 1 2 Một số tính chất ngôn ngữ JAVA Cú pháp Java được vay mượn nhiều từ C C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Dùng bộ thư viện chuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy Đơn giản: Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen thuộc với đa số người lập trình Do vậy Java loại bỏ các đặc trưng phức tạp của C và C++ như: Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử Không cho phép đa kế thừa mà sử dụng các giao diện Không sử dụng lệnh “goto” cũng như file header ( h) Loại bỏ cấu trúc “struct” và “union” Hƣớng đối tƣợng: Java là ngôn ngữ lập trình thuần hướng đối tượng, mọi chương trình viết trên Java đều phải được xây dựng trên các đối tượng Nếu trong Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 10 C/C++ ta có thể tạo ra các hàm (chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ có thể tạo ra các phương thức (chương trình con gắn liền với một lớp cụ thể) Trong Java không cho phép các đối tượng có tính năng đa kế thừa mà được thay thế bằng các giao diện (interface) Độc lập phần cứng và hệ điều hành: Đối với các ngôn ngữ lập trình truyền thống như C/C++, phương pháp biên dịch được thực hiện như sau Hình 2 4 Cách biên dịch chương trình truyền thống Với mỗi nền phần cứng khác nhau, có một trình biên dịch khác nhau để biên dịch mã nguồn chương trình cho phù hợp với nền phần cứng ấy Do vậy, khi chạy trên một nền phần cứng khác bắt buộc phải biên dịch lại mã nguồn Đối với các chương trình viết bằng Java, trình biên dịch Javac sẽ biên dịch mã nguồn thành dạng bytecode Sau đó, khi chạy chương trình trên các nền phần cứng khác nhau, máy ảo Java dùng trình thông dịch Java để chuyển mã bytecode thành dạng chạy được trên các nền phần cứng tương ứng Do vậy, khi thay đổi nền phần cứng, không phải biên dịch lại mã nguồn Java Hình 2 5 Cơ chế biên dịch chương trình của Java Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 11 Mạnh mẽ: Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu Kiểu dữ liệu phải khai báo tường minh Java không sử dụng con trỏ và các phép toán con trỏ Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước Trong các môi trường lập trình truyền thống, lập trình viên phải tự mình cấp phát bộ nhớ, trước khi chương trình kết thúc thì phải tự giải phóng bộ nhớ đã cấp Vấn đề có thể nảy sinh khi lập trình viên quên giải phóng bộ nhớ đã xin cấp trước đó Trong chương trình Java, lập trình viên không phải bận tâm đến việc cấp phát bộ nhớ Quá trình cấp phát, giải phóng được thực hiện tự động, nhờ dịch vụ thu nhặt những đối tượng không còn sử dụng nữa (garbage collection) Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý lỗi và hồi phục sau lỗi Bảo mật: Java cung cấp một môi trường quản lý thực thi chương trình với nhiều mức để kiểm soát tính an toàn: Ở mức thứ nhất, dữ liệu và các phương thức được đóng gói bên trong lớp Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java Mức thứ ba được đảm bảo bởi trình thông dịch; chúng kiểm soát xem bytecode có đảm bảo các quy tắc an toàn trước khi thực thi không Mức thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống Phân tán: Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp mạng (java net) Hơn nữa, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được sử dụng rộng rãi như là công cụ phát triển trên Internet - nơi sử dụng nhiều nền khác nhau Đa luồng: Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để thực thi các công việc đồng thời Chúng cũng cung cấp giải pháp đồng bộ giữa các Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 12 luồng Đặc tính hỗ trợ đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả Linh động: Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường mở Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy nhập đối tượng lúc chạy Điều này cho phép khả năng liên kết mã động 2 2 2 Ngôn ngữ JSON JSON (JavaScript Object Noattion) là một chuẩn để định dạng dữ liệu Rất dễ dàng để đọc, viết và phân tích Nó dựa trên cơ sở tập hợp của ngôn ngữ JavaScript, tiêu chuẩn ECMA - 262 phiên bản 3 – tháng 12 năm 1999 Khi sử dụng JSON không cần phải có các bước phân tích phức tạp như đối với XML Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON Đứng về mặt tốc độ của các ứng dụng di động đây là một ưu điểm rất lớn JSON được xây dựng trên 2 cấu trúc: Là tập hợp của các cặp tên và giá trị name -value Là 1 tập hợp các giá trị đã được sắp xếp Các đặc điểm của JSON: JSON là văn bản trơn (không có định dạng(màu sắc, cỡ chữ,…)) JSON là "tự mô tả" (người dùng có thể hiểu được) JSON là phân cấp (có cấu trúc cây) JSON có thể được phân tích cú pháp (parse) bởi JavaScript Dữ liệu JSON có thể được truyền đi bằng AJAX Không có thẻ kết thúc Ngắn hơn Nhanh hơn để đọc và ghi Có thể được phân tích cú pháp bằng hàm dựng sẵn trong JavaScript là eval () Sử dụng mảng (Array) Không dùng các từ reserve 2 2 3 Ngôn ngữ XML XML, hoặc Extensible Markup Language (ngôn ngữ đánh dấu mở rộng), là một ngôn ngữ đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của mình Nó được tạo nên bởi Liên minh mạng toàn cầu nhằm khắc phục những hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản, là cơ sở của mọi trang Web Giống như HTML, XML Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 13 cũng được dựa trên SGML – Standard Generalized Markup Language Mặc dù SGML được sử dụng trong ngành công nghiệp xuất bản trong nhiều thập kỷ, nhưng sự phức tạp của nó đều khiến những ai từng sử dụng nó mà không có cách nào khác phải thấy mệt mỏi Các đặc điểm của XML: Dễ dàng viết được các chương trình xử lý dữ liệu Tài liệu XML dễ đọc và có tính hợp lý cao XML dễ dàng được sử dụng trên Internet XML hỗ trợ nhiều ứng dụng Không đặt nặng tính hình thức trong nội dung thẻ Các loại văn bản XML: Văn bản không hợp lệ : không theo nguyên tắc cú pháp được quy định bởi đặc tính kỹ thuật XML Văn bản hợp lệ : tuân theo nguyên tắc cú pháp XML và quy định trong DTD hoặc lược đồ Văn bản chuẩn : tuân theo quy tắc cú pháp XML nhưng không có DTD hoặc lược đồ Một tài liệu XML được chia thành hai phần chính: - Phần khai báo: khai báo cho tài liệu XML khai báo phiên bản, bảng mã ký tự sử dụng trong tài liệu định nghĩa kiểu cho tài liệu - Phần thân : chứa nội dung dữ liệu gồm một hay nhiều phần tử, mỗi phần tử được chứa trong một cặp thẻ phần tử đầu tiên là phần tử gốc (root element) 2 2 4 Ngôn ngữ PHP Tóm tắt sơ lược về PHP: PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995 Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 14 Vào năm 1997, PHP/FI 2 0, lần viết lại thứ hai của phiên bản C PHP/FI 2 0 được chính thức công bố vào tháng 11 năm 1997 PHP 3 0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev S uraski tạo ra năm 1997 PHP 3 0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm PHP 4 0 đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3 0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4 0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5 0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ http://snaps php net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại Lý do chọn ngôn ngữ PHP: Vi ết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP Rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn Dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác 2 3 MÁY ẢO DALVIK VÀ ANDROID SDK 2 3 1 Máy ảo Dalvik Các ứng dụng Android và các thành phần cơ bản hầu hết được viết bằng Java Thay vì sử dụng máy ảo Java, Android sử dụng máy ảo riêng Máy ảo của Android được thiết kế và tối ưu cho các hệ thống nhỏ, không tương thích với máy ảo Java của Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 15 Java ME Những hệ thống nhỏ này có dung lượng RAM nhỏ, CPU chậm và hầu hết không có chỗ để tráo đổi dữ liệu bù đắp cho dung lượng bộ nhớ nhỏ Đây là điểm khác biệt giữa Android với các hệ điều hành cho di động khác như Symbian, iOS của Apple, webOS của Palm Ngôn ngữ lập trình được sử dụng chính là C, C++ và objective C, trong khi với webOS sử dụng chủ yếu ngôn ngữ web như Javascript hay HTML Trình biên dịch byte code là máy ảo Dalvik Thay vì sử dụng dạng byte code thông thường, Dalvik có định dạng riêng để phù hợp với yêu cầu đối với thiết bị cho Android Mã của Android nhỏ hơn so với mã của Java và file dex được tạo ra cũng nhỏ 2 3 2 Android SDK Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo ra các ứng dụng cho các thiết bị sử dụng nền tảng Android Android SDK bao gồm nền tảng Android, các công cụ, chương trình mẫu và các tài liệu hỗ trợ Nó cũng là thành phần bổ sung trong bộ phát triển Java và có thể tích hợp vào Eclipse Android chứa các gói hỗ trợ các chức năng tính toán cơ bản như quản lí xâu, quản lí vào ra, tính toán từ các gói cơ bản trong Java: Java lang – lớp ngôn ngữ cơ bản của java Java io – quản lí vào ra Java net – quản lí kết nối mạng Java text – tiện ích xử lí văn bản Java math – hỗ trợ tính toán Java sercurity – quản lí các thành phần bảo mật Java xml – các lớp về XML org apache – các lớp liên quan HTTP Ngoài ra Android có các lớp riêng như: android app – truy cập mô hình ứng dụng Android android bluetooth – chức năng bluetooth của Android android content - quản lí dữ liệu trong Android android net – chứa các lớp Uri dùng để truy cập dữ liệu android graphics – các thành phần đồ hoạ android location – các dịch vụ liên quan đến vị trí (ví dụ như GPS) Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 16 android opengl – các lớp OpenGL android view – chứa các thành phần giao diện android webkit – chức năng của trình duyệt web android widget – các thành phần giao diện khác Ở đây chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú các thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lí và điều khiển các yếu tố khác của ứng dụng Android trực tiếp từ Eclipse IDE Hình 2 6 Môi trường phát triển ứng dụng Android trong Eclipse 2 3 3 Android Emulator Android SDK cung cấp một bộ giả lập thiết bị di động ảo Máy ảo này cho phép chú ng ta phát triển và kiểm tra các ứng dụng mà không cần một thiết bị Android thật Máy ảo Android có đầy đủ các thành phần từ phần cứng đến phần mềm giống như một thiết bị thật ngoại trừ nó không thể thực hiện được một cuộc gọi Máy ảo Android cho phép sử dụng chuột để định hướng hay bàn phím để tạo các sự kiện Người dùng có thể cài đặt để kiểm thử phần mềm trên máy ảo với từng phiên bản khác nhau của Android Khi ứng dụng được cài đặt nó có thể sử dụng các ứng dụng đã được cung cấp trong Android như nghe nhạc, xem video hay vào mạng Máy ảo cũng có khả năng debug, truy cập vào đầu ra của nhân, giả lập các ngắt như khi nhân cuộc gọi hay tin nhắn thậm chí là các ảnh hượng độ trễ của mạng và ngắt trên kênh truyền dữ liệu Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 17 Hình 2 7 Android Emulator Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 18 CHƢƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3 1 MÔ TẢ HỆ THỐNG Hệ thống được xây dựng theo mô hình trao đổi dữ liệu client - server Trong đó ứng dụng phía thiết bị android là máy client tạo các truy vấn lên 2 máy chủ là máy chủ web của ứng dụng và máy chủ các dịch vụ cần thiết của google để lấy dữ liệu phù hợp Hình 3 1 Kiến trúc hệ thống 3 1 1 Yêu cầu chức năng : Các chức năng hệ thống bao gồm : Mở hệ thống Đóng hệ thống Cập nhật DM Loại bệnh Cập nhật DM Bệnh Cập nhật DM Chi tiết b ệnh Tìm kiếm Gọi cấp cứu Gửi góp ý Xem góp ý 3 1 2 Yêu cầu phi chức năng : Chương trình có thể đảm bảo làm việc 24/7 Chương trình có thể thực hiện chính xác kết quả với sai số nhỏ với cơ sở dữ liệu lớn Chương trình phải đẹp và đơn giản để những người có ít kinh nghiệm máy tính có thể sử dụng 3 1 3 Yêu cầu hệ thống Sử dụng hệ điều hành Android phiên bản mới hơn 2 3 Có kết nối Internet Máy chủ web dịch vụ của ứng dụng chạy được PHP và cài đặt CSDL MySQL Ứng dụng Web Services Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 19 3 2 PHÂN TÍCH THIẾT KẾ 3 2 1 Mô hình hoá yêu cầu Xác định các tác nhân: Ngƣời sử dụng : Là người trực tiếp sử dụng phần mềm để tìm kiếm các bệnh hay góp ý cho người phát triển Quản trị viên : Là người trực tiếp sử dụng phần mềm để cập nhật các danh mục, xem các góp ý Các trường hợp sử dụng: Mở hệ thống Đóng hệ thống Cập nhật DM Loại bệnh Cập nhật DM Bệnh Cập nhật DM Chi tiết bệnh Tìm kiếm Gọi cấp cứu Gửi góp ý Xem góp ý Đặc tả các trường hợp sử dụng : Trường hợp sử dụng : Mở hệ thống o Tác nhân : Q uản trị viên, N gười sử dụng o Mô tả : Bắt đầu phiên làm việc người sử dụng sẽ mở ứng dụng để tìm kiếm, quản trị viên mở services để cập nhật danh mục, xem các góp ý Trường hợp sử dụng : Đóng hệ thống o Tác nhân : Người sử dụng, Quản trị viên o Mô tả : Kết thúc phiên làm việc, người sử dụng và quản trị viên sẽ đóng chương trình Trường hợp sử dụng : Cập nhật DM Loại bệnh o Tác nhân : Quản trị viên o Mô tả : Cập nhật danh sách các loại bệnh vào trong hệ thống thông qua web services Trường hợp sử dụng : Cập nhật DM Bệnh o Tác nhân : Quản trị viên Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 20 o Mô tả : Cập nhật danh sách bệnh vào trong hệ thống thông qua web services Trường hợp sử dụng : Cập nhật Chi tiết bệnh o Tác nhân : Quản trị viên o Mô tả : Quản trị viên cập nhật chi tiết các bệnh vào trong hệ thống thông qua web services Trường hợp sử dụng : Tìm kiếm o Tác n hân : Người sử dụng o Mô tả : Người sử dụng sẽ sử dụng chức năng này để tìm kiếm các bệnh theo các tiêu chí tìm kiếm, có thể tìm kiếm trong cơ sở dữ liệu MySQL của web services của chương trình Trường hợp sử dụng : Gọi cấp cứu o Tác nhân: Người sử dụng o Mô tả : Người sử dụng sẽ dùng chức năng này trong việc gọi khẩn cấp đến số cấp cứu Trường hợp sử dụng : Gửi góp ý o Tác nhân : Người sử dụng o Mô tả : Người sử dụng sẽ sử dụng chức năng này để gửi góp ý về cho người phát triển về các vấn đề khi sử dụng chương trình, các bệnh người sử dụng biết có thể gửi về cho hệ thống Trường hợp sử dụng : Xem góp ý o Tác nhân : Quản trị viên o Mô tả : Xem các góp ý được gửi đến từ người sử dụng chương trình Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 21 Biểu đồ trường hợp sử dụng (Uses Case) Hình 3 2 Biểu đồ trường hợp sử dụng Uses case Hình 3 3 Uses case trường hợp cập nhật DM Loại bệnh G ui G op Y Tim Kiem G oi Cap Cuu Nguoi Su Dung Cap Nhat DM Loai Benh Khoi Dong He Thong Dong He Thong Xem G op Y Cap Nhat Chi Tiet Benh Cap Nhat DM Benh Quan Tri Vien Them DM Loai Benh Hieu Chinh DM Loai Benh Cap Nhat DM Loai Benh < < extend> > < < extend> > Xoa DM Loai Benh < < extend> > Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 22 Hình 3 4 Uses case trường hợp sử dụng Cập nhật DM Bệnh Hình 3 5 Use s case trường hợp Cập nhật Chi tiết bệnh Hình 3 6 Uses case trường hợp Tìm kiếm Them DM Benh Hieu Chinh DM Benh Cap Nhat DM Benh < < extend> > < < extend> > Xoa DM Benh < < extend> > Them Chi Tiet Benh Hieu Chinh Chi Tiet Benh Cap Nhat Chi Tiet Benh < < extend> > < < extend> > Xoa Chi Tiet Benh < < extend> > Tim qua W eb Services Tim kiem < < uses> > Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 23 3 2 2 Mô hình hóa khái niệm Biểu đồ lớp biên Hình 3 7 Biểu đồ lớp biên Biểu đồ lớp điều khiển Hình 3 8 Biểu đồ lớp điều khiển CtlKhoiDongHeThong CtlDongHeThong CtlCapNhatDMLoaiBenh CtlCapNhatDMBenh CtlCapNhatChiTietBenh CtlTimKiemBangW ebServices CtlXemG opY CtlG uiG opY CtlG oiCapCuu FrmKhoiDongHeThong FrmDongHeThong FrmCapNhatDMLoaiBenh FrmCapNhatDMBenh FrmCapNhatChiTietBenh FrmTimKiemW ebServices FrmG uiG opY FrmXemG opY FrmG oiCapCuu Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 24 Biểu đồ lớp thực thể Hình 3 9 Biểu đồ lớp thực thể 3 2 3 Mô hình hóa tƣơng tác 3 2 3 1 Biểu đồ trình tự Biểu đồ trình tự Mở hệ thống Hình 3 10 Biểu đồ trình tự Mở hệ thống : Nguoi Su Dung : Nguoi Su Dung : Q uan Tri Vien : Q uan Tri Vien : FrmKhoiDongHeThong : FrmKhoiDongHeThong : CtlKhoiDongHeThong : CtlKhoiDongHeThong 1 : Khoi dong he thong() 3: Thuc hien() 2: Khoi dong he thong() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 25 Biểu đồ trình tự Đóng hệ thống Hình 3 11 Biểu đồ trình tự Đóng hệ thống Biểu đồ trình tự Thêm DM Loại bệnh Hình 3 12 Biểu đồ trình tự Thêm DM Loại bệnh : Nguoi Su Dung : Nguoi Su Dung : Quan Tri V ien : Quan Tri V ien : FrmDongHeThong : FrmDongHeThong : CtlDongHeThong : CtlDongHeThong 3: Thuc hien() 1 : Dong he thong() 2: Dong he thong() : Quan Tri Vien : Quan Tri Vien : FrmCapNhatDMLoaiBenh : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : LoaiBenh : LoaiBenh 1 : Them DM loai benh() 2: Thuc hien() 3: Kiem tra() 4: Luu() 5: Thong bao ket qua them() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 26 Biểu đồ trình tự Hiệu chỉnh DM Loại b ệnh Hình 3 13 Biểu đồ trình tự Hiệu chỉnh DM Loại b ệnh Biểu đồ trình tự Xóa DM Loại b ệnh Hình 3 14 Biểu đồ trình tự Xóa DM Loại b ệnh : QuanTriVien : QuanTriVien : FrmCapNhatDMLoaiBenh : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : LoaiBenh : LoaiBenh 1 : Chon loai benh muon hieu chinh() 2: Lay thong tin() 3: Lay thong tin() 4: Tra ve() 5: Tra ve thong tin() 6: Hieu chinh() 7: Thuc hien() 8: Kiem tra() 9: Luu() 1 0: Thong bao ket qua() : Quan Tri V ien : Quan Tri V ien : FrmCapNhatDMLoaiBenh : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : LoaiBenh : LoaiBenh 1 : Xoa DM loai benh() 2: Thuc hien() 3: Kiem tra () 4: Luu() 5: Thong bao() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 27 Biểu đồ trình tự Thêm DM Bệnh Hình 3 15 Biểu đồ trình tự Thêm DM Bệnh Biểu đồ trình tự Hiệu chỉnh DM Bệnh Hình 3 16 Biểu đồ trình tự Hiệu chỉnh DM Bệnh : QuanTriVien : QuanTriVien : FrmCapNhatDMBenh : FrmCapNhatDMBenh : CtlCapNhatDMBenh : CtlCapNhatDMBenh : Benh : Benh 1 : Chon benh muon hieu chinh() 2: Lay thong tin() 3: Lay thong tin() 4: Tra ve() 5: Tra ve thong tin() 6: Hieu chinh() 7: Thuc hien() 8: Kiem tra() 9: Luu() 1 0: Thong bao() : Quan Tri Vien : Quan Tri Vien : FrmCapNhatDMBenh : FrmCapNhatDMBenh : CtlCapNhatDMBenh : CtlCapNhatDMBenh : Benh : Benh 1 : Them DM benh() 2: Thuc hien() 3: Kiem tra() 4: Luu() 5: Thong bao() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 28 Biểu đồ trình tự Xóa DM Bệnh Hình 3 17 Biểu đồ trình tự Xóa DM Bệnh Biểu đồ trình tự Thêm Chi tiết bệnh Hình 3 18 Biểu đồ trình tự Thêm Chi tiết bệnh : Quan Tri Vien : Quan Tri Vien : FrmCapNhatDMBenh : FrmCapNhatDMBenh : CtlCapNhatDMBenh : CtlCapNhatDMBenh : Benh : Benh 1 : Xoa DM benh() 2: Thuc hien() 3: Kiem tra() 4: Luu() 5: Thong bao() : Quan Tri Vien : Quan Tri Vien : FrmCapNhatChiTietBenh : FrmCapNhatChiTietBenh : CtlCapNhatChiTietBenh : CtlCapNhatChiTietBenh : Benh : Benh 1 : Them chi tiet benh() 2: Thuc hien() 3: Kiem tra() 5: Thong bao() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 29 B iểu đồ trình tự Hiệu Chỉnh Chi tiết bệnh Hình 3 19 B iểu đồ trình tự Hiệu chỉnh Chi tiết bệnh Biểu đồ trình tự Xóa Chi tiết bệnh Hình 3 20 Biểu đồ trình tự Xóa Chi tiết bệnh : FrmCapNhatChiTietBenh : FrmCapNhatChiTietBenh : QuanTriVien : QuanTriVien : CtlCapNhatChiTietBenh : CtlCapNhatChiTietBenh : Benh : Benh 1 : Chon benh de hieu chinh chi tiet benh 2: Lay thong tin() 3: Lay thong tin() 4: Tra ve() 5: Tra ve thong tin() 6: Hieu chinh() 7: Thuc hien() 8: Kiem tra() 9: Luu() 1 0: Thong bao() : Benh : Benh : Quan Tri Vien : Quan Tri Vien : FrmCapNhatChiTietBenh : FrmCapNhatChiTietBenh : CtlCapNhatChiTietBenh : CtlCapNhatChiTietBenh 1 : Xoa chi tiet benh() 2: Thuc hien() 3: Kiem tra() 5: Thong bao() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 30 Biểu đồ trình tự Tìm kiếm bằng Web Services Hình 3 21 Biểu đồ trình tự Tìm Kiếm Bằng Web Services Biểu đồ trình tự Gửi góp ý Hình 3 22 Biểu đồ trình tự Gửi góp ý : Nguoi Su Dung : Nguoi Su Dung : FrmTimKiemW ebServices : FrmTimKiemW ebServices : CtlTimKiemBangW ebServices : CtlTimKiemBangW ebServices : Benh : Benh 1 : Y eu cau tim kiem() 2: Thuc hien() 3: Tao truy van SQL() 4: Thong bao ket qua() 5: Thong bao() : Nguoi Su Dung : Nguoi Su Dung : FrmG uiG opY : FrmG uiG opY : CtlG uiG opY : CtlG uiG opY : G opY : G opY 1 : G ui gop y() 2: Thuc hien() 3: Kiem tra() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 31 Biểu đồ trình tự Gọi cấp cứu Hình 3 23 Biểu đồ trình tự Gọi cấp cứu 3 2 3 2 Biểu đồ cộng tác Biểu đồ cộng tác Mở hệ thống Hình 3 24 Biểu đồ cộng tác Mở hệ thống Biểu đồ cộng tác Đóng hệ thống Hình 3 25 Biểu đồ cộng tác Đóng hệ thống : Nguoi Su Dung : Nguoi Su Dung : FrmG oiCapCuu : FrmG oiCapCuu : CtlG oiCapCuu : CtlG oiCapCuu 1 : G oi cap cuu() 2: Thuc hien() : Nguoi Su Dung : Quan Tri Vien : FrmDongHeThong : CtlDongHeThong 3: Thuc hien() 1 : Dong he thong() 2: Dong he thong() : Nguoi Su Dung : Quan Tri V ien : FrmKhoiDongHeThong : CtlKhoiDongHeThong 2: Khoi dong he thong() 1 : Khoi dong he thong() 3: Thuc hien() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 32 Biểu đồ cộng tác Thêm DM Loại bệnh Hình 3 26 Biểu đồ cộng tác Thêm DM Loại bệnh Biểu đồ cộng tác Hiệu chỉnh DM Loại bệnh Hình 3 27 Biểu đồ cộng tác Hiệu chỉnh DM Loại b ệnh : QuanTriVien : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : LoaiBenh 8: Kiem tra() 1 : Chon loai benh muon hieu chinh() 6: Hieu chinh() 2: Lay thong tin() 7: Thuc hien() 5: Tra ve thong tin() 1 0: Thong bao ket qua() 3: Lay thong tin() 9: Luu() 4: Tra ve() : Quan Tri Vien : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh : LoaiBenh 3: Kiem tra() 1 : Them DM loai benh() 2: Thuc hien() 5: Thong bao ket qua them() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 33 Biểu đồ cộng tác Xóa DM Loại bệnh Hình 3 28 Biểu đồ cộng tác Xóa DM Loại bệnh Biểu đồ cộng tác Thêm DM Bệnh Hình 3 29 Biểu đồ cộng tác Thêm DM Bệnh : LoaiBenh : Quan Tri Vien : FrmCapNhatDMLoaiBenh : CtlCapNhatDMLoaiBenh 3: Kiem tra () 1 : Xoa DM loai benh() 2: Thuc hien() 5: Thong bao() 4: Luu() : Quan Tri Vien : FrmCapNhatDMBenh : CtlCapNhatDMBenh : Benh 3: Kiem tra() 1 : Them DM benh() 2: Thuc hien() 5: Thong bao() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 34 Biểu đồ cộng tác Hiệu chỉnh DM Bệnh Hình 3 30 Biểu đồ cộng tác Hiệu chỉnh DM Bệnh Biểu đồ cộng tác Xóa DM Bệnh Hình 3 31 Biểu đồ cộng tác Xóa DM Bệnh : QuanTriVien : FrmCapNhatDMBenh : CtlCapNhatDMBenh : Benh 8: Kiem tra() 1 : Chon benh muon hieu chinh() 6: Hieu chinh() 2: Lay thong tin() 7: Thuc hien() 5: Tra ve thong tin() 1 0: Thong bao() 3: Lay thong tin() 9: Luu() 4: Tra ve() : Quan Tri V ien : FrmCapNhatDMBenh : CtlCapNhatDMBenh : Benh 3: Kiem tra() 1 : Xoa DM benh() 2: Thuc hien() 5: Thong bao() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 35 Biểu đồ cộng tác Thêm Chi tiết bệnh Hình 3 32 Biểu đồ cộng tác Thêm Chi Tiết Bệnh Biểu đồ cộng tác Hiệu chỉnh Chi tiết bệnh Hình 3 33 Biểu đồ cộng tác Hiệu chỉnh chi tiết bệnh : Quan Tri Vien : FrmCapNhatChiTietBenh : CtlCapNhatChiTietBenh 3: Kiem tra() : Benh 1 : Them chi tiet benh() 2: Thuc hien() 5: Thong bao() 4: Luu() : FrmCapNhatChiTietBenh : QuanTriVien : CtlCapNhatChiTietBenh : Benh 8: Kiem tra() 1 : Chon benh de hieu chinh chi tiet benh 6: Hieu chinh() 2: Lay thong tin() 7: Thuc hien() 5: Tra ve thong tin() 1 0: Thong bao() 3: Lay thong tin() 9: Luu() 4: Tra ve() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 36 Biểu đồ cộng tác Xóa Chi Tiết B ệnh Hình 3 34 Biểu đồ cộng tác Xóa Chi tiết bệnh Biểu đồ cộng tác Tìm k iếm bằng Web Services Hình 3 35 Biểu đồ cộng tác Tìm kiếm b ằng Web Services : Nguoi Su Dung : FrmTimKiemW ebServices : CtlTimKiemBangW ebServices : Benh 3: Tao truy van SQL() 1 : Y eu cau tim kiem() 2: Thuc hien() 5: Thong bao() 4: Thong bao ket qua() : Benh : Quan Tri Vien : FrmCapNhatChiTietBenh : CtlCapNhatChiTietBenh 3: Kiem tra() 1 : Xoa chi tiet benh() 2: Thuc hien() 5: Thong bao() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 37 Biểu đồ cộng tác Gửi góp ý Hình 3 36 Biểu đồ cộng tác Gửi góp ý Biểu đồ cộng tác Gọi cấp cứu Hình 3 37 Biểu đồ cộng tác Gọi cấp cứu 3 2 4 Mô hình hóa hành vi 3 2 4 1 Biểu đồ trạng thái Biểu đồ trạng thái Mở hệ thống Hình 3 38 Biểu đồ trạng thái Mở hệ thống : Nguoi Su Dung : FrmG oiCapCuu : CtlG oiCapCuu 1 : G oi cap cuu() 2: Thuc hien() Thuc hien Nguoi su dung khoi dong he thong de su dung : Nguoi Su Dung : FrmG uiG opY : CtlG uiG opY : G opY 3: Kiem tra() 1 : G ui gop y() 2: Thuc hien() 4: Luu() Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 38 Biểu đồ trạng thái Tìm k iếm Hình 3 39 Biểu đồ trạng thái Tìm kiếm Biểu đồ trạng thái Gửi góp ý Hình 3 40 Biểu đồ trạng thái Gửi góp ý Biểu đồ trạng thái Gọi cấp cứu Hình 3 41 Biểu đồ trạng thái Gọi cấp cứu 3 2 4 2 Biểu đồ hành vi Biểu đồ hành vi Mở hệ thống Hình 3 42 Biểu đồ hành vi Mở hệ thống Thuc hien Nguoi su dung goi cap cuu Cho thong tin tim kiem Nhap cac thong tin tim kiem Cho lay ket qua Hien thi ket qua tra ve Tim kiem Nhap tiep Truy van CSDL Xu ly ket qua Ket thuc Nhap noi dung gop y Nhap cac noi dung gop y Cho gui gop y G op y Nhap tiep Tien hanh gui Ket thuc Khoi dong he thong Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 39 Biểu đồ hành vi Cập nhật DM Loại bệnh Hình 3 43 Biểu đồ hành vi Cập Nhật DM Loại bệnh Biểu đồ hành vi Cập nhật DM bệnh Hình 3 44 Biểu đồ hành vi Cập Nhật DM Bệnh Cap nhat DM loai benh Them DM loai benh Hieu chinh DM loai benh Xoa DM loai benh K iem tra thong tin Luu thong tin Hop le Khong hop le Cap nhat DM benh Them DM benh Hieu chinh DM benh Xoa DM benh Luu thong tin K iem tra Hop le Khong hop le Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 40 Biểu đồ hành vi Chi tiết bệnh Hình 3 45 Biểu đồ hành vi Chi tiết bệnh Biểu đồ hành vi Tìm kiếm Hình 3 46 Biểu đồ hành vi Tìm kiếm Biểu đồ hành vi Gửi góp ý Hình 3 47 Biểu đồ hành vi Gửi g óp ý Cap nhat chi tiet benh Them chi tiet benh Hieu chinh chi tiet benh Xoa chi tiet benh K iem tra Luu thong tin Hop le Khong hop le Nhap thong tin tim kiem Xu ly Hien thi ket qua Tieu chi tim kiem Nhap thong tin gop y Xu ly Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 41 Biểu đồ hành vi Gọi cấp cứu Hình 3 48 Biểu đồ hành vi Gọi cấp cứu 3 2 5 Thiết kế chi tiết biểu đồ lớp Từ biểu đồ lớp mức phân tích, kết hợp với các biểu đồ trình tự, cộng tác, trạng thái và hoạt động Biều đồ lớp mức thiết kế được phát triển như sau: Hình 3 49 Biểu đồ lớp mức chi tiết 3 2 6 Thiết kế kiến trúc vật lý 3 2 6 1 Biểu đồ thành phần Hệ thống được thiết kệ dựa theo mô hình client - server trong đó: Phía client là ứng dụng được triển khai trên các thiết bị chạy hệ điều hành Android Gửi các truy vấn lấy dữ liệu tới web server chạy các services của ứng dụng Phía server là ứng dụng được triển khai với ngôn ngữ PHP và cơ sở dữ liệu MySQL Gồm các xử lý gửi dữ liệu được yêu cầu của máy client G oi cap cuu Xu ly Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 42 Hình 3 50 Biểu đồ thành phần 3 2 6 2 Biểu đồ triển khai Hình 3 51 Biểu đồ triển khai Application Web Services : Máy chủ dịch vụ của ứng dụng Triển khai dịch vụ trên máy chủ Linux, sử dụng ngôn ngữ PHP và CSDL MySQL Client Ung Dung : Thiết bị sử dụng ứng dụng tìm kiếm, triển khai trên hệ điều hành Android Main Android Library O bject Client O bject cac chuc nang tim kiem O bject Services PHP control O bject cac chuc nang muc luc O bject Services Client ung dung Application W eb Services TCP/IP Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 43 CHƢƠNG 4 : XÂY DỰNG ỨNG DỤNG 4 1 DEMO CHƢƠNG TRÌNH 4 1 1 Xây dựng chức năng cập nhật dữ liệu của Web Services Các chức năng cập nhật dữ liệu của service được xây dựng khá đơn giản với việc tạo ra các form nhập liệu phù hợp và chèn dữ liệu vào trong CSDL Hình 4 1 Hình ảnh Web Services 4 1 2 Xây dựng chức năng xử lý của Web Services Có 3 chức năng xử lý chính của web services là trả về các kết quả truy vấn về danh sách các loại bệnh, bệnh, chi tiết bệnh Đều sử dụng chung một cách thức hoạt động là từ ứng dụng gửi các truy vấn có điều kiện, services xử lý rồi trả về kết quả tương ứng Bắt đầu Nhận các giá trị gử i đi ( NameValuePair ) Kết thúc HttpC lient PHP C ontrol Xuất kết quả Hình 4 2 Quá trình xử lý của Web Services Ứng dụng bác sĩ tại gia trên hê điều hành Android Võ Tấn – CCLT04B Trang 44 Như đã thấy việc gửi các giá trị truy vấn lên web service của ứng dụng thông qua các giá trị $_ REQUEST từ ứng dụng Android Để làm được điều đó phía ứng dụng phải sử dụng một đối tượng có kiểu BasicNameValuePair để tạo ra các biến REQUEST thông qua phương thức add(“tên_biến_request”, “giá_trị”) nameValuePairs add(new BasicNameValuePair("tieude",noidung)); Sau khi khai báo các biến $_REQUEST thì tiến hành xác định URL truy vấn và gán các biến NameValuePair cho URL đó rồi tiến hành thực thi Tiếp đến ở phía service, php có nhiệm vụ nhận các yêu cầu đó sau đó tạo truy vấn (select) vào cơ sở dữ liệu, lấy ra dữ liệu phù hợp với truy vấn rồi tiến hành xuất kết quả Dữ liệu đầu ra được php xử lý thành dạng ngôn ngữ JSON đã đề cập $sql = mysql_query("SELECT * FROM tb_loaibenh ORDER BY tenloaibenh"); if(mysql_num_rows($sql) > 0){ $dulieu[''''loaibenh''''] = array(); while($rows = mysql_fetch_array($sql)){ }else{ $dulieu[''''success''''] = 0; $dulieu[''''message''''] = "Chưa có loại bệnh nào"; echo json_encode($dulieu); 4 1 3 Đọc dữ liệu từ fi
LỜI CẢM ƠN Với phát triển nhanh chóng khoa học công nghệ đặc biệt ngành công nghệ thông tin, làm bước thay đổi sống người ứng dụng sản phẩm công nghệ Một phận ứng dụng cơng nghệ thơng tin thay đổi giúp đỡ việc sinh hoạt hàng ngày người sống Vì em lựa chọn đề tài “Ứng Dụng Bác Sĩ Tại Gia hệ điều hành Android” để làm đồ án với ý nghĩa mang tính thực tế Trong thời gian làm đồ án em gặp khơng khó khăn giúp đỡ hướng dẫn tận tình thầy giáo, giáo mơn lập trình – Khoa Khoa Học Máy Tính – Trường Cao Đẳng Cơng Nghệ Thơng Tin Hữu Nghị Việt – Hàn giúp em hoàn thành đồ án Em xin chân thành cảm ơn giảng viên Võ Hoàng Phương Dung – người trực tiếp hướng dẫn tận tình hướng dẫn giúp đỡ em hoàn thành đồ án Một lời cảm ơn sâu sắc em muốn gửi tới tồn thể thầy giáo trang bị cho em kiến thức cần thiết năm học vừa qua để em thực tốt đồ án đủ tự tin để làm việc sau Em xin chân thành cảm ơn! Trang i MỤC LỤC LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC TỪ VIẾT TẮT iv DANH MỤC CÁC HÌNH VẼ .v CHƢƠNG : CHƢƠNG MỞ ĐẦU 1.1 LÝ DO CHỌN ĐỀ TÀI 1.2 MỤC TIÊU VÀ NHIỆM VỤ .1 1.3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG 1.4 PHƢƠNG PHÁP NGHIÊN CỨU .2 1.5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG CHƢƠNG : CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID 2.1.1 Tổng quan cấu trúc Android .3 2.1.2 Sơ lƣợc phiên Android 2.1.3 Các thành phần ứng dụng Android .5 2.2 LẬP TRÌNH TRÊN HỆ ĐIỀU HÀNH ANDROID 2.2.1 Ngôn ngữ JAVA 2.2.1.1 Tổng quan ngôn ngữ JAVA .9 2.2.1.2 Một số tính chất ngơn ngữ JAVA 2.2.2 Ngôn ngữ JSON 12 2.2.3 Ngôn ngữ XML 12 2.2.4 Ngôn ngữ PHP 13 2.3 MÁY ẢO DALVIK VÀ ANDROID SDK 14 2.3.1 Máy ảo Dalvik 14 2.3.2 Android SDK .15 2.3.3 Android Emulator .16 CHƢƠNG : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 18 3.1 MÔ TẢ HỆ THỐNG 18 3.1.1 Yêu cầu chức : 18 3.1.2 Yêu cầu phi chức : 18 3.1.3 Yêu cầu hệ thống .18 3.2 PHÂN TÍCH THIẾT KẾ 19 3.2.1 Mơ hình hố u cầu 19 3.2.2 Mơ hình hóa khái niệm .23 Trang ii 3.2.3 Mô hình hóa tƣơng tác 24 3.2.3.1 Biểu đồ trình tự 24 3.2.3.2 Biểu đồ cộng tác 31 3.2.4 Mơ hình hóa hành vi 37 3.2.4.1 Biểu đồ trạng thái 37 3.2.4.2 Biểu đồ hành vi 38 3.2.5 Thiết kế chi tiết biểu đồ lớp 41 3.2.6 Thiết kế kiến trúc vật lý 41 3.2.6.1 Biểu đồ thành phần .41 3.2.6.2 Biểu đồ triển khai 42 CHƢƠNG : XÂY DỰNG ỨNG DỤNG 43 4.1 DEMO CHƢƠNG TRÌNH 43 4.1.1 Xây dựng chức cập nhật liệu Web Services 43 4.1.2 Xây dựng chức xử lý Web Services 43 4.1.3 Đọc liệu từ file JSON .44 4.1.4 Truyền liệu qua form 45 4.2 GIAO DIỆN CHƢƠNG TRÌNH .46 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 49 DANH MỤC TÀI LIỆU THAM KHẢO 50 NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN 51 Trang iii DANH MỤC CÁC TỪ VIẾT TẮT API: Application Programming Interface (Giao diện lập trình ứng dụng) CPU: Central Processing Unit (Đơn vị xử lý trung tâm) CSDL: Cơ sở liệu PHP: Hypertext Preprocessor (Ngơn ngữ lập trình kịch bản) HTML: HyperText Markup Language (Ngôn ngữ Đánh dấu Siêu văn bản) JSON: JavaScript Object Notation (Định dạng trao đổi liệu cực nhẹ) OOP: object-oriented programming (Lập trình hướng đối tượng) OHA: Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng) XML: eXtensible Markup Language (Ngôn ngữ Đánh dấu Mở rộng) SDK: Software Development Kit (Bộ công cụ phát triển phần mềm) DM: Danh mục Trang iv DANH MỤC CÁC HÌNH VẼ Hình 2.1 Các thành phần hệ điều hành Android Hình 2.2 Hình 2.3 Logo tên phiên Android Hình 2.4 Hình 2.5 Mơ hình hoạt động Activity Hình 2.6 Hình 2.7 Cách biên dịch chương trình truyền thống 10 Hình 3.1 Hình 3.2 Cơ chế biên dịch chương trình Java 10 Hình 3.3 Hình 3.4 Mơi trường phát triển ứng dụng Android Eclipse 16 Hình 3.5 Hình 3.6 Android Emulator 17 Hình 3.7 Hình 3.8 Kiến trúc hệ thống 18 Hình 3.9 Hình 3.10 Biểu đồ trường hợp sử dụng Uses case 21 Hình 3.11 Hình 3.12 Uses case trường hợp cập nhật DM Loại bệnh 21 Hình 3.13 Hình 3.14 Uses case trường hợp sử dụng Cập nhật DM Bệnh 22 Hình 3.15 Hình 3.16 Uses case trường hợp Cập nhật Chi tiết bệnh 22 Hình 3.17 Hình 3.18 Uses case trường hợp Tìm kiếm 22 Hình 3.19 Hình 3.20 Biểu đồ lớp biên 23 Hình 3.21 Hình 3.22 Biểu đồ lớp điều khiển 23 Biểu đồ lớp thực thể 24 Biểu đồ trình tự Mở hệ thống 24 Biểu đồ trình tự Đóng hệ thống 25 Biểu đồ trình tự Thêm DM Loại bệnh 25 Biểu đồ trình tự Hiệu chỉnh DM Loại bệnh 26 Biểu đồ trình tự Xóa DM Loại bệnh 26 Biểu đồ trình tự Thêm DM Bệnh 27 Biểu đồ trình tự Hiệu chỉnh DM Bệnh 27 Biểu đồ trình tự Xóa DM Bệnh 28 Biểu đồ trình tự Thêm Chi tiết bệnh 28 Biểu đồ trình tự Hiệu chỉnh Chi tiết bệnh 29 Biểu đồ trình tự Xóa Chi tiết bệnh 29 Biểu đồ trình tự Tìm Kiếm Bằng Web Services 30 Biểu đồ trình tự Gửi góp ý 30 Trang v Hình 3.23 Biểu đồ trình tự Gọi cấp cứu 31 Hình 3.24 Biểu đồ cộng tác Mở hệ thống 31 Hình 3.25 Biểu đồ cộng tác Đóng hệ thống 31 Hình 3.26 Biểu đồ cộng tác Thêm DM Loại bệnh 32 Hình 3.27 Biểu đồ cộng tác Hiệu chỉnh DM Loại bệnh 32 Hình 3.28 Biểu đồ cộng tác Xóa DM Loại bệnh 33 Hình 3.29 Biểu đồ cộng tác Thêm DM Bệnh 33 Hình 3.30 Biểu đồ cộng tác Hiệu chỉnh DM Bệnh 34 Hình 3.31 Biểu đồ cộng tác Xóa DM Bệnh 34 Hình 3.32 Biểu đồ cộng tác Thêm Chi Tiết Bệnh 35 Hình 3.33 Biểu đồ cộng tác Hiệu chỉnh chi tiết bệnh 35 Hình 3.34 Biểu đồ cộng tác Xóa Chi tiết bệnh 36 Hình 3.35 Biểu đồ cộng tác Tìm kiếm Web Services 36 Hình 3.36 Biểu đồ cộng tác Gửi góp ý 37 Hình 3.37 Biểu đồ cộng tác Gọi cấp cứu 37 Hình 3.38 Biểu đồ trạng thái Mở hệ thống 37 Hình 3.39 Biểu đồ trạng thái Tìm kiếm 38 Hình 3.40 Biểu đồ trạng thái Gửi góp ý 38 Hình 3.41 Biểu đồ trạng thái Gọi cấp cứu 38 Hình 3.42 Biểu đồ hành vi Mở hệ thống 38 Hình 3.43 Biểu đồ hành vi Cập Nhật DM Loại bệnh 39 Hình 3.44 Biểu đồ hành vi Cập Nhật DM Bệnh 39 Hình 3.45 Biểu đồ hành vi Chi tiết bệnh 40 Hình 3.46 Biểu đồ hành vi Tìm kiếm 40 Hình 3.47 Biểu đồ hành vi Gửi góp ý 40 Hình 3.48 Biểu đồ hành vi Gọi cấp cứu 41 Hình 3.49 Biểu đồ lớp mức chi tiết 41 Hình 3.50 Biểu đồ thành phần 42 Hình 3.51 Biểu đồ triển khai 42 Hình 4.1 Hình ảnh Web Services 43 Hình 4.2 Quá trình xử lý Web Services 43 Trang vi Hình 4.3 Mơ hình xác định mảng giá trị JSON 45 Hình 4.4 Mơ hình trao đổi liệu Activity 45 Hình 4.5 Cấu trúc Intent 45 Hình 4.6 Mục lục loại bệnh 46 Hình 4.7 Mục lục bệnh 46 Hình 4.8 Chi tiết bệnh 47 Hình 4.9 Gọi cấp cứu 47 Hình 4.10 Góp ý 47 Hình 4.11 Giới thiệu 47 Hình 4.12 Tìm kiếm bệnh 48 Trang vii Ứng dụng bác sĩ gia điều hành Android CHƢƠNG : CHƢƠNG MỞ ĐẦU 1.1 LÝ DO CHỌN ĐỀ TÀI Ngày thiết bị số cầm tay điện thoại di động, điện thoại thông minh, máy tính bảng có nhiều thị trường Với giá thành ngày rẻ lợi ích đem lại, thiết bị ngày sử dụng nhiều phổ biến Một tảng sử dụng thiết bị hệ điều hành thông minh Android Google Do việc phát triển sử dụng thiết bị phần cứng cách hiệu việc phát triển ứng dụng phần mềm chạy Android lúc tăng cao Các thiết bị di động ngày mạnh mẽ với khả xử lí tác vụ mà khó tưởng tượng trước vài năm Những điện thoại thời trang tiện dụng với tính ưu việt phần cứng Trong việc phát triển tảng di động chủ yếu xây dựng hệ điều hành độc quyền, hạn chế ứng dụng bên thứ ba, đời Android mang lại giải pháp mở Không bị hạn chế, lập trình viên Android tự viết ứng dụng tận dụng tối đa phát triển mạnh mẽ phần cứng cho điện thoại di động Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên chiếm thị phần lớn thị trường di động Việc sử dụng thiết bị số ngồi khả hỗ trợ người cơng việc, giải trí mà cịn giúp người tiết kiệm thời gian vào nhiều công việc thực tiễn đời sống ngày Hiện việc cứu chữa tự chấn đốn bệnh thơng thường người ngày hạn hẹp, thiếu kiến thức thực tiễn nhiều lúc đưa phán đoán sai dẫn đến nguy hiểm cho người Trong sống việc trang bị kiến thức khơng cịn phổ biến thường xun Vì tìm cách chữa hợp lý phán đốn triệu chứng bệnh kịp thời giúp cho việc chữa bệnh nhanh chóng hiệu Từ lý nên em định chọn đề tài “Ứng Dụng Bác Sĩ Tại Gia hệ điều hành Android” để làm đồ án tốt nghiệp 1.2 MỤC TIÊU VÀ NHIỆM VỤ Mục tiêu: Tìm hiểu cơng nghệ lập trình cần thiết Android để hồn thành ứng dụng tìm kiếm nhanh xác bệnh Đưa xử lý nhanh chóng Võ Tấn – CCLT04B Trang Ứng dụng bác sĩ gia điều hành Android Hiểu nguyên lý hoạt động Android, thành phần hệ thống ứng dụng thực thi Android Tìm hiểu áp dụng cơng nghệ lập trình Android ngơn ngữ JAVA, tương tác với tài nguyên hệ thống Tìm hiểu xây dựng dịch vụ web php sử dụng hệ sở liệu MySQL Nhiệm vụ: Đọc tài liệu liên quan thư viện lập trình Android Tìm hiểu dịch vụ liên quan đến ứng dụng 1.3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG Đối tƣợng: Ngôn ngữ JAVA, PHP, JSON, XML Hệ sở liệu MySQL Công cụ Android SDK Eclipse Hệ điều hành tài nguyên hệ thống Android Phạm vi: Đề tài dừng lại khuôn khổ tìm kiếm loại bệnh bệnh, hướng dẫn cách nhận biết bệnh, cách xử lý bệnh cho nhanh chóng hợp lý Ứng dụng viết Android 2.3 1.4 PHƢƠNG PHÁP NGHIÊN CỨU Đọc sách tài liệu tham khảo tìm 1.5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG Chương trình áp dụng vào sống hàng ngày để xử lý cách bệnh thường gặp, cách chữa trị nhanh chóng hiệu Ứng dụng giúp người bác sĩ nhà Võ Tấn – CCLT04B Trang Ứng dụng bác sĩ gia điều hành Android CHƢƠNG : CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID Android hệ điều hành thiết bị số di động smartphone tablet (và số đầu phát HD, HD Player) phát triển Google dựa tảng Linux Trước đây, Android phát triển công ty liên hợp Android Vào năm 2005, Google mua lại Android nằm chiến lược tiến vào thị trường di động Google muốn Android trở thành tảng “mở” miễn phí Do hầu hết mã nguồn Android phát hành theo giấy phép mã nguồn mở Apache nên muốn sử dụng Android download tồn mã nguồn Hơn nhà sản xuất phần cứng thêm thành phần mở rộng độc quyền hãng để tạo sản phẩm khác Chính mơ hình phát triển đơn giản khiến Android trở nên hấp dẫn Android có cộng đồng nhà phát triển lớn viết ứng dụng cho hệ điều hành Hiện có khoảng 250,000 ứng dụng cho Android OS vào khoảng 375,000 ứng dụng đệ trình, điều khiến Android trở thành hệ điều hành di động có mơi trường phát triển lớn thứ Các nhà phát triển viết ứng dụng cho Android dựa ngôn ngữ Java Sự mắt Android vào ngày tháng 11 năm 2007 gắn với thành lập liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm viễn thơng nhằm mục đính tạo nên chuẩn mở cho điện thoại di động tương lai Google công bố hầu hết mã nguồn Android theo cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java 1.75 triệu dòng mã C++ 2.1.1 Tổng quan cấu trúc Android Nói cách đơn giản Android bao gồm ba thành phần: Một hệ điều hành mở, miễn phí cho thiết bị di động Một tảng mã nguồn mở cho phát triển ứng dụng Thiết bị chạy hệ điều hành Android ứng dụng Android Chi tiết Android gồm thành phần quan trọng sau: Một thiết kế phần cứng cho thiết bị di động hỗ trợ phần mềm Một nhân hệ điều hành Linux cung cấp giao diện mức thấp với phần cứng, quản lý nhớ kiểm sốt tiến trình Tất tối ưu hố cho thiết bị di động Võ Tấn – CCLT04B Trang