Tìm hiểu về android và sqlite ứng dụng xây dựng chương trình quản lý và nghe nhạc

  • Số trang: 65 |
  • Loại file: PDF |
  • Lượt xem: 46 |
  • Lượt tải: 0
minhtuan

Đã đăng 15929 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VỀ ANDROID VÀ SQLITE ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ VÀ NGHE NHẠC Sinh viên thực hiện Cán bộ hướng dẫn Hồ Bình Tân ThS. Phan Phương Lan MSSV: 1081426 MSCB: 1232 Cần Thơ, 2012 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU ANDROID VÀ SQLITE ỨNG DỤNG XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ VÀ NGHE NHẠC Sinh viên thực hiện Cán bộ hướng dẫn Hồ Bình Tân ThS. Phan Phương Lan MSSV: 1081426 MSCB: 1232 Cán bộ phản biện ThS. Trương Thị Thanh Tuyền ThS. Phan Huy Cường ThS. Phan Phương Lan Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Công nghệ phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Cần Thơ vào ngày 10 tháng 05 năm 2012. Mã số đề tài:………….. LỜI CẢM ƠN Trƣớc tiên, con xin bày tỏ lòng cảm ơn tới gia đình, đặc biệt là đối với cha mẹ đã sinh ra, nuôi dƣỡng và cho con ăn học đến ngày nay. Và em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới cô Phan Phƣơng Lan đã tạo điều kiện cho em thực hiện đề tài này và tận tình hƣớng dẫn em trong suốt quá trình thực hiện đề tài. Em xin gửi lời cảm ơn sâu sắc tới quý Thầy Cô trong Khoa Công nghệ thông tin và Truyền thông Trƣờng Đại Học Cần Thơ đã truyền đạt kiến thức quý báu cho chúng em trong những năm học vừa qua. Xin chân thành cảm ơn các bạn bè, đặc biệt là các thành viên trong lớp Kỹ Thuật Phần Mềm 1-K34 đã ủng hộ, giúp đỡ em trong suốt thời gian học tập trên giảng đƣờng Đại Học và thực hiện đề tài. Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Em kính mong nhận đƣợc sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các Bạn. Em xin chân thành cảm ơn! Cần Thơ, ngày 16, tháng 4, năm 2012 Sinh viên Hồ Bình Tân TÓM TẮT Ngày nay các thiết bị cầm tay càng trở lên phổ biến, giá thành ngày càng. Cùng với đó là sự ra đời của hệ điều hành mã nguồn mở Android có khả năng tùy biến cao, có thể coi đây là một bƣớc tiến lớn trong lĩnh vực công nghệ. Vì vậy, việc xây dựng các ứng dụng trên các thiết bị di động sử dụng hệ điều hành Adroid đƣợc rất nhiều nhà phát triển quan tâm. Trong luận văn của mình tôi sẽ thực hiện tìm hiểu về hệ điều hành mở Android, cách lập trình cho Android bằng Eclipse, SQLite trên Android .Trên cơ sở lý thuyết tiếp thu đƣợc, tôi xây dựng một chƣơng trình quản lý việc nghe nhạc cung cấp các chức năng: phát nhạc, chỉnh sửa thông tin về bài hát(tựa đề, album, nhạc sỹ, ca sỹ), xóa bài hát, tạo và chỉnh sửa danh sách nhạc, xem thống kê về các bài hát, ca sỹ, album có bài hát đƣợc chơi nhiều nhất trong tuần. ABSTRACT Nowaday handheld devices become more common as well as more low cost. Beside that, the open source operating system Android supports a lot of highly customizable capabilities. So that, many software developers are interested in developing applications running on mobile devices using Android. In my thesis, I will study about operating system Android, how to program with Eclipse, SQLite on Android. On the basis of acquired knowledge, I build a program to provide features such as play music, edit the song information (title, album, composers, singers), delete songs, create and edit playlists, view statistics on songs, singers, albums that are most played in week. MỤC LỤC MỤC LỤC .............................................................................................................. i DANH MỤC HÌNH ............................................................................................. iii DANH MỤC TỪ VIẾT TẮT ............................................................................... iv CHƢƠNG I: TỔNG QUAN ..................................................................................1 1.1 ĐẶT VẤN ĐỀ ............................................................................................1 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ .............................................................1 1.3 PHẠM VI CỦA ĐỀ TÀI ............................................................................1 1.4 PHƢƠNG PHÁP NGHIÊN CỨU ...............................................................2 1.4.1 VỀ LÝ THUYẾT ....................................................................................2 1.4.2 VỀ ỨNG DỤNG ..................................................................................2 CHƢƠNG II: CỞ SỞ LÝ THUYẾT .....................................................................3 2.1 HỆ ĐIỀU HÀNH ANDROID .....................................................................3 2.1.1 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH ANDROID ..........................3 2.1.2 MÁY ẢO DALVIK ................................................................................4 2.1.3 KIẾN TRÚC CỦA ANDROID ...............................................................4 2.1.4 NHỮNG ĐẶC TÍNH CỦA HỆ ĐIỀU HÀNH ANDROID ......................7 2.1.5 CHU KỲ ỨNG DỤNG ANDROID .........................................................8 2.1.6 CÁC THÀNH PHẦN CỦA ỨNG DỤNG ANDROID .......................... 11 2.1.7 NỀN TẢNG ĐỂ PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ......... 25 2.2 CHƢƠNG TRÌNH MÔ PHỎNG THIẾT BỊ SỬ DỤNG HỆ ĐIỀU HÀNH ANDROID TRÊN ECLIPSE (ANDROID EMULATOR) .................................26 2.3 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT ................... 27 2.3.1 AndroidManifest.xml ............................................................................ 27 2.3.2 File R.java ............................................................................................. 28 2.4 HỆ QUẢN TRỊ CSDL SQLITE .................................................................29 2.4.1 GIỚI THIỆU VỀ SQLITE ..................................................................... 29 2.4.2 ƢU NHƢỢC ĐIỂM CỦA HỆ QUẢN TRỊ CSDL SQLITE................... 29 2.4.3 THAO TÁC VỚI SQLITE TRONG ANDROID ................................... 29 CHƢƠNG III: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU .............................. 32 3.1 ĐẶC TẢ ................................................................................................... 32 3.1.1 Mục tiêu ................................................................................................ 32 3.1.2 Các yêu cầu chức năng .......................................................................... 32 3.1.3 Các yêu cầu phi chức năng .................................................................... 36 3.2 THIẾT KẾ ................................................................................................ 36 3.2.1 Mục tiêu ................................................................................................ 36 3.2.2 Thiết kế kiến trúc .................................................................................. 36 3.2.3 Thiết kế dữ liệu ..................................................................................... 38 3.2.4 Thiết kế chức năng ................................................................................ 40 3.3 KIỂM THỬ .............................................................................................. 50 3.3.1 Mục đích ............................................................................................... 50 3.3.2 Môi trƣờng kiểm thử ............................................................................. 50 3.3.3 Các trƣờng hợp kiểm thử (Test case) ..................................................... 50 i KẾT LUẬN VÀ ĐỀ NGHỊ .................................................................................. 54 1. KẾT QUẢ ĐẠT ĐƢỢC ........................................................................... 54 Về lý thuyết: ..................................................................................................54 Về chƣơng trình: ............................................................................................ 54 Về kỹ năng: .................................................................................................... 54 2. HẠN CHẾ ................................................................................................ 54 3. HƢỚNG PHÁT TRIỂN ............................................................................ 54 TÀI LIỆU THAM KHẢO ................................................................................... 55 INDEX .................................................................................................................. 55 GVHD: Th.S Phan Phƣơng Lan ii SVTH: Hồ Bình Tân - 1081426 DANH MỤC HÌNH Hình 1: Lịch sử hình thành android ..........................................................................3 Hình 2: Cấu trúc stack hệ thống Android .................................................................5 Hình 3: Hệ điều hành Android .................................................................................7 Hình 4: Chu kỳ sống các thành phần trong android ..................................................9 Hình 5: Activity Stack ........................................................................................... 10 Hình 6: Các phƣơng thức cơ bản trong chu kỳ sống ............................................... 11 Hình 7: Vòng đời của một Activity ........................................................................ 12 Hình 8: Thực đơn(Menu) ....................................................................................... 15 Hình 9: Bề Mặt(Surface) ........................................................................................ 15 Hình 10: Lƣợc đồ trạng thái ................................................................................... 16 Hình 11: Service life cycle ..................................................................................... 19 Hình 12: Cấu trúc tiệp XML định nghĩa các giá trị ................................................ 20 Hình 13: Cấu trúc tiệp XML khai báo một ListView .............................................. 21 Hình 14: XML hiển thị một TextView ................................................................... 21 Hình 15: Hiển thị một TextView trên thiết bị ......................................................... 21 Hình 16: XML thể hiện một Button ....................................................................... 22 Hình 17: Tiệp java kết nối và thực thi hành động click vào button ......................... 22 Hình 18: Hiển thị của button .................................................................................. 23 Hình 19: XML thể hiện ImageButton..................................................................... 23 Hình 20: Tiệp java thực thi hành động click vào ImageButton ............................... 24 Hình 21: Hiển thị của ImageButton........................................................................ 24 Hình 22: XML thể hiện ListView .......................................................................... 24 Hình 23: Hiển thị của ListLiew .............................................................................. 25 Hình 24: Android Emulator ................................................................................... 26 Hình 25: Sơ đồ hoạt động của ứng dụng ................................................................ 37 Hình 26: Sơ đồ giữa các giao diện trong ứng dụng ................................................. 38 Hình 27: Mô Hình MCD ........................................................................................ 39 Hình 28: Chức năng tìm kiếm ................................................................................ 41 Hình 29: kết quả tìm kiếm...................................................................................... 41 Hình 30: Cách xử lý chức năng tìm kiếm ............................................................... 42 Hình 31: Chức năng Chỉnh sửa thông tin bài hát .................................................... 43 Hình 32: Cách xử lý việc chỉnh sửa thông tin bài hát ............................................. 44 Hình 33: Mục chọn xóa bài hát .............................................................................. 45 Hình 34: Thông báo xóa bài hát ............................................................................. 45 Hình 35: Cách xử lý xóa bài hát ............................................................................. 46 Hình 36: Giao diện phát nhạc................................................................................. 47 Hình 37: Giao diện chọn xem thống kê ..................................................................48 Hình 38: Giao diện hiển thị xem thống kê ca sỹ ..................................................... 48 Hình 39: Cách xử lý xem thống kê ......................................................................... 49 GVHD: Th.S Phan Phƣơng Lan iii SVTH: Hồ Bình Tân - 1081426 DANH MỤC TỪ VIẾT TẮT Giải thích Ký hiệu ADT API Tiếng Anh Tiếng Việt Công cụ phát triển ứng dụng Android Android Deverloper Tool Application Programming Interface Giao diện lập trình ứng dụng Cơ sở dữ liệu CSDL OHA SDK UI Integrated Development Enveronment Open Handset Alliance Software Development Kit User Interface USB Universal Serial Bus VM Virtual Machine EXtensible Markup Language IDE XML GVHD: Th.S Phan Phƣơng Lan Môi trƣờng phát triển tích hợp Liên minh thiết bị cầm tay mã nguồn mở Bộ công cụ phát triển phần mềm Giao diện ngƣời sử dụng Một chuẩn kết nối tuần tự trong máy tính Máy ảo Ngôn ngữ đánh dấu mở rộng iv SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc CHƢƠNG I: TỔNG QUAN ĐẶT VẤN ĐỀ Hiện nay, các lĩnh vực về công nghệ thông tin đang phát triển rất nhanh và ngày càng phổ biến trong đời sống con ngƣời, đặc biệt về lĩnh vực điện thoại di động khi hầu hết ai cũng có một chiếc điện thoại bên mình để phục vụ cho vệc liên lạc, học tập và giải trí. Từ khi có sự xuất hiện hệ điều hành android thì chi phí cho việc sản xuất cho một chiếc smart phone cũng giãm xuống nên việc sở hữu một chiếc smart phone không còn khó. Android hiện đang chiếm dần sự ƣa chuộng của ngƣời dung điện thoại tại Việt Nam. Tuy nhiên các ứng dụng do ngƣời Việt tạo ra chƣa nhiều và các ứng dụng còn khá ít chức năng, chẳng hạn nhƣ ứng dụng nghe nhạc chƣa đáp ứng đủ các chức năng nhƣ: thống kê các bài hát nghe nhiều, chỉnh sửa các phần thông tin bị sai về tên bài hát, ca sỹ, album. Chính vì vậy tôi quyết định chọn đề tài tìm hiểu về hệ điều hành Android để xây dựng ứng dụng quản lý nghe nhạc có giao diện tiếng Việt và có bổ sung các tính năng nhƣ trên mà các ứng dụng hiện tại chƣa đáp ứng đầy đủ. 1.1 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Qua tìm hiểu trên mạng internet thì trên thế giới đã có rất nhiều ứng dụng nghe nhạc rất hay của các hang nổi tiếng nhƣ: RealPlayer, MortPlayer, Cubed. Các ứng dụng này đều là các phần mềm mã nguồn đóng, có các chức năng đã đáp ứng đƣợc các nhu cầu về nghe nhạc của ngƣời dùng. Nhƣng đa số đều chƣa có chức năng thống kê các bài hát, ca sỹ đƣợc chơi nhiều nhất theo tuần, tháng. Còn ở Việt Nam, hiện chƣa thấy có ứng dụng nghe nhạc nào có các chức năng nêu trên và cũng chƣa tìm kiếm đƣợc phần mềm nào cụ thể. 1.2 PHẠM VI CỦA ĐỀ TÀI - Nghiên cứu lý thuyết về: hệ điều hành Andoid, hệ quản trị CSDL SQLite trên Android. - Ứng dụng nhằm phục vụ cho tất cả những ai có nhu cầu nghe nhạc trên máy điện thoại sử dụng hệ điều hành Android. Đây là ứng dụng độc lập chạy trên điện thoại có hệ điều hành Android phiên bản từ 2.3.3 trở lên. - Các chức năng chính của ứng dụng cần đạt đƣợc: o Tạo danh sách bài hát o Thêm bài hát vào danh sách o Tìm bài hát o Xem thống kê o Chơi một bài hát hoặc danh sách đƣợc chọn o Chỉnh sửa thông tin bài hát o Xóa bài hát 1.3 GVHD: Th.S Phan Phƣơng Lan 1 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc 1.4 PHƢƠNG PHÁP NGHIÊN CỨU 1.4.1 VỀ LÝ THUYẾT - Tìm hiểu về các tài liệu, ebook nói về cấu trúc hệ điều hành Android, SQLite, phƣơng pháp lập trình Android trên Eclipse qua mạng internet. - Xây dựng các ứng dụng mẫu để hiểu rõ cách lập trình. - Tìm hiểu về cách lập trình cho một ứng dụng chơi nhạc trên Android. 1.4.2 VỀ ỨNG DỤNG - Xây dựng mô hình cơ sở dữ liệu phục vụ cho việc lƣu trữ danh sách bài hát do ngƣời dùng tạo, lịch sử phát nhạc để phục vụ cho việc thống kê. - Áp dụng những kiến thức đã nghiên cứu đƣợc vào xây dựng ứng dụng quản lý nghe nhạc. - Tìm hiểu về các phần mềm mô phỏng điện thoại Android phục vụ cho việc kiểm thử và chạy demo. GVHD: Th.S Phan Phƣơng Lan 2 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc CHƢƠNG II: CỞ SỞ LÝ THUYẾT 2.1 HỆ ĐIỀU HÀNH ANDROID 2.1.1 LỊCH SỬ PHÁT TRIỂN HỆ ĐIỀU HÀNH ANDROID Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên nền Linux, do công ty Android Inc.(California, Mỹ) thiết kế. Công ty này sau đó đƣợc Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Các thành viên chủ chốt ở Android Inc. gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White. Hình 1: Lịch sử hình thành android Sau tiếp, vào cuối năm 2007, thuộc về OHA gồm các thành viên nổi bật trong ngành viễn thông và thiết bị cầm tay nhƣ: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,… Mục tiêu của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho nhu cầu ngƣời tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android. Android đƣợc thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết bị, các nhà khai thác và các lập trình viên thiết bị cầm tay. Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hảng T-Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc smartphone đầu GVHD: Th.S Phan Phƣơng Lan 3 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google đƣợc cấp giấy phép mã nguồn mở cho Android Platform. Khi Android đƣợc phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tƣơng tác đƣợc với nhau và có thể sử dụng lại các thành phần từ những ứng dụng khác. Việc tỏi sử dụng không chỉ đƣợc áp dụng cho cho các dịch vụ mà nó cũng đƣợc áp dụng cho cả các thành phần dữ liệu và giao diện ngƣời dùng. Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay đƣợc gọi là Android Dev Phone 1 có thể chạy đƣợc các ứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thử nghiệm trên một thiết bị thực có thể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào khoảng cùng thời gian đó thì Google cũng cho phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chƣa hỗ trợ soft-keyboard mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý. Android giải quyết vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tƣ năm 2009, cùng với một số tính năng khác. Chẳng hạn nhƣ nâng cao khả năng ghi âm truyền thống, vật dụng, và các live folder. 2.1.2 MÁY ẢO DALVIK Dalvik là máy ảo giúp các ứng dụng java chạy đƣợc trên các thiết bị di động Android. Nó chạy các ứng dụng đã đƣợc chuyển đổi thành một file thực thi Dalvik(dex). Định dạng phù hợp cho các hệ thống mà thƣờng bị hạn chế về bộ nhớ và tốc độ xử lý. Dalvik đã đƣợc thiết kế và viết bởi Dan Bornstein, ngƣời đã đặt tên cho nó sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvík ở đảo Eyjafjửrður của Iceland, nơi mà một số tổ tiên của ông sinh sống. Từ góc nhìn của một nhà phát triển, Dalvik trông giống nhƣ máy ảo Java (Java Virtual Machine) nhƣng thực tế thì hoàn toàn khác. Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trƣờng Java. Sau đó, nó sẽ đƣợc biên dịch sang các bytecode của Java, tuy nhiên để thực thi đƣợc ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex bytecode. "Dex" là từ viết tắt của "Dalvik executable" đúng vai trò nhƣ cơ chế ảo thực thi các ứng dụng Android. 2.1.3 KIẾN TRÚC CỦA ANDROID Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android. Mỗi một phần sẽ đƣợc đặc tả một cách chi tiết dƣới đây. GVHD: Th.S Phan Phƣơng Lan 4 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc Hình 2: Cấu trúc stack hệ thống Android 2.1.3.1 Tầng Application Android đƣợc tích hợp sẵn một số ứng dụng cần thiết cơ bản nhƣ: contacts, browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều đƣợc viết bằng Java. 2.1.3.2 Tầng Application Framework Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển đƣợc tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo về các thanh trạng thái, và nhiều, nhiều hơn nữa. Nhà phát triển có thể truy cập vào các 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 ứng dụng đƣợc thiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể cung cấp các tài nguyên của mình và ứng dụng GVHD: Th.S Phan Phƣơng Lan 5 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc nào khác sau đó có thể sử dụng những tài nguyên đó (có thể hạn chế bảo mật đƣợc thực thi bởi khuôn khổ). Cơ chế này cho phép các thành phần tƣơng tự sẽ đƣợc thay thế bởi ngƣời sử dụng. Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm: - Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng nhƣ: gridview, tableview, linearlayout,… - Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác (chẳng hạn nhƣ Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó. - Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn nhƣ: localized strings, graphics, and layout files. - Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alerts trong status bar. - Activity Manager đƣợc dùng để quản lý chu trình sống của ứng dụng và điều hƣớng các Activity. 2.1.3.3 Tầng Library Android bao gồm một tập hợp các thƣ viện C/C++ đƣợc sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android. Điều này đƣợc thể hiện thông qua nền tảng ứng dụng Android. Một số các thƣ viện cơ bản đƣợc liệt kê dƣới đây: - System C Library - Media Librarys - Surface Manager - Surface Manager - SGL - 3D libraries - FreeType - SQLite 2.1.3.4 Tầng Android Runtime Android bao gồm một tập hợp các thƣ viện cơ bản mà cung cấp hầu hết các chức năng có sẵn trong các thƣ viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã đƣợc viết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. 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. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản nhƣ luồng và quản lý bộ nhớ thấp. 2.1.3.5 Tầng Linux kernel Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi nhƣ security, memory management, process management, network stack, and driver model. Kernel Linux hoạt động nhƣ một lớp trừu tƣợng hóa giữa phần cứng và phần còn lại của phần mềm stack. GVHD: Th.S Phan Phƣơng Lan 6 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc 2.1.4 NHỮNG ĐẶC TÍNH CỦA HỆ ĐIỀU HÀNH ANDROID Hình 3: Hệ điều hành Android Một số đặc điểm của Android: Handset Layout: Nền tảng này dễ thích nghi lớn hơn, VGA, thƣ viện đồ họa 2D, thƣ viện đồ họa 3D cơ bản trong OpenGL 2.0, và các cấu trúc điện thoại thong minh truyền thống. Lƣu trữ: Phần mềm cơ sở dữ liệu SQLite đƣợc sử dụng cho mục đích lƣu trữ, tuy nhiên chỉ dùng dể lƣu trữ trên thiết bị. Tính kết nối: Android hỗ trợ các công nghệ kết nối : GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi,và WiMAX. Tin nhắn: dạng SMS và MMS luôn luôn sẵn sàng với luồng text messaging. Trình duyệt web: Trình duyệt web là một phần cơ bản luôn sẵn sang trong mã nguồn mở WebKit application framework. Hỗ trợ Java: Phần mềm viết bởi Java có thể đƣợc biên dịch và chạy trên Dalvik virtual machine, nó là một VM đặc biệt cho phép thi hành thiết kế cho thiết bị di động sử GVHD: Th.S Phan Phƣơng Lan 7 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc dụng, mặc dù nó không phải là một công nghệ JVM chuẩn. Android không hỗ trợ J2ME giống một số hệ điều hành khác. Hỗ trợ Media: Android hỗ trợ hầu nhƣ tất cả các định dạng : H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (trong MP4 hoặc 3GP), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP. Tăng hỗ trợ phần cứng: Android có thể hỗ trợ video/ từ camera, cảm ứng, GPS, máy đo gia tốc. Môi trƣờng phát triển: bao gồm thiết bị emulator, công cụ để debug, bộ nhớ và sự định hình thực thi và plugin cho Eclipse IDE. Market: giống nhƣ nhiều nơi lƣu trữ ứng dụng điện thoại cơ bản, Android market là một danh mục phần mềm có thể tải về và cài đặt trên thiết bị mà không cần sử dụng PC. Cảm ứng đa điểm: Android có hỗ trợ cảm ứng đa điểm, tuy nhiên trƣớc đây chỉ trên máy HTC Hero có sử dụng do vấn để bản quyền. Tuy nhiên, đến nay, trên các thiết bị mới nhƣ Nexus One hay Motorola Android chức năng này đã đƣơck kích hoạt. Bluetooth: Hỗ trợ gửi và nhận file qua Bluetooth 2.0. Cuộc gọi video: Android không hỗ trợ videocalling. Tuy nhiên nếu chạy UI bổ sung thì nó có thể hỗ trợ cuộc gọi video. 2.1.5 CHU KỲ ỨNG DỤNG ANDROID Một tiến trình Linux của một ứng dụng Android đƣợc tạo ra cho ứng dụng khi ứng dụng cần chạy và sẽ chạy cho đến khi: Nó không còn công việc để thực hiện Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác Một sự khác thƣờng và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng không đƣợc điều khiển trực tiếp bới chính nó. Thay vào đó, nó đƣợc xác định bởi hệ thống qua một kết hợp của các yếu tố: Những phần của hệ thống đang quản lý chạy. Những phần đƣợc cho là quan trọng đối với ngƣời dung. Có bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống. 2.1.5.1 Chu kỳ sống thành phần Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc. Đôi lúc chúng có thể là active hoặc inactive, hoặc là trong trƣờng hợp activies này có thể visible hoặc invisible. GVHD: Th.S Phan Phƣơng Lan 8 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc Hình 4: Chu kỳ sống các thành phần trong android 2.1.5.2 Activity stack Bên trong hệ thống, các Activity đƣợc quản lý bởi một Activity stack. Khi một Activity mới đƣợc tạo ra, nó đƣợc đặt ở đỉnh của stack và trở thành Activity đang chạy Activity trƣớc sẽ ở bên dƣới Activity mới và sẽ không thấy trong suốt quá trình Activity mới tồn tại. Nếu ngƣời dùng nhấn nút Back thì Activity kết tiếp của stack sẽ di duyển lên và trở thành active. GVHD: Th.S Phan Phƣơng Lan 9 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc Hình 5: Activity Stack 2.1.5.3 Chu kỳ sống của ứng dụng(Application life cycle) Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một chu trình sống riêng. Và ứng dụng chỉ đƣợc gọi là kết thúc khi tất cả các thành phần trong ứng dụng đã kết thúc. Activity là một thành phần cho phép ngƣời dùng giao tiếp với ứng dụng. Tuy nhiên, khi tất cả các Activity kết thúc và ngƣời dùng không còn giao tiếp đƣợc với ứng dụng nữa nhƣng không có nghĩa là ứng dụng đã kết thúc. Bởi vì ngoài Activity là thành phần có khả năng tƣơng tác ngƣời dùng thì cũng có các thành phần không có khả năng tƣơng tác với ngƣời dùng nhƣ là Service, Broadcast receiver. Có nghĩa là những thành phần không tƣơng tác ngƣời dùng có thể chạy ẩn(background) dƣới sự giám sát của hệ điều hành cho đến khi ngƣời dùng tự tắt chúng. 2.1.5.4 Các sự kiện trong chu kỳ sống của ứng dụng Tất cả các Activity bắt buộc phải có onCreate() để khởi tạo ứng dụng. Nếu một Activity đƣợc tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ thông tin khác của nó từ vùng nhớ bởi việc gọi hàm finish() của nó, hoặc đơn giản giết tiến trình của nó. Khi đƣợc hiển thị lần nữa với ngƣời dùng, nó phải đƣợc hoàn toàn khởi động lại và phục hồi lại trạng thái trƣớc. Khi một Activity chuyển qua chuyển lại giữa các trạng thái, nó phải báo việc chuyển của nó bằng việc gọi hàm transition. GVHD: Th.S Phan Phƣơng Lan 10 SVTH: Hồ Bình Tân - 1081426 Tìm hiểu Android và SQLite - Ứng dụng xây dựng chƣơng trình quản lý nghe nhạc Hình 6: Các phƣơng thức cơ bản trong chu kỳ sống Tất cả các phƣơng thức là những móc nối mà lập trình viên có thể cài đè (override) để làm phù hợp với công việc trong ứng dụng khi thay đổi trạng thái. 2.1.5.5 Thời gian sống của ứng dụng(Application life time) Thời gian sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng thái cuối cùng gọi onDestroy(). Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), và giải phóng các tài nguyên đang chiếm giữ trong onDestroy(). 2.1.6 CÁC THÀNH PHẦN CỦA ỨNG DỤNG ANDROID Để có thể xây dựng các ứng dụng trên hệ điều hành Android thì trƣớc tiên phải tìm hiểu các giao diện lập trình ứng dụng của hệ điều hành này. Vì vậy sau đây sẽ là giới thiệu về các API cơ bản của Android dƣới đây. 2.1.6.1 Activity Là thành phần quan trọng nhất của một ứng dụng. Hiểu đơn giản thì Activity nhƣ là một môi trƣờng đƣợc khởi tạo để ngƣời sử dụng tạo ra, hiển thị các giao diện, thực hiện những công việc mà ngƣời sử dụng muốn làm. Vòng đời của một Activity: GVHD: Th.S Phan Phƣơng Lan 11 SVTH: Hồ Bình Tân - 1081426
- Xem thêm -