Đồ án Xây dựng ứng dụng chọn món thông minh trên nền tảng android (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Xây dựng ứng dụng chọn món thông minh trên nền tảng android (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
do_an_xay_dung_ung_dung_chon_mon_thong_minh_tren_nen_tang_an.pdf
Nội dung text: Đồ án Xây dựng ứng dụng chọn món thông minh trên nền tảng android (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ÐIỆN – ÐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN- ĐIỆN TỬ XÂY DỰNG ỨNG DỤNG CHỌN MÓN THÔNG MINH TRÊN NỀN TẢNG ANDROID GVHD: NGUYỄN VĂN HIỆP SVTH: NGÔ XUÂN HIỆP MSSV: 10101040 SVTH: LƯƠNG DUY KHÁNH MSSV: 10101062 SKL003040 Tp. Hồ Chí Minh, tháng 07/2014
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP LỜI CẢM ƠN Trong thời gian thực hiện luận văn nhóm sinh viên thực hiện đề tài đã đƣợc học hỏi nhiều kiến thức bổ ích trong giáo trình và thực tế từ thầy cô. Qua đây nhóm sinh viên xin gửi lời cảm ơn chân thành đến: Quý thầy cô trong Khoa Điện – Điện Tử của trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM đã truyền đạt những kiến thức, những kinh nghiệm quý báu trong chuyên môn cũng nhƣ trong nhiều lĩnh vực khác. Sự tận tụy say mê, lòng nhân ái, nhiệt tình của thầy cô là động lực to lớn giúp chúng em trau dồi thêm kiến thức và vƣợt qua những khó khăn trong học tập cũng nhƣ trong đời sống. Chúng em xin gửi lời cảm ơn chân thành nhất đên Thầy Nguyễn Văn Hiệp đã tận tính hƣớng dẫn giúp đỡ em hoàn thành đồ án tốt nghiệp nay. Đồng thời cũng xin cảm ơn tất cả bạn bè đã gắn bó cùng nhau trong học tập và giúp đỡ nhau trong suốt thời gian qua cũng nhƣ trong suốt quá trình thực hiện đồ án tốt nghiệp này. Xin cảm ơn gia đình đã tạo điều kiện thuận lợi và là chỗ dựa cho con trong suốt thời gian học tập. Xin chân thành cảm ơn! Nhóm snh viên thực hiện đề tài Ngô Xuân Hiệp Lƣơng Duy Khánh SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 7
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP MỤC LỤC NỘI DUNG Trang PHẦN A: GIỚI THIỆU Trang bìa Nhiệm vụ đồ án 3 Lịch trình thực hiện đồ án 4 Nhận xét của giáo viên hƣớng dẫn . 5 Nhận xét của giáo viên phản biện 6 Lời cảm ơn 7 Mục lục 8 Liệt kê hình vẽ 11 PHẦN B: NỘI DUNG CHƢƠNG 1. DẪN NHẬP 14 1.1 Đặt vấn đề 15 1.2 Lý do chọn đề tài . 15 1.3 Phƣơng pháp nghiên cứu 16 1.4 Giới hạn đề tài . 17 CHƢƠNG 2. CƠ SỞ LÝ THUYẾT . . 18 2.1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 19 2.1.1 Giới thiệu hề điều hành Android 19 2.1.2 Lịch sử Android . 19 2.1.3 Các phiên bản của Android . . 21 2.1.4 Cơ sở lý thuyết . 22 2.1.5Thực trạng hiện nay của hệ điều hành Android 23 SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 8
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP 2.2 KIẾN TRÚC CỦA HỆ ĐIỀU HÀNH ANDROID . . 24 2.2.1 Tầng ứng dụng (Applications) 24 2.2.2 Applications Framework 25 2.2.3 Tầng thƣ viện (Libraries) . 26 2.2.4 Android Routine 26 2.2.5 Tầng hạt nhân Linux ( Linux Kernel Linux) 27 2.3. CÁC CÔNG CỤ TRUYỀN DẪN DỮ LIỆU . 27 2.3.1 PHPMyAdmin . 27 2.3.2 Vài nét về Visual Studio sử dụng C# 27 2.4 THIẾT KẾ GIAO DIỆN CHO ỨNG DỤNG CỦA ANDROID . 29 2.4.1 View và ViewGroup . 29 2.4.2 Layout . 29 2.3.3 ScrollView . 30 2.4.4 TextView 30 2.4.5 EditText 30 CHƢƠNG3. XÂY DỰNG PROJECT . 31 3.1 XÁC ĐỊNH YÊU CẦU . 31 3.1.1 Giới thiệu quán cà phê 166 31 3.1.2 Bài toán đặt ra . 32 3.2 BÀI TOÁN THIẾT KẾ 32 3.3 PHÂN TÍCH CHỨC NĂNG 33 3.3.1 Phần mềm SmartMenu chạy trên thiết bị di động . 34 3.3.2 Phần mềm SmartMenuPC chạy trên máy chủ (máy vi tính) . 34 SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 9
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP 3.4 LƢU ĐỒ GIẢI THUẬT 35 3.4.1 Lƣu đồ đăng nhập 35 3.5 CÁC THÀNH PHẦN CHÍNH CỦA ỨNG DỤNG . 42 3.6CHƢƠNG TRÌNH SMARTMENU TRÊN ANDROID . . 44 3.6.1 Màn hình đăng nhập chƣơng trình . 44 3.6.2 Màn hình chính chƣơng trình 45 3.7 Chƣơng trình SmartMenuPC trên máy chủ . 48 3.7.1 Màn hình đăng nhập của SmartMenu . 49 3.7.2 Màn hình chínhcủa SmartMenu . . 50 3.8 LIÊN KẾT DỮ LIỆU TRÊN MẠNG 52 3.8.1 Cài đặt host trên máy tính 52 3.8.2 Tạo cơ sở dữ liệu 53 CHƢƠNG 4: KẾT QUẢ 55 4.1 Ứng dụng android 56 4.2 Giao diện ứng dụng trên máy vi tính . . 58 CHƢƠNG 5: KẾT LUẬN, HƢỚNG PHÁT TRIỂN 61 5.1 KẾT QUẢ NGHIÊN CỨU 62 5.2 KẾT LUẬN 63 53 HƢỚNG PHÁT TRIỂN . 63 PHẦN C : PHỤ LỤC 64 TÀI LIỆU THAM KHẢO 65 SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 10
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP LIỆT KÊ HÌNH VẼ HÌNH TRANG Hình 2.1: Biểu tƣợng của các phiên bản Android 22 Hình 2.2: So sánh tổng thị phần của Android so với các hệ điều hành khác 23 Hình 2.3: Sơ đồ kiến trúc của hệ điều hành Android . 24 Hình 3.1: Không gian sân vƣờn và phòng lạnh của cà phê 32 Hình 3.2 Sơ đồ hệ thống 33 Hình 3.4 Lƣu đồ đăng nhập 35 Hình 3.5 Lƣu đồ màn hình chính . 36 Hình 3.6 Lƣu đồ màn cập nhật món 37 Hình 3.7 Lƣu đồ màn hiển thị các bàn đã order . 37 Hình 3.8 Lƣu đồ màn hình chỉnh sửa bàn 38 Hình 3.9 Lƣu đồ màn hình chọn bàn 39 Hình 3.10 Lƣu đồ màn hình thêm bớt món khi order 40 Hình 3.11 Lƣu đồ màn hình gửi yêu cầu về bếp 41 Hình 3.12 Lƣu đồ màn hình tính tiền 42 Hình 3.13 Các thành phần chính trong một ứng dụng của Android 43 Hình 3.14 Giao diện màn hình đăng nhập của SmartMenu 44 Hình 3.15 Giao diện màn hình chính của SmartMenu 45 Hình 3.16 Giao diện màn hình menu của SmartMenu . 46 Hình 3.17 Giao diện màn hình order của SmartMenu 47 Hình 3.18 Giao diện màn hình tính tiền của SmartMenu 48 Hình 3.19Hệ thống tab của chƣơng trình SmartMenuPC 48 SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 11
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Hình 3.20 Giao diện màn hình đăng nhập . 49 Hình 3.21 Giao diện màn hình bán hàng . 50 Hình 3.22 Giao diện nhật ký doanh thu . . . 51 Hình 3.23 Giao diện quản lý cửa hàng . . 51 Hình 3.24 Giao diện Xampp . 52 Hình 3.25 Mở port locallhost trên modem 53 Hình 3.26Cơ sở dữ liệu trên MySQL 53 Hình 3.27 Cơ sở dữ liệu trên MySQL 54 Hình 4.1 Giao diện đăng nhập và quản lý bán hàng . 56 Hình 4.2 Giao diện chọn món và bàn 57 Hình 4.3 Giao diện màn hình đăng nhập 58 Hình 4.4 Giao diện bán hàng . 58 Hình 4.5Giao diện nhật ký doanh thu 59 Hình 4.6 Giao diện chọn quản lý cửa hàng 59 SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 12
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP PHẦN B NỘI DUNG SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 13
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP CHƢƠNG 1 DẪN NHẬP SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 14
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP 1.1 ĐẶT VẤN ĐỀ Ngày nay công nghệ thiết bị di động thông minh (Smart Phone, Table PC ) ngày càng phát triển mạnh. Cấu hình phần cứng của các thiết bị ngày càng đƣợc các nhà sản xuất nâng cấp mạnh, điển hình là CPU đã đạt tới tốc độ GHz, Ram cũng đạt tới dung lƣợng hơn 20Gb và sẽ hứa hẹn phát triển hơn nữa trong tƣơng lai. Bên cạnh đó, hệ điều hành cho các thiết bị di độn đó cũng phát triển mạnh không kém. Các hệ điều hành của nhiều hãng lần lƣợt ra đời và liên tục phát triển, cập nhật nhiều phiên bản mới, đem lại sự thuận tiện cho ngƣời sử dụng nhƣ: Windowns Mobile, Android, iphone OS, Black Berry OS, Palm OS Đất nƣớc ta ngày càng hội nhập sâu rộng với thế giới, các công nghệ tiên tiến cũng đã du nhập vào Việt Nam nhiều. các thiết bị di động thông minh tối tân đƣợc các nhà sản xuất nổi tiếng trên thế giới phân phối tại nƣớc ta ngày càng nhiều. Ngày nay, việc sở hữu một thiết bị thông minh, ngoài việc phục vụ tốt cho các nhu cầu về công việc, thì còn phục vụ tốt cho các nhu cầu về giải trí, không phải là một điều xa xỉ. 1.2 LÝ DO CHỌN ĐỀ TÀI Ngày nay lập trình nhúng và lập trình theo hƣớng mã nguồn mở ngày càng phát triển và là một xu hƣớng phát triển của tƣơng lai. Bên cạnh chuyên ngành điện – điện tử, là những ngƣời yêu thích công nghệ và luôn muốn thử sức với những lĩnh vực mới để làm phong phong phú thêm kiến thức và cập nhật những xu hƣớng phát triển của thời đại, đƣợc sự đồng ý của thầy hƣớng dẫn đề tài tốt nghiệp, nhóm sinh viên thực hiện đề tài đã chọn hƣớng nghiên cứu tìm hiểu và viết ứng dụng minh họa cho hệ điều hành của thiết bị di động thông minh. Trong thời gian gần đây, nổi vật nhất trong số các hệ điều hành dành cho thiết bị di động thông minh chính là hệ điều hành Android với những tính năng ƣu việt nhƣ: Là hệ điều hành di động mã nguồn mở cho phép các nhà phát triển tại ra những ứng dụng di động hấp dẫn. Hơn nữa, nó sử dụng một máy ảo tùy chỉnh đƣợc thiết kế để tối ƣu hóa bộ nhớ và tài nguyên phần cứng trong môi trƣờng di động. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 15
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Là một nền tảng mạnh, hổ trợ nhiều công nghệ tiên tiến, cho nhiều API cho việc phát triển phần mềm. Android cung cấp truy xuất đến một loạt thƣ viện công cụ hữu ích và có thể sử dụng để xây dụng các ứng dụng phong phú. Hoạt động đƣợc trên nhiều dòng điện thoại của nhiều hãng khác nhau nhƣ: HTC, Samsung, LG, Sony, từ đó tạo ra cuộc cách mạng mới về thế hệ thiết bị di động thông minh giá rẻ. Với những ƣu điểm nổi bật và sự hấp dẫn mà hệ điều hành Android mang lại, nhóm sinh viên thực hiện đã mạnh dạn chọn đề tài tốt nghiệp: “XÂY DỰNG ỨNG DỤNG CHỌN MÓN THÔNG MINH TRÊN NỀN TẢNG ANDROID”. 1.3 PHƢƠNG PHÁP NGHIÊN CỨU Sau khi đƣợc sự chấp nhận đề tài nghiên cứu của Thầy Nguyễn Văn Hiệp, nhóm sinh viên thực hiện đề tài đã từng bƣớc tiến hành: Tìm hiểu các thông tin cơ bản về hệ điều hành Android nhƣ: lịch sử hình thành và phát triển, các phiên bản hiện có, thị phần và khả năng phát triển cuat Android OS. Tìm, tải và tham khảo các sách chuyên về hệ diều hành Android từ nguồn tài nguyên trên mạng Internet. Tải và cài đặt cấu hình cho các gói phần mềm công cụ phục vụ cho việc lập trình phần mềm ứng dụng Android. Bằng những kiến thức cơ bản có đƣợc từ việc đọc sách tham khảo và các nguồn tài nguyên trên mạng , tiến hành viết và chạy thử nghiệm những ứng dụng đơn giản để hiểu rõ thêm về cách sử dụng các thành phần đối tƣợng có trong bộ lập trình Android OS. Phát thảo trƣớc về giao diện, tính năng, các đối tƣợng sẽ đƣợc sử dụng để lập trình cho bộ phần mềm ứng dụng AnWaiter. Thiết kế và chỉnh sửa giao diện hoàn chỉnh cho bộ chƣơng trình ứng dụng SmartMenu. Thiết kế mã nguồn cho bộ phần mềm ứng dụng SmartMenu. Tiến hành chạy thử nghiệm mô phỏng trên máy tính để hiện các lỗi cú pháp và lỗi logic của bộ chƣơng trình. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 16
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Sau khi đã chạy mô phỏng hoàn thiện trên máy tính, tiến hành cài đặt chƣơng trình chạy thực tế trên các loại thiết bị di động cầm tay chạy hệ điều hành Android để phát hiện lỗi chạy thực tế, kiểm nghiệm tính tƣơng thích của phần mềm. Sau khi bộ phần mềm ứng dụng SmartMenu đã chạy tốt trên các thiết bị thực tế, đúng theo yêu cầu đã đề ra, tiến hành viết báo cáo phần lý thuyết và phần thực hành của hệ điều hành Android. 1.3 GIỚI HẠN CỦA ĐỀ TÀI Vì lý do giới hạn về thời gian nghiên cứu đề tài, cũng nhƣ những giới hạn nhất định về kiến thức chuyên ngành, nhóm sinh viên thực hiện đề tài chỉ tập trung nghiên cứu một số vấn đề chính của hệ điều hành Android: Lịch sử hình thành phát triển. Các phiên bản hiện có. Biết cách sử dụng các đối tƣợng EditText, Button, ListView từ đó có thể viết đƣợc hầu nhƣ các ứng dụng sử dụng các thành phần cơ bản thƣờng hay sử dụng khi thiết kế giao diện và lập trình mã nguồn nhƣ: TextView thông thƣờng Nhóm sinh viên chỉ thực hiện thiết kế chƣơng trình trên nền tảng hệ điều hành Android, các hệ điều hành khác nhƣ IOS, Blackbery OS, Window Phone nằm ngoài phạm vi đề tài. Do quá trình lấy dữ liệu về phần cứng diễn ra liên tục nên có thể xảy ra quá trình khóa IP từ webhost. Quá trình thực thi lệnh có thể xảy ra hiện tƣợng đơ, giật do lỗi từ thiết bị Android hay độ thiếu ổn định của đƣờng truyền mạng. Chỉ hoạt động trên các thiết bị sử dụng hệ điều hành Android 4.0 trở lên SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 17
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP CHƢƠNG 2 CƠ SỞ LÝ THUYẾT SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 18
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP 2.1 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 2.1.1 Giới thiệu hệ điều hành Android Android là một hệ điều hành dựa trên nền tảng Linux đƣợc thiết kế dành cho các thiết bị di động có màn hình cảm úng nhƣ điện thoại thông minh và máy tính bảng. Ban đầu, Android đƣợc phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này đƣợc chính Google mua lại vào năm 2005.Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động. Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết đƣợc điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lƣợt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ƣớc tính khoảng 25 tỷ lƣợt. Ƣu điểm chính của việc áp dụng android là nó cung cấp một cách tiếp cận thống nhất để phát triển ứng dụng. Các nhà phát triển chỉ cần phát triển cho android và các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là các thiết bị đƣợc hỗ trợ bằng cách sử dụng android. Trong thế giới điện thoại thông minh ứng dụng là một phần quan trọng nhất của chuỗi thành công. Do đó các nhà sản xuất thiết bị coi Android nhƣ là hy vọng tốt nhất để thách thức sự tấn công của Apple. 2.1.2 Lịch sử Android Tổng công ty Android (Android, Inc.) đƣợc thành lập tại Palo Alto, California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire),Nick Sears (từng là Phó giám đốc T-Mobile),và Chris White (trƣởng thiết kế và giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 19
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP bị di động thông minh hơn có thể biết đƣợc vị trí và sở thích của ngƣời dùng". Dù những ngƣời thành lập và nhân viên đều là những ngƣời có tiếng tăm, Tổng công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang làm phần mềm dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve Perlman, một ngƣời bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhƣng từ chối tham gia vào công ty. Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến nó thành một bộ phận trực thuộc Google. Những nhân viên của chủ chốt của Tổng công ty Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty làm việc sau thƣơng vụ này. Vào thời điểm đó không có nhiều thông tin về Tổng công ty, nhƣng nhiều ngƣời đồn đoán rằng Google dự tính tham gia thị trƣờng điện thoại di động sau bƣớc đi này. Tại Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên nềnnhân Linux. Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng nhƣ đối tác phần mềm, bắn tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau. Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trƣờng điện thoại di động xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố Wall chú thích rằng Google muốn đƣa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di động và họ đang nỗ lực làm việc để thực hiện điều này. Các phƣơng tiện truyền thông truyền thống lẫn online cũng viết về tin đồn rằng Google đang phát triển một thiết bị cầm tay mang thƣơng hiệu Google. Một vài tờ báo còn nói rằng trong khi Google vẫn đang thực hiện những bản mô tả kỹ thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho các nhà sản xuất điện thoại di động và nhà mạng. Tháng 9 năm2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động. Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn Broadcom,Google, HTC, Intel, LG,Motorola, Nvidia, Qualcomm, SamsungElectronics, Spri nt Nextel và T-Mobile đƣợc thành lập với mục đích phát triển cáctiêu chuẩn mở cho thiết bị SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 20
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP di động. Cùng ngày, Android cũng đƣợc ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động đƣợc xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện thoại chạy Android đầu tiên đƣợc bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008. Biểu trƣng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ. Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trƣớc. Mỗi bản nâng cấp đƣợc đặt tên lần lƣợt theo thứ tự bảng chữ cái, theo tên của một món ăn tráng miệng; ví dụ nhƣ phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là 4.4.2 Kitkat. Vào năm 2010, Google ra mắt loạt thiết bị Nexus-một dòng sản phẩm bao gồm điện thoại thông minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, nhƣ điện thoại Nexus 4 và máy tính bảng Nexus 10, lần lƣợt do LG và Samsung sản xuất. Google xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng và phần mềm mới nhất của Android. 2.1.3 Các phiên bản của Android Lịch sử phiên bản của hệ điều hành di động Android bắt đầu với bản Android beta vào tháng 11 2007. Phiên bản thƣơng mại đầu tiên, Android 1.0, đƣợc phát hành vào tháng 9 năm 2008. Android đang đƣợc phát triển bởiGoogle và Open Handset Alliance (OHA), và đã có một số bản cập nhật cho hệ điều hành này kể từ khi ra mắt. Từ tháng 4 2009, phiên bản Android đƣợc phát triển dƣới tên mã là chủ đề bánh kẹo và phát hành theo thứ tự bảng chữ cái: Cupcake (1.5), Donut (1.6), Eclair (2.0–2.1), Froyo (2.2– 2.2.3), Gingerbread (2.3–2.3.7), Honeycomb (3.0–3.2.6), Ice Cream Sandwich (4.0–4.0.4), Jelly Bean (4.1–4.3), và KitKat (4.4). Vào 3 tháng 9 2013, Google công bố rằng 1 tỉ thiết bị đã đƣợc kích hoạt hiện sử dụng Android OS trên toàn cầu. Bản cập nhật Android gần đây nhất là KitKat 4.4, nó đƣợc phát hành bản thƣơng mại trên thiết bị 22 tháng 11 2013, thông qua cập nhật OTA. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 21
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Petit Four 1.1 Cupcake 1.5 Donut 1.6 Eclair2.0 Froyo 2.2 Gingerbeard 2.3 Honeycomb 3.0 Ice Cream Sandwich 4.0 Jelly Bean 4.1/4.2 Hình 2.1: Biểu tƣợng của các phiên bản Android 2.1.4 Cơ sở lập trình Lập trình Android hiện nay đang thực hiện trên nền Java, ngoài ra cần bộ công cụ phát triển ứng dụng Android SDK để bắt đầu học lập trình Android. Có rất nhiều các công cụ cho phép tiến hành lập trình Android nhƣ Android Studio, Eclipse, NetBean Ở trong đề tài này, nhóm sinh viên làm việc với Eclipse để lập trình Android. Do các công cụ để phát triển chƣơng trình càng ngày càng đƣợc cập nhật mới và dễ dàng tìm thấy trên các công cụ tìm kiếm hiện nay nên nhóm sinh viên sẽ không trực tiếp đề cập tới quá trình cài đặt các công cụ này. Các thành phần chính của 1 ứng dụng Android: Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity đƣợc gọi, hiển thị màn hình giao diện của ứng dụng cho phép ngƣời dùng tƣơng tác. Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu, đƣa ra các cảnh báo (Notification) và không bao giờ hiển thị cho ngƣời dùng thấy. Content Provider: kho dữ liệu chia sẻ. Content Provider đƣợc sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 22
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Intent: nền tảng để truyền tải các thông báo. Intent đƣợc sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn. Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới. Notification: đƣa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động. Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest. 2.1.5 Thực trạng hiện nay của hệ điều hành Android so với các hệ điều hành khác Hình 2.2: So sánh tổng thị phần của Android so với các hệ điều hành khác Thông qua bảng so sánh thiết bị sử dụng Android qua các năm, ta thấy thị phần của Android là lớn nhất và không ngừng tăng. Điều đó chứng tỏ sức cạnh tranh của hệ điều hành Android là rất lớn và hứa hẹn nhiều triển vọng trong tƣơng lai. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 23
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP 2.2 KIẾN TRÚC CỦA HỆ ĐIỀU HÀNH ANDROID Mô hình sau thể hiện đầy đủ kiến trúc các thành phần của hệ điều hành Android. Hình 2.3: Sơ đồ kiến trúc của hệ điều hành Android 2.2.1 Tầng ứng dụng (Applications) Tích hợp sẵn một số ứng dụng cần thiết cơ bản nhƣ: contacts, phone, browers, camera, Tất cả ứng dụng chạy trên Android đều đƣợc viết trên nề tảng Java. Các chƣơng trình có đặc điểm là : Viết bằng Java, phần mở rộng là apk. Khi mỗi ứng dụng đƣợc chạy, nó có một phiên bản Virtual Machine đƣợc dựng lên để phục vụ cho nó. Nó có thể là một Active Program: Chƣơng trình có giao diện với ngƣời dử dụng hoặc một Background : Chƣơng trình chạy nền hay là dịch vụ. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 24
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chƣơng trình chậy cùng một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể(instance) đƣợc phép chạy mà thôi. Các ứng dụng đƣợc gán số ID của ngƣời sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống. Android là một hề điều hành có tính mở, khác với nhiều hệ điều hành di động khác, Android cho phép một ứng dụng của bên thứ ba đƣợc phép chạy nên. Các ứng dụng đó chỉ có một hạn chế nho nhỏ là không đƣợc phép sử dụng quá 5-10% công suất CPU, điều đó nhằm để tránh độc quyền trong việc sử dụng CPU. 2.2.2 Application Framework Bằng việc phát triển mã nguồn mở (Open source code), Android cung cấp cho các nhà phát triển phần mềm khả năng xây dụng các ứng dụng cực kỳ phong phú, sinh động và sáng tạo. Họ đƣợc tự do tận dụng các tài nguyên về thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy, các thiết lập báo cáo, thông báo, trạng thái, Nhà phát triển có thể truy cập vào các hàm API cùng một khuôn khổ đƣợc sử dụng bởi các ứng dụng lõi. Các kiến trúc đƣợc thiết kế đơn giản hóa việc sử dụng lại các thành phần. Một vài thành phần quan trọng: Activity manager: quản lý vòng đời của các ứng dụng điều hƣớng cho các activity. Window manager: cung cấp khả năng quản lý giao diện ngƣời dùng. View system: tập hợp rất nhiều các View có khả năng thừa kế lẫn nhau dùng để thiết kế giao diện ứng dụng nhƣ: TextView, EditText, GirdView, TableView Content providers: cho phép các ứng dụng truy xuất dữ liệu từ các ứng dụng khác (tính kế thừa), ví dụ nhƣ ứng dụng Phone sẽ truy xuất dữ liệu thông tin về số điện thoại của ngƣời đƣợc gọi đƣợc chứa trong các ứng dụng Contact. Resource Manager: cung cấp truy xuất với các tài nguyên không phải là mã nguồn ( source code), chẳng hạn nhƣ graphics, layout . Telephony Manager: dịch vụ thoại ( Phone’s services), cho phép các ứng dụng thông qua dịch vụ này truy xuất các thao tác liên quan đến điện thoại, ví dụ nhƣ thực hiện 1 cuộc gọi điện thoại SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 25
- ĐỒ ÁN TỐT NGHIỆP GVHD : NGUYỄN VĂN HIỆP Package Manager: quản lý các gói ứng dụng, các chƣơng trình đã cài đặt, các thƣ viện. 2.2.3Tầng thƣ viện (Libraries) Bao gồm 1 tập hợp các thƣ viện C/C ++ đƣợc sử dụng bởi các thành phần khác nhau trong hệ thống Android. Một số các thƣ viện cơ bản đƣợc liệt kê dƣới đây: System C library: sử dụng hệ thống C chuẩn, đƣợc điều hƣớng cho những thiết bị nền tảng Linux nhúng. Media Framework: dự trên nền tảng PacketVideo’s OpenCore, các thƣ viện hỗ trợ phát và ghi cho các định dạng âm thanh, hình ảnh thông dụng bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG và PNG. Surface Manager: Quản lý việc truy xuất vào hệ thống hiển thị Webkit: cung cấp kỹ thuật duyệt web hiện đại thông qua việc kết hợp sức mạnh giữa trình duyệt web của Android với một trang web nhúng. SGL: cung cấp các công cụ đồ họa 2D. OpenGL / ES: thi hành các hàm API dựa trên thƣ viện đồ họa OpenGL / ES 1.0, cung cấp công cụ đồ họa 3D đối với phần cứng đƣợc hỗ trợ và phần mềm. FreeType: bộ tạo phông chữ bitmap và vector. SQLite: hệ quản lý cơ sở dữ liệu cho ứng dụng với đặc điểm chạy nhẹ nhàng và việc quản lý mạnh. 2.2.4 AndroidRoutine Phần này chứa các thƣ viện mà một chƣơng trình viết bằng ngôn ngữ Java có thể hoạt động. Phần này có 2 bộ phận tƣơng tự nhƣ mô hình chạy Java trên máy tính thƣờng. Thứ nhất là các thƣ viện lõi (Core Library), chứa các lớp nhƣ JAVA IO, Collections, File Accsess. Thứ hai là một máy ảo Java (Dalvik Virtual machine). Mặc dù cũng đƣợc viết từ ngôn ngữ Java nhƣng một ứng dụng Java của hệ điều hành Android không đƣợc chạy bằng JRE của Sun ( nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển. Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex). Định dạng đƣợc tối ƣu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và chạy các lớp đã đƣợc biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng dex. SVTH : NGÔ XUÂN HIỆP - 10101040 LƯƠNG DUY KHÁNH - 10101062 Page 26
- S K L 0 0 2 1 5 4



