Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Luận văn ứng dụng smartphone cho điện tâm đồ không dây...

Tài liệu Luận văn ứng dụng smartphone cho điện tâm đồ không dây

.PDF
49
153
75

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH PHÚC ỨNG DỤNG SMARTPHONE CHO ĐIỆN TÂM ĐỒ KHÔNG DÂY LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG Hà Nội – 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH PHÚC ỨNG DỤNG SMARTPHONE CHO ĐIỆN TÂM ĐỒ KHÔNG DÂY Ngành: Công nghệ Điện tử - Viễn thông Chuyên ngành: Kỹ thuật Điện tử Mã số: 60 52 02 03 LUẬN VĂN THẠC SĨ CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN QUỐC TUẤN Hà Nội – 2014 Lời cam đoan Tôi xin cam đoan bản luận văn Thạc sĩ Công nghệ Điện tử - Viễn thông “Ứng dụng smartphone cho điện tâm đồ không dây” là công trình nghiên cứu của cá nhân tôi. Các kết quả, số liệu trình bày trong luận văn là trung thực. Các trích dẫn và tài liệu tham khảo sử dụng trong luận văn đều được chỉ rõ nguồn và tác giả. Hà Nội, ngày 09 tháng 10 năm 2014 Người cam đoan NGUYỄN THANH PHÚC Lời cảm ơn Trước hết tôi xin gửi lời cảm ơn chân thành tới các thầy cô trong Khoa Điện tử Viễn thông và các thầy cô giảng dạy chương trình Thạc sĩ Công nghệ Điện tử - Viễn thông, trường Đại học Công nghệ, Đại học Quốc gia Hà Nội với tri thức và tâm huyết của mình đã giúp chúng tôi trang bị kiến thức và hoàn thành chương trình đào tạo. Tôi xin gửi tới PGS.TS. Nguyễn Quốc Tuấn, chủ nhiệm Bộ môn Hệ thống viễn thông, khoa Điện tử - Viễn thông, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội lời cảm ơn trân trọng nhất vì đã khuyến khích, tạo điều kiện và hướng dẫn, chỉ bảo tận tình tôi trong suốt quá trình thực hiện luận văn. Cuối cùng tôi xin gửi lời cảm ơn tới người thân trong gia đình, bạn bè đã giúp đỡ, động viên tôi trong suốt quá trình học tập và hoàn thành luận văn. 1 Mục lục Lời cam đoan .......................................................................................................... 3 Lời cảm ơn .............................................................................................................. 4 Bảng các ký hiệu, chữ viết tắt ................................................................................. 3 Danh mục các bảng ................................................................................................. 4 Danh mục các hình vẽ, đồ thị ................................................................................. 5 MỞ ĐẦU ................................................................................................................ 6 1. Lý do chọn đề tài ............................................................................................ 6 2. Nội dung và đối tượng nghiên cứu ................................................................. 6 Chương 1. ĐIỆN TÂM ĐỒ .................................................................................... 8 1.1. Nguyên lý ..................................................................................................... 8 1.1.1. Tim ........................................................................................................ 8 1.1.2. Định nghĩa điện tâm đồ ......................................................................... 8 1.1.3. Sự hình thành ........................................................................................ 8 1.2. Cách mắc điện cực ....................................................................................... 8 1.2.1. Điện trường tim..................................................................................... 8 1.2.2. Cách mắc............................................................................................... 8 1.3. Ý nghĩa dạng sóng ....................................................................................... 9 1.4. Hệ đo, thông số tín hiệu điện tim ................................................................. 9 1.5. Cơ sở dữ liệu mẫu ...................................................................................... 10 1.5.1. PhysioBank ......................................................................................... 10 1.5.2. Physio Toolkit ..................................................................................... 10 Chương 2. ANDROID .......................................................................................... 11 2.1. Kiến trúc .................................................................................................... 11 2.1.1. Các thành phần.................................................................................... 11 2.1.2. Applications ........................................................................................ 12 2.2. Môi trường phát triển ................................................................................. 16 2.2.1. Android SDK ...................................................................................... 16 2.2.2. Eclipse ................................................................................................. 17 2 2.2.3. Emulator .............................................................................................. 18 Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG ............................................... 20 3.1. Phân tích yêu cầu ....................................................................................... 20 3.1.1. Mô tả ................................................................................................... 20 3.1.2. Bảng phân tích xác định chức năng, tác nhân, hồ sơ .......................... 21 3.1.3. Biểu đồ ngữ cảnh ................................................................................ 22 3.1.4. Phân rã chức năng ............................................................................... 22 3.1.5. Ma trận thực thể - chức năng .............................................................. 24 3.2. Mô hình khái niệm/logic ............................................................................ 25 3.2.1. Biểu đồ luồng dữ liệu mức 0 .............................................................. 25 3.2.2. Biểu đồ luồng dữ liệu mức 1 .............................................................. 25 3.2.3. Mô hình thực thể mối quan hệ ............................................................ 27 3.2.4. Biểu đồ quan hệ .................................................................................. 27 3.3. Thiết kế cơ sở dữ liệu ................................................................................ 28 3.4. Thiết kế lớp ................................................................................................ 29 3.5. Thiết kế giao diện ...................................................................................... 29 3.5.1. Giao diện ứng dụng............................................................................. 29 3.5.2. Giao diện web ..................................................................................... 34 Chương 4: CÀI ĐẶT VÀ THỬ NGHIỆM ........................................................... 38 4.1. Cài đặt ứng dụng ........................................................................................ 38 4.1.1. Cài đặt bộ công cụ phát triển .............................................................. 38 4.1.2. Project ................................................................................................. 39 4.2. Cài đặt Server............................................................................................. 40 4.3. Thử nghiệm ................................................................................................ 42 4.3.1. Ứng dụng ............................................................................................ 42 4.3.2. Server .................................................................................................. 42 KẾT LUẬN ........................................................................................................... 44 TÀI LIỆU THAM KHẢO .................................................................................... 45 3 Bảng các ký hiệu, chữ viết tắt Chữ viết tắt ADT App ECG ERM JDK IDE SDK Ý nghĩa Android Development Tools: các công cụ phát triển Android cài thêm trên Eclipse Application: ứng dụng Android Electrocardiography: Điện tâm đồ Entity-Relationship Model: Mô hình thực thể mối quan hệ Java Development Kit: Công cụ phát triển ngôn ngữ lập trình Java Integrated Development Environment: môi trường phát triển hợp nhất Software Development Kit: bộ công cụ phát triển phần mềm 4 Danh mục các bảng Bảng 3.1. Phân tích xác định chức năng, tác nhân ............................................... 21 Bảng 3.2. Nhóm các chức năng ............................................................................ 22 Bảng 3.3. Các hồ sơ sử dụng ................................................................................ 24 Bảng 3.4. Ma trận thực thể - chức năng ................................................................ 24 Bảng 3.5. Bệnh nhân ............................................................................................. 28 Bảng 3.6. Bác sĩ .................................................................................................... 28 Bảng 3.7. Bệnh án ................................................................................................. 28 Bảng 3.8. Phản hồi ................................................................................................ 28 5 Danh mục các hình vẽ, đồ thị Hình 1.1. Dạng sóng Điện tâm đồ ................................................................................... 9 Hình 2.1. Kiến trúc của hệ điều hành Android ..................................................... 11 Hình 2.2. Vòng đời của activity ............................................................................ 13 Hình 2.3. Layout ................................................................................................... 16 Hình 2.4. Quy trình phát triển một ứng dụng Android ......................................... 18 Hình 3.1. Sơ đồ hệ thống ...................................................................................... 20 Hình 3.2. Biểu đồ ngữ cảnh .................................................................................. 22 Hình 3.3. Biểu đồ phân rã chức năng ................................................................... 23 Hình 3.4. Biểu đồ luồng dữ liệu mức 0................................................................. 25 Hình 3.5. Biểu đồ luồng dữ liệu mức 1 quản lý thông tin bệnh nhân................... 26 Hình 3.6. Biểu đồ luồng dữ liệu mức 1 quản lý bệnh án ...................................... 26 Hình 3.7. Mô hình thực thể mối quan hệ .............................................................. 27 Hình 3.8. Biểu đồ quan hệ .................................................................................... 27 Hình 3.9. Màn hình menu của ứng dụng: ............................................................. 30 Hình 3.10. Bluetooth:............................................................................................ 31 Hình 3.11. Đồ thị dạng sóng điện tim ................................................................... 32 Hình 3.12. Gửi thông tin: ...................................................................................... 33 Hình 3.13. Màn hình help ..................................................................................... 34 Hình 3.14. Trang đăng ký ..................................................................................... 35 Hình 3.15. Trang đăng nhập ................................................................................. 35 Hình 3.16. Danh sách bệnh nhân .......................................................................... 36 Hình 3.17. Danh sách bác sĩ ................................................................................. 36 Hình 3.18. Trang bệnh án: .................................................................................... 37 Hình 4.1. Màn hình Eclipse .................................................................................. 39 Hình 4.2. Cơ sở dữ liệu ......................................................................................... 41 Hình 4.3. Truyền dữ liệu tới server....................................................................... 42 6 MỞ ĐẦU 1. Lý do chọn đề tài Bệnh tim là một trong những vấn đề sức khỏe hiện được quan tâm trên thế giới. Đây là gánh nặng cho xã hội với tỷ lệ tử vong và tàn phế cao hàng đầu. Bên cạnh đó, chi phí điều trị và chăm sóc điều trị bệnh nhân cũng là một gánh nặng. Cùng với sự phát triển của kinh tế, số lượng người béo phì, hút thuốc lá, rượu bia và đái tháo đường gia tăng cùng lối sống ít vận động gây nên những bệnh lý về tim mạch như cao huyết áp, xơ vữa mạch vành và đột quỵ. Theo thống kê của Tổ chức Y tế thế giới WHO, bệnh liên quan đến tim mạch là nguyên nhân gây tử vong cho 17.3 triệu người hàng năm, chiếm 30% tổng số ca tử vong trên toàn thế giới. Trong đó 80% đến từ các nước thu nhập thấp và trung bình. Dự đoán năm 2030 sẽ có hơn 23.3 triệu người chết vì bệnh tim mỗi năm. [1] Ở nước ta hiện nay, hệ thống y tế vẫn còn những khó khăn và thách thức lớn. Nhu cầu khám chữa bệnh, chăm sóc sức khỏe đòi hỏi cao, trong khi nguồn lực còn hạn hẹp. Theo thống kê, tỷ lệ bác sĩ trên 1000 bệnh nhân là 1.22 bác sĩ/1000 dân, tỷ lệ giường bệnh là 2.2 giường bệnh /1000 dân [2]. Điều đó đặt ra áp lực rất lớn lên ngành y tế, các thủ tục hành chính, qui trình khám chữa bệnh đã được cải cách, cùng với việc áp dụng công nghệ thông tin vào bệnh viện. Tuy nhiên, việc ứng dụng công nghệ thông tin trong y tế vẫn còn hạn chế và thiếu đồng bộ. Điều đó đặt ra thách thức, đồng thời cũng tạo ra những cơ hội. Theo thống kê, ở Việt Nam hiện có 136 triệu thuê bao di động, 36 triệu người sử dụng Internet. Sự bùng nổ của các thiết bị di động, đặc biệt là smartphone đã khẳng định tầm quan trọng của nó trong đời sống xã hội. Các sản phẩm mới có cấu hình và thời lượng sử dụng pin ngày càng được cải thiện. Bên cạnh đó, các smartphone tích hợp cảm biến và ứng dụng về chăm sóc sức khỏe đang là một xu hướng phát triển mạnh mẽ. Các nghiên cứu ứng dụng trong chăm sóc sức khỏe, nhất là những ứng dụng dựa trên nền tảng Android đang thu hút được sự chú ý trong những năm gần đây như nghiên cứu giải thuật tăng cường ảnh và truyền kết quả bằng công nghệ điện toán đám mấy của nhóm tác giả từ đại học Tennessee, Knoxville, Hoa Kỳ. Nghiên cứu của nhóm tác giả từ đại học Erlangen-Nuremberg, Đức dựa trên giải thuật Pan-Tompkins để phát hiện phức bộ QRS và đếm nhịp tim. Sản phẩm của nhóm tác giả từ đại học kỹ thuật Lahore, Pakistan về máy đo điện tim giá rẻ dựa trên vi điều khiển MSP430 và điện thoại Android [3-6]. 2. Nội dung và đối tượng nghiên cứu Từ những lý do trên, nội dung của luận văn là giải quyết bài toán phát triển ứng dụng smartphone cho y tế. Đối tượng là phát triển ứng dụng smartphone chạy trên hệ 7 điều hành Android, truyền dữ liệu điện tim từ thiết bị đầu cuối tới trung tâm. Nội dung và phương pháp nghiên cứu được trình bày trong các chương: Chương 1: Điện tâm đồ. Trình bày những khái niệm cơ bản về tín hiệu điện tim, nguyên lý hình thành, đặc điểm tín hiệu và phương pháp ghi điện tâm đồ, ý nghĩa dạng sóng. Phần cuối cùng của chương trình bày về cơ sở dữ liệu được sử dụng trong đề tài. Đây là nguồn dữ liệu sinh lý học tin cậy phục vụ cho nghiên cứu được đo của bệnh nhân tim và được số hóa và cung cấp miễn phí trên trang web http://physionet.org/. Chương 2: Android. Trình bày kiến thức về hệ điều hành Android, kiến trúc, bộ công cụ phát triển Android SDK, bộ công cụ phát triển hợp nhất Eclipse cũng như các chương trình mô phỏng Emulator. Chương 3: Phân tích thiết kế hệ thống. Khảo sát hệ thống, xây dựng biểu đồ phân rã chức năng, mô hình khái niệm, thiết kế logic và thiết kế vật lý. Chương 4: Cài đặt và thử nghiệm. Trình bày nội dung ứng dụng và server bao gồm cài đặt và thử nghiệm. Ứng dụng được xây dựng để đọc và xử lý dữ liệu. Các thành phần chính của ứng dụng bao gồm: nhận dữ liệu qua Bluetooth, hiển thị dạng sóng lên màn hình, truyền dữ liệu về server. Server gồm cơ sở dữ liệu MySQL, các trang webpage PHP đăng nhập và tra cứu hồ sơ bệnh nhân. Kết luận. Những mặt đạt được và hạn chế, hướng phát triển tiếp theo. 8 Chương 1. ĐIỆN TÂM ĐỒ 1.1. Nguyên lý 1.1.1. Tim Quả tim là cơ quan chịu trách nhiệm bơm máu cho hệ tuần hoàn. Tim được cấu tạo bởi một loại cơ đặc biệt và tự đập mà không qua sự điều khiển của não bộ. Cấu tạo của tim gồm 4 buồng: 2 tâm nhĩ và 2 tâm thất. Nhĩ trái nhận máu giàu O2 từ tĩnh mạch, đẩy xuống thất trái, thất trái đẩy máu với áp lực mạnh vào động mạch và được đưa đi tới các bộ phận khác của cơ thể. Máu quay trở lại qua nhĩ phải chứa nhiều CO2 và được bơm vào phổi để trao đổi CO2 lấy O2 và quay trở lại nhĩ trái để lặp lại vòng tuần hoàn. Mỗi phút tim của một người trưởng thành đập khoảng 70 – 90 nhịp. 1.1.2. Định nghĩa điện tâm đồ Điện tâm đồ là đồ thị tuần hoàn ghi lại biến thiên của dòng điện do tim phát ra trong quá trình hoạt động co bóp. Điện tâm đồ được ghi lại lần đầu tiên bởi Einthoven năm 1903 bằng một điện kế nhạy cỡ mili volt. 1.1.3. Sự hình thành Do sự thay đổi nồng độ ion Na+, Ca++ và K+ ở trong và ngoài tế bào trong quá trình co bóp. Lúc nghỉ các ion dương ở ngoài màng tế bào còn các ion âm bị giữ ở trong màng tế bào để cân bằng lực hút tĩnh điện. Khi cơ tim bị kích thích sẽ xuất hiện sự khử cực trong đó các ion âm khuếch tán ra ngoài màng còn các ion dương khuếch tán vào trong màng. Tiếp theo sự khử cực là tái cực khi các ion dương ở ngoài màng tế bào và các ion âm ở trong màng. 1.2. Cách mắc điện cực 1.2.1. Điện trường tim Do cơ thể con người là môi trường dẫn điện nên dòng điện do tim co bóp gây ra được lan truyền khắp cơ thể và ra tới da. Vì vậy cơ thể là một điện trường của tim. Nếu ta đặt hai điện cực bất kỳ trên da có điện thế khác nhau ta sẽ thu được một dòng điện là hiệu điện thế giữa hai điểm đó và gọi là một chuyển đạo (lead), nó hiện ra trên máy bằng một đường cong điện tâm đồ có hình dạng tùy thuộc vào vị trí đặt điện cực. Đường thẳng nối hai điểm đặt điện cực gọi là trục chuyển đạo. 1.2.2. Cách mắc Có 12 cách đặt chuyển đạo bao gồm 3 chuyển đạo mẫu (standard), 3 chuyển đạo đơn cực các chi và 6 chuyển đạo trước tim. Mỗi cách mắc cho một dạng sóng điện tâm đồ khác nhau. 9 Qui ước mắc điện cực: đặt điện cực dương ở bên trái quả tim và điện cực âm ở bên phải của quả tim. 1.3. Ý nghĩa dạng sóng Hình 1.1. Dạng sóng Điện tâm đồ Điện tâm đồ gồm 6 sóng nối tiếp nhau P, Q, R, S, T, U Sóng P thể hiện quá trình khử cực của tâm nhĩ. Khử cực tâm thất bao gồm 3 sóng cao nhọn Q, R, S biến thiên trong thời gian rất nhanh khoảng 0.07s và phức tạp nên được gọi là phức bộ QRS. Tiếp theo khử cực là một thời kỳ tái cực chậm không thể hiện trên điện tâm đồ bằng sóng nào mà chỉ là một đoạn thẳng, sau đó là thời kỳ tái cực nhanh thể hiện bằng sóng T. [7] 1.4. Hệ đo, thông số tín hiệu điện tim Dòng điện do tim sinh ra trong quá trình co bóp là một tín hiệu rất yếu cỡ 0.5mV – 5mV. Vì dòng điện tim có điện thế rất nhỏ, nên trong khi ghi điện tâm đồ rất dễ bị ảnh hưởng bởi các nhiễu như: nhiễu tần số 50Hz do mạng điện sinh hoạt, thắp đèn, chạy quạt, chạy máy X quang có dây dẫn đi qua gần đó hoặc các dòng điện phát sinh từ cơ và da của bệnh nhân. Hệ đo: vì tín hiệu điện tim rất yếu nên phải được khuếch đại. Thông tin có ý nghĩa trong chẩn đoán nằm trong dải tần 0.5Hz – 80Hz nên có thể loại bỏ hết các tín hiệu tần số cao. Do đó tín hiệu thu được từ điện cực được đi qua bộ lọc thông thấp với 10 tần số cắt fc=100Hz và bộ lọc triệt tần fc=50Hz để loại bỏ nhiễu do mạng điện sinh hoạt. Cuối cùng tín hiệu tương tự được số hóa bởi bộ ADC. 1.5. Cơ sở dữ liệu mẫu Dữ liệu được sử dụng trong luận văn được lấy từ nguồn PhysioNet. Đây là trang web cung cấp dữ liệu y sinh được thu từ trước tại các bệnh viện để phục vụ cho nghiên cứu và được bảo trợ bởi National Institute of Biomedical Imaging and Bioengineering (NIBIB) và the National Institute of General Medical Sciences (NIGMS) của Hoa Kỳ. Các tài nguyên có trên PhysioNet bao gồm: PhysioBank, Physio Toolkit, PhysioNet Library và PhysioNetworks. 1.5.1. PhysioBank PhysioBank là kho dữ liệu sinh lý học được số hóa để cung cấp cho cộng đồng nghiên cứu y sinh. Hiện nay PhysioBank bao gồm dữ liệu về tim phổi, thần kinh và các tín hiệu y sinh khác của người khỏe mạnh và người bệnh. Các thông số về những bệnh tật có ảnh hưởng tới sức khỏe cộng đồng như đột quỵ, suy tim, động kinh, ngừng thở khi ngủ và lão hóa. Hiện nay PhysioBank bao gồm 50 cơ sở dữ liệu có thể tải về miễn phí. 1.5.2. Physio Toolkit Là thư viên lớn và ngày càng tăng về số lượng các phần mềm nguồn mở để mở và phân tích dữ liệu như convert dữ liệu từ binary sang text, xử lý tín hiệu, các thư viện và công cụ phát triển hỗ trợ các ngôn ngữ C, C++, Fortran, Java, Python, Perl và Matlab. Tất cả các phần mềm đều được cung cấp ở dạng mã nguồn theo giấy phép GNU General Public License (GPL). 11 Chương 2. ANDROID 2.1. Kiến trúc 2.1.1. Các thành phần Hình 2.1. Kiến trúc của hệ điều hành Android Android được xây dựng trên nhân Linux. Linux là một hệ điều hành hoạt động ổn định và an toàn, với một thiết bị di động thì tính ổn định quan trọng hơn hiệu năng, bởi vì khi mua một thiết bị di động thì thoại vẫn là tính năng chính. Android sử dụng Linux để quản lý bộ nhớ, quản lý các tiến trình, mạng và service của hệ thống. Nhân Linux là nơi cài đặt các driver đặc tả phần cứng như Keypad, Wi-Fi, Bluetooth, Flash Memory, Audio. Nó được thiết kế để mềm dẻo với nhiều thành phần tùy chọn khác nhau để tương thích với phần cứng, bao gồm cả những tính năng như màn hình cảm ứng, camera, GPS. Ở bên trên nhân Linux là thư viện, bao gồm:  Trình duyệt web tích hợp dựa trên dự án mã nguồn mở WebKit engine  Đồ họa: các thư viện đồ họa 2D; thư viện đồ họa 3D dựa trên OpenGL ES (Open Graphics Library for Embedded System)  Cơ sở dữ liệu SQLite  Hỗ trợ các định dạng âm thanh, video và ảnh thông dụng (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Các dịch vụ: 12      Activities và views Thoại Cửa sổ Các tài nguyên Các dịch vụ định vị Android runtime bao gồm máy ảo Dalvik và thư viện Java core. Các ứng dụng chạy trên thiết bị Android được viết bằng ngôn ngữ Java và được biên dịch thành byte code và được thực thi bởi máy ảo Dalvik trên thiết bị di động. Dalvik là một máy ảo Java được tối ưu hóa cho thiết bị di động vốn có bộ nhớ và thời lượng pin hạn chế. Nhiều máy ảo có thể chạy cùng lúc và nó tận dụng được ưu điểm của hệ điều hành Linux cho bảo mật. Ở bên trên của runtime và thư viện native là lớp Application Framwork. Nó bao gồm các framework quan trọng sau :  Activity Manager : quản lý vòng đời của ứng dụng.  Content providers : quản lý và chia sẻ dữ liệu.  Resource manager : tài nguyên là tất cả những gì chạy cùng chương trình mà không phải là code.  Location manager : quản lý vị trí  Notificaiton manager : quản lý các thông báo Lớp cao nhất trong kiến trúc Android là lớp ứng dụng. Người dùng đầu cuối sẽ chỉ nhìn thấy những chương trình này. Ứng dụng là những chương trình chiếm toàn màn hình và tương tác với người sử dụng. Ngoài ra, widgets hoạt động với một cửa sổ nhỏ hình chữ nhật trên màn hình chính của ứng dụng. 2.1.2. Applications Mỗi ứng dụng chạy trong một tiến trình Linux riêng. Các thành phần cơ bản của một ứng dụng Android: a. Activity Activity là thành phần quan trọng nhất trong phát triển một ứng dụng Android. Định nghĩa activity là những lớp nằm trong các gói tương tác với người dùng. Một activity mới được tạo ra phải được khai báo trong file AndroidManifest.xml. Activity bao gồm 4 trạng thái:  Active: là trạng thái mà activity đang hiển thị trên màn hình (foreground)  Paused: activity vẫn hiển thị nhưng không thể tương tác  Stop: khi được thay thế bằng một activity mới, activity cũ sẽ chuyển sang trạng thái stop. 13  Killed: khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình. Vòng đời của một activity Hình 2.2. Vòng đời của activity Trong hệ thống, activity được quản lý theo nguyên lý xếp chồng. Khi một activity mới được chạy, nó được đặt ở trên đỉnh của chồng và trở thành activity đang chạy. Activity trước sẽ bị xếp xuống bên dưới nó và không quay trở lại foreground chừng nào activity mới thoát ra. Một activity có bốn trạng thái:  Nếu một activity ở foreground của màn hình, tức là ở trên đỉnh của stack thì nó ở trạng thái active hoặc running.  Nếu bị một activity mới chiếm màn hình nhưng activity cũ vẫn được nhìn thấy thì nó ở trạng thái paused. Ở trạng thái này, nó giữ toàn bộ trạng thái và thông tin nhưng không thể bị kill bởi hệ thống khi ở tình trạng bộ nhớ đầy.  Nếu một activity bị che khuất hoàn toàn bởi một activity khác, nó rơi vào trạng thái stopped. Nó vẫn giữ lại toàn bộ trạng thái và thông tin, tuy 14 nhiên, nếu nó không được hiển thị cho người sử dụng nữa thì các cửa sổ của nó sẽ bị ẩn và thường sẽ bị hệ thống kill để nhường bộ nhớ cho nơi khác.  Nếu một activity ở trạng thái paused hoặc stopped, hệ thống có thể bỏ activity khỏi bộ nhớ bằng cách yêu cầu nó có kết thúc hay không, hoặc đơn giản là hủy các process của nó. Khi nó hiển thị trở lại cho người sử dụng, nó phải được khởi động lại hoàn toàn và khôi phục lại trạng thái trước đó. Trong vòng đời của một activity có ba vòng chính:  Entire lifetime: giữa cuộc gọi đầu tiên onCreate(Bundle) tới cuộc gọi kết thúc onDestroy().  Visible lifetime: giữa cuộc gọi onStart() tới onStop. Trong thời gian này người sử dụng có thể trông thấy activity trên màn hình dù nó có thể không ở foreground và tương tác với người dùng.  Foreground lifetime: giữa cuộc gọi onResume() và onPause(). Trong thời gian này activity ở bên trên tất cả activity khác và tương tác với người sử dụng. Một activity có thể thường xuyên chuyển đổi giữa các trạng thái resumed và paused, ví dụ thiết bị ở trạng thái sleep, khi một intent được gửi tới. Thời gian sống của một activity được định nghĩa bởi các phương thức sau:  onCreate() được gọi khi activity được khởi tạo. Nó luôn được tiếp nối bởi phương thức onStart().  onRestart() được gọi để khởi động lại sau khi activity bị stopped. Luôn được tiếp nối bởi onStart().  onStart() được gọi khi activity hiển thị với người sử dụng.  onResume() được gọi khi hệ thống khôi phục lại activity trước.  onStop() được gọi khi activity không được sử dụng nữa.  onDestroy() cuộc gọi cuối cùng trước khi activity bị hủy. Nó xảy ra khi activity kết thúc hoặc khi hệ thống tạm thời hủy activity này để giải phóng bộ nhớ. b. Service Là một thành phần của app chạy ngầm trong background, không tương tác với người dùng và có thời gian chạy không xác định. Service chạy trong thread chính của tiến trình, nếu service làm công việc chiếm nhiều CPU hoặc thời gian, nó cần sinh ra một thread riêng. 15 Cũng giống như activity, service được khởi tạo bằng phương thức onCreate() và trả lại tài nguyên bằng onDestroy() c. Intent Trong một ứng dụng thường có nhiều activity và chúng độc lập với nhau. Các activity dùng intent để trao đổi thông tin với nhau. Thông tin của một intent bao gồm: action hay service muốn thực hiện và data cho action hoặc service đó. Ứng dụng quan trọng nhất của intent là gọi một activity hoặc một service. Intent được phát quảng bá tới tất cả activity hoặc service. Để tương tác chúng dùng Intent-filter, nó quy định quan hệ giữa intent với activity hoặc service. Khi một intent được phát đi, hệ thống sẽ đánh giá các activity, service và broadcast receiver rồi gửi nó đến nơi phù hợp. d. Content Provider Là nơi lưu giữ và đọc dữ liệu cho các ứng dụng. Có các content provider cho các kiểu dữ liệu thông dụng như âm thanh, video, ảnh, thông tin liên lạc cá nhân. Một content provider có thể cung cấp dữ liệu cho activity và service trong cùng ứng dụng hoặc các activity và service ở trong ứng dụng khác. [8] e. Broadcast Receiver Broadcast Receiver là một thành phần của tiến trình Android như các Activities, conten providers và các services, có nhiệm vụ đáp ứng lại một bản tin, ở đây là quảng bá một intent. Các thành phần khác như activity sử dụng phương thức sendBroadcast() có trong lớp Context để phát quảng bá một sự kiện. Đối số của phương thức này là một intent.[9] f. Threads Mỗi thread là một đơn vị thực thi song song, mỗi ứng dụng có ít nhất một thread chạy khi nó được khởi động, đó là luồng chính (main thread). Ngoài ra nó có thể có them vài luồng khác cho các hoạt động phục vụ luồng chính. Các luồng dùng chung tài nguyên của tiến trình nhưng thực thi độc lập. Một ứng dụng có thể tách thành một luồng chính chạy giao diện người sử dụng và các luồng chạy ở background phục vụ các nhiệm vụ có thời gian dài. Với hệ thống có vi xử lý đa nhân thì việc chạy đa luồng giúp cho ứng dụng chạy nhanh hơn. Khi một tiến trình được sinh ra, luồng chính được dùng để chạy một messenger queue, hàng đợi này quản lý các thành phần của ứng dụng như activity, intent receiver. Các luồng phụ tương tác với luồng chính thông qua token. Khi lấy được token, luồng phụ ghi dữ liệu vào messenger queue của handler và được thực thi khi nó ra khỏi hàng đợi. Nhiệm vụ chính của handler là xếp lịch cho các message để thực thi trong một thời điểm trong tương lai và xếp hàng một action cần thực hiện tại một luồng khác. 16 g. XML layouts Layout là một cấu trúc trực quan của một giao diện người sử dụng cho một activity hoặc một widget của ứng dụng. Có thể khai báo một layout theo hai cách:  Khai báo một thành phần giao diện người dùng trong XML. Android cung cấp cú pháp XML đơn giản để khai báo các lớp View và các lớp con, cũng như widgets và các layouts.  Ứng dụng có thể tạo đối tượng View và ViewGroup tức thời trong thời gian chạy. Hình 2.3. Layout Ưu điểm của việc khai báo giao diện người sử dụng trong XML là cho phép tách phần giao diện với mã nguồn điều khiển hoạt động của nó. Giao diện người sử dụng ở bên ngoài mã nguồn của ứng dụng, tức là có thể thay đổi nó mà không phải thay đổi mã nguồn và biên dịch lại. Hơn nữa, khai báo layout trong XML trực quan hơn về cấu trúc và dễ gỡ lỗi hơn. 2.2. Môi trường phát triển 2.2.1. Android SDK Các gói cho Core Android cho các chức năng lõi     java.lang – lớp ngôn ngữ cơ bản java.io – quản lý vào/ra java.net – kết nối mạng java.util – các lớp tiện ích. Gói này bao gồm lớp Log sử dụng để viết LogCat  java.text – tiện ích xử lý văn bản  java.math – cung cấp các hàm toán học
- Xem thêm -

Tài liệu liên quan