Luận văn Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch

ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
Lại Quang Tùng  
ỨNG DỤNG LƯU TRỮ THÔNG TIN  
BNG CHUỖI MÃ VẠCH  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ thông tin  
HÀ NỘI - 2009  
ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
Lại Quang Tùng  
ỨNG DỤNG LƯU TRỮ THÔNG TIN  
BẰNG CHUỖI MÃ VẠCH  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ thông tin  
Cán bộ hướng dẫn: TS. Trương Anh Hoàng  
HÀ NỘI - 2009  
Lời cảm ơn  
Trước tiên, em xin gửi lời cảm ơn sâu sắc tới thầy Trương Anh Hoàng (bộ môn  
Công Nghệ Phần Mềm, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội). Thầy  
đã tận tình chỉ dẫn cho em từ những bước đi đầu tiên đến khi hoàn thành đề tài khóa  
luận này. Thầy luôn giúp em giải quyết vấn đề trong những lúc khó khăn. Ở thầy em  
học được không chỉ là sự hiểu biết mà còn là cách làm việc và lẽ sống.  
Em xin gửi lời cảm ơn tới tất cả các thầy, cô giáo trong khoa Công nghthông  
tin – trường Đại học Công Nghệ Đại học Quốc Gia Hà Nội đã nhiệt tình giảng dạy  
cho chúng em những tri thức của kỷ nguyên mới – kỷ nguyên công nghệ và truyền  
thông.  
Cảm ơn những người bạn của tôi, những người đã giúp đỡ tôi rất nhiều trong học  
tập, trong cuộc sống và hoàn thành khóa luận này.  
Cuối cùng, con xin gửi lời cảm ơn đến bố, mẹ và gia đình. Bố mẹ luôn là chỗ dựa  
tinh thần vững chắc cho con.  
Nội, ngày 22 tháng 5 năm 2009  
Lại Quang Tùng  
Tóm tắt  
Mã vạch ngày nay đã trở nên phổ biến với mỗi người trong chúng ta, không chỉ  
đem lại sự thuận tiện cho người sử dụng, nó còn mang lại một phong cách mới trong  
mua sắm và tra thông tin về sách sản phẩm. Không dừng lại ở đó, tiềm năng của mã  
vạch còn rất lớn khi xuất hiện các loại mã vạch hai chiều, ghi được nhiều thông tin hơn  
các mã vạch một chiều trước kia.  
Khóa luận sẽ trình bày về mã vạch nói chung và mã vạch QR nói riêng, giới  
thiệu về thư viện mã nguồn mở Zxing để đọc mã vạch, cách sử dụng thư viện này để  
phát triển phần mềm. Khóa luận cũng đi nghiên cứu về các nền tảng di động và đặc  
biệt là nền tảng Android. Ở phần cuối, khóa luận sẽ trình bày ứng dụng thư viện Zxing  
vào việc xây dựng “Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch” trên nền tảng  
Android. Ứng dụng này xuất phát cho phép mã hóa các tệp nhỏ bất kỳ thành một chuỗi  
các mã vạch, và giải mã chúng để trở lại thành tệp ban đầu. Cơ sở này cho phép ta  
truyền số liệu giữa hai thiết bị thông qua màn hình (hoặc các thiết bị hiển thị được hình  
ảnh như giấy) và camera. Phần phụ lục cung cấp một số thuật ngữ thường dùng của  
Android.  
Mục lục  
Mở đầu.............................................................................................................. 1  
Chương 1: Các nền tảng di động..................................................................... 3  
1.1 Brew............................................................................................................................ 5  
1.1.1 Giới thiệu .............................................................................................................. 5  
1.1.2 Ưu nhược điểm...................................................................................................... 5  
1.2 Java ME...................................................................................................................... 6  
1.2.1 Giới thiệu .............................................................................................................. 6  
1.2.2 Ưu nhược điểm...................................................................................................... 6  
1.3 Symbian...................................................................................................................... 7  
1.3.1 Giới thiệu .............................................................................................................. 7  
1.3.2 Ưu nhược điểm...................................................................................................... 7  
1.4 BlackBerry.................................................................................................................. 8  
1.4.1 Giới thiệu .............................................................................................................. 8  
1.4.2 Ưu nhược điểm...................................................................................................... 8  
1.5 Windows Mobile......................................................................................................... 8  
1.5.1 Giới thiệu .............................................................................................................. 8  
1.5.2 Ưu nhược điểm...................................................................................................... 9  
1.6 iPhone ......................................................................................................................... 9  
1.6.1 Giới thiệu .............................................................................................................. 9  
1.6.2 Ưu nhược điểm...................................................................................................... 9  
1.7 Android..................................................................................................................... 10  
1.7.1 Giới thiệu ............................................................................................................ 10  
1.7.2 Ưu nhược điểm.................................................................................................... 10  
Chương 2: Nền tảng Android ........................................................................ 12  
2.1 Khái niệm ................................................................................................................. 12  
2.2 Đặc điểm ................................................................................................................... 13  
2.2.1 Tính m............................................................................................................... 13  
2.2.2 Tính ngang bằng của các ứng dụng...................................................................... 13  
2.2.3 Phá vỡ rào cản phá triển ứng dụng ....................................................................... 13  
2.2.4 Dễ dàng và nhanh chóng xây dựng ứng dụng....................................................... 13  
2.3 Kiến trúc của nền tảng Android .............................................................................. 14  
2.3.1 Kiến trúc tổng quát .............................................................................................. 14  
2.3.2 Hệ điều hành ....................................................................................................... 14  
2.3.3 Thư viện và các giao diện lập trình ứng dụng....................................................... 14  
2.4 Các thành phần của ứng dụng................................................................................. 17  
2.4.1 Hoạt động (Activity)............................................................................................ 17  
2.4.2 Dịch vụ................................................................................................................ 20  
2.4.3 Broadcast receivers (bộ nhận quảng bá)............................................................... 21  
2.4.4 Content provider.................................................................................................. 21  
2.4.5 Các thành phần kích hoạt (các Intent) .................................................................. 22  
2.4.6 Ngắt một thành phần............................................................................................ 23  
2.4.7 Tập tin khai báo (manifest).................................................................................. 23  
2.4.8 Bộ lọc Intent........................................................................................................ 24  
2.5 Công cụ hỗ trợ lập trình Android............................................................................ 25  
Chương 3: Mã vạch, mã QR và thư viện Zxing............................................ 27  
3.1 Mã vạch .................................................................................................................... 27  
3.1.1 Khái niệm............................................................................................................ 27  
3.1.2 Ứng dụng ............................................................................................................ 27  
3.2 Mã QR ...................................................................................................................... 28  
3.2.1 Khái niệm............................................................................................................ 28  
3.2.2 Khả năng lưu trữ.................................................................................................. 29  
3.3 Thư viện Zxing ......................................................................................................... 29  
3.3.1 Khái niệm............................................................................................................ 29  
3.3.2 Cách sử dụng....................................................................................................... 30  
Chương 4: Xây dựng ứng dụng lưu trữ thông tin bằng chuỗi mã vạch...... 34  
4.1 Đặt vấn đ................................................................................................................. 34  
4.2 Giải pháp .................................................................................................................. 34  
4.3 Phân tích................................................................................................................... 34  
4.3.1 Các chức năng của hệ thống................................................................................. 34  
4.3.2 Xác định tác nhân và ca sử dụng.......................................................................... 35  
4.3.3 Mối quan hệ giữa tác nhân và các ca sử dụng....................................................... 35  
4.3.4 Biểu đồ tuần tự .................................................................................................... 37  
4.4 Thiết kế ..................................................................................................................... 43  
4.4.1 Thiết kế lớp ......................................................................................................... 43  
4.5 Thiết kế giao diện ..................................................................................................... 46  
4.6 Kiểm thử chương trình ............................................................................................ 46  
4.6.1 Kiểm thử ca sử dụng............................................................................................ 46  
4.6.2 Kết quả thực nghiệm............................................................................................ 49  
Kết luận........................................................................................................... 55  
Danh mục ký hiệu viết tắt  
Giải thích  
Ký hiệu  
Tiếng Anh  
Tiếng Việt  
Application Programming  
Interface  
Giao diện lập trình ứng dụng  
API  
Một công nghệ trong hệ thống  
thông tin di động  
Gói dịch vụ vô tuyến tổng hợp  
Hệ thống thông tin di động toàn  
cầu  
Code Division Multiple Access  
CDMA  
GPRS  
GSM  
General Packet Radio Service  
Global System for Mobile  
Communications  
Là đặc tả và cũng là nền tảng  
thực thi cho các ứng dụng Java  
Thuộc tính thông tin thiết bị di  
động  
Java 2 Standard Edition  
J2SE  
Mobile Information Device Profile  
MIDP  
Operating System  
Personal Computer  
Hệ điều hành  
Máy tính cá nhân  
OS  
PC  
Bộ công cụ phát triển phần  
mềm  
Software Development Kit  
SDK  
Một chuẩn kết nối tuần tự trong  
máy tính  
Hệ thống mạng không dây  
Universal Serial Bus  
Wireless Fidelity  
USB  
Wi-Fi  
Danh mục bảng biểu  
Bảng 1:  
Bảng 2:  
Bảng 3:  
Bảng 4:  
Bảng 5:  
Bảng 6:  
Bảng 7:  
Bảng 8:  
Bảng 9:  
Thị trường di động năm 2008 [1] ........................................................................ 3  
Mối quan hệ giữa tác nhân và các ca sử dụng.................................................... 35  
Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Encode36  
Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Decode36  
Bảng hành động của tác nhân và phản ứng của hệ thống với ca sử dụng Help ... 37  
Biểu đồ tuần tự ca sử dụng Decode files ........................................................... 40  
Bảng ca kiểm thử mã hóa tập tin....................................................................... 47  
Bảng ca kiểm thử giải mã tập tin....................................................................... 48  
Bảng ca kiểm thử giải mã ảnh........................................................................... 49  
Danh mục hình vẽ  
Hình 1:  
Hình 2:  
Hình 3:  
Hình 4:  
Hình 5:  
Hình 6:  
Hình 7:  
Hình 8:  
Hình 9:  
Bản đồ phát triển điện thoại di động [2] .............................................................. 4  
Điện thoại Android, HTC Dream (trái) và HTC Magic (phải) ........................... 12  
Nhân Linux trên Android.................................................................................. 14  
Thư viện lâp trình ứng dụng trên Android......................................................... 14  
Khung ứng dụng ............................................................................................... 16  
Các ứng dụng trên Android............................................................................... 16  
Vòng đời của một hoạt động............................................................................. 19  
Một ảnh mã QR ................................................................................................ 28  
Biểu đồ ca sử dụng hệ thống ............................................................................. 35  
Hình 10: Biểu đồ tuần tự của hệ thống............................................................................. 38  
Hình 11: Biểu đồ tuần tự ca sử dụng Encode ................................................................... 39  
Hình 12: Biểu đồ tuần tự ca sử dụng Decode Images....................................................... 41  
Hình 13: Biểu đồ hoạt động của hệ thống ........................................................................ 42  
Hình 14: Biểu đồ lớp của hệ thống .................................................................................. 45  
Hình 15: Thiết kế giao diện chương trình ........................................................................ 46  
Hình 16: Mã hóa tập tin ringtone.mid.............................................................................. 49  
Hình 17: Các ảnh mã QR được chương trình tạo ra từ tập tin MID ringtone.mid.............. 52  
Hình 18: Một số hình ảnh về giải mã các tập tin ảnh........................................................ 53  
Hình 19: Màn hình danh sách các ứng dụng .................................................................... 56  
Hình 20: Màn hình chính của chương trình...................................................................... 56  
Hình 21: Cửa sổ chức năng mã hóa ................................................................................. 57  
Hình 22: Cửa sổ giải mã.................................................................................................. 57  
Hình 23: Nhập đường dẫn tập tin ảnh đầu tiên được mã hóa............................................ 57  
Mở đầu  
Ngày nay, việc ứng dụng mã vạch đã trở nên phổ biến đối với mọi người kể cả  
trên thế giới và Việt Nam. Mỗi khi đi siêu thị chúng ta vẫn thấy người thu ngân dùng  
một thiết bị quét mã vạch in trên sản phẩm giúp cho việc thanh toán dễ dàng hơn. Đấy  
mới chỉ là một ứng dụng nhỏ của việc sử dụng mã vạch vào đời sống thường ngày.  
Cùng với sự phát triển của công nghệ, mã vạch đã cải tiến không chỉ còn đơn  
giản là lưu mã của sản phẩm mà còn có khả năng lưu được nhiều thông tin của sản  
phẩm hơn với việc sử dụng mã vạch 2 chiều.  
Một lợi thế của ứng dụng mã vạch là khả năng tiện dụng, chúng ta có thể sử dụng  
tại bất kỳ đâu, bất kỳ khi nào bằng việc sử dụng một thiết bị thông minh có hỗ trợ máy  
ảnh (ví dụ: điện thoại di động) có khả năng đọc mã vạch và giải mã mã vạch đó.  
Đặt trong hoàn cảnh giữa hai thiết bị Android không có sự bất kỳ kết nối nào  
(không Bluetooth, không Wi-Fi) mà chúng lại muốn chia sẽ dữ liệu cho nhau. Khóa  
luận sẽ đưa ra một giải pháp cho việc lưu trữ, chia sẻ thông tin này dựa trên mã vạch 2  
chiều QR kết hợp với nền tảng Google Android − một nền tảng di động mới đầy hứa  
hẹn và là đối thủ xứng tầm của iPhone.  
Khóa luận sẽ tập trung nghiên cứu về các nền tảng di động, các đặc điểm của  
chúng, đi sâu nghiên cứu nền tảng Google Android và công nghệ mã vạch hiện nay,  
cuối cùng là ứng dụng vào giải quyết bài toán ứng dụng lưu trữ thông tin bằng chuỗi  
mã vạch  
Nội dung khóa luận bao gồm 6 phần với các nội dung chính sau:  
Mở đầu: Đặt vấn đề  
Chương 1: Giới thiệu khái quát các nền tảng di động hiện nay, đưa ra các điểm  
mạnh, điểm yếu của từng nền tảng.  
Chương 2: Giới thiệu về nền tảng di động Google Android, các đặc điểm, cấu  
trúc và các công cụ phát triển của Android  
Chương 3: Trình bày về mã vạch và mã QR, các ứng dụng của chúng trong đời  
sống hàng ngày. Chương này cũng trình bày về thư viện mã nguồn mở Zxing, ứng  
dụng và cách sử dụng của thư viện mở này.  
1
Chương 4: Ứng dụng vào giải quyết bài toán “Ứng dụng lưu trữ thông tin bằng  
chuỗi và mã vạch” trên Android. Ứng dụng giúp lưu trữ và chia sẽ thông tin giữa các  
điện thoại Android với nhau.  
Kết luận: Tổng kết lại toàn khóa luận, những gì đã làm được, so sánh với các  
khóa luận trước về Android và đưa ra hướng phát triển tiếp theo cho khóa luận.  
2
Chương 1: Các nền tảng di động  
Hiện nay, chúng ta biết đến rất nhiều nền tảng di động khác nhau như: Brew,  
Java ME, BlackBerry, iPhone…Nhưng không hẳn ai trong mỗi chúng ta đều biết về  
chúng, chúng có những ưu điểm gì những nhược điểm gì? Trong nội dung chương  
này, khóa luận sẽ giới thiệu về một số nền tảng di động phổ biển hiện nay và những  
đặc điểm của chúng để thấy được điểm mạnh, điểm yếu của mỗi nền tảng. Trước hết là  
một số hình ảnh tổng quan về thị trường di động. Bảng 1 là thống kê năm 2008 về thị  
phần của thị trường di động [1]. Hình 1 là bức tranh toàn cục về các nền tảng di động  
và các công ty phát triển chúng [2].  
Bảng 1: Thị trường di động năm 2008 [1]  
3
Hình 1: Bản đồ phát triển điện thoại di động [2]  
4
1.1 Brew  
1.1.1 Giới thiệu  
Brew [3] (Binary Runtime Environment for Wireless môi trường thực thi nhị  
phân cho thiết bị không dây) là nền tảng ứng dụng di động được hãng Qualcomm phát  
triển, ra đời chính thức từ năm 2001. Brew có nguồn gốc phát triển dành cho các điện  
thoại CDMA, nhưng đã chuyển sang hướng phát triển mới bao gồm cả GSM/GPRS.  
Nó cho phép tải và chạy những chương trình nhỏ như trò chơi, hay gửi tin nhắn, chia  
sẻ hình ảnh, xác định vị trí, v.v….  
Một ưu thế của nền tảng này đó là các nhà phát triển ứng dụng có thể dễ dàng  
chuyển các ứng dụng của họ sang các thiết bị của Qualcomm. BREW làm việc ở giữa  
ứng dụng với hệ điều hành trên chíp của thiết bị không dây, cho phép những người  
phát triển phần mềm ứng dng không cần phải viết mã cho giao tiếp hệ thống hay phải  
hiểu các ứng dụng không dây.  
1.1.2 Ưu nhược điểm  
Ưu điểm  
Kiểm thử: nhiều người phát triển có thể cho rằng việc kiểm thử phức tạp của ứng  
dụng Brew làm chậm ngày phát hành hay chi phí cao của phần mềm. Tuy nhiên việc  
kiểm thử kỹ lưỡng sẽ giúp các ứng dụng trên Brew cuối cùng ít lỗi nhất và có chất  
lượng cao hơn.  
Giao diện lập trình ứng dụng Brew (Brew API): thư viện lập trình ứng dụng của  
Brew mạnh và dễ sử dụng hơn của nhiều nền tảng khác (như API của Java ME).  
Đồ họa: phát triển đồ họa cho các trò chơi hay ứng dụng khác dễ dàng hơn các  
nền tảng khác, bởi Brew cung cấp khả năng truy cập vào vùng đệm màn hình.  
Không giới hạn kích thước bộ nhớ: Brew không giới hạn kích thước bộ nhớ như  
J2ME (có giới hạn là 128K).  
Giảm sự cạnh tranh cho những người phát triển ứng dụng: do người phát triển  
phải trả phí kiểm thử phần mềm của họ, điều này làm giảm tính cạnh tranh. Trong  
phần lớn trường hợp, chúng ta không phải lo vcác phần mềm miễn phí.  
Nhược điểm  
Không phổ biến: dù có nhiều ưu điểm nó vẫn không phổ biến như các nền tảng  
khác như Java ME.  
5
Tốn phí kiểm thử: để phần mềm của mình có thể được chấp nhận và sẵn sàng  
bán, nó phải được kiểm thử bởi NTSL (National Software Testing Labs) và tốn ít nhất  
khoảng 400 đô la Mỹ.  
Không nén được: mã nguồn Brew không thể nén lại vì lý do an ninh và có thể  
làm tăng kích thước phần mềm.  
Hồ sơ thiết bị: hồ sơ thiết bị của Brew thường rất đắt, không miễn phí như MIDP  
(Mobile Information Device Profile) của J2ME.  
Không tương thích: mặc dù có nơi để kiểm thử, nhiều thiết bị di động vẫn không  
tương thích với nền tảng Brew [4].  
1.2 Java ME  
1.2.1 Giới thiệu  
Java ME (viết tắt của Java Micro Edition) là một nhánh phát triển của nền tảng  
Java, nhằm mục đích cung cấp một bộ API để phát triển ứng dụng trên các thiết bị  
nhúng như điện thoại di động, PDA, các thiết bị cầm tay…Trước kia Java ME có tên  
khác là J2ME (Java 2 Micro Edition).  
1.2.2 Ưu nhược điểm  
Ưu điểm  
Khả chuyển: viết một lần chạy mọi nơi, đây là lợi thế lớn nhất của Java ME. Các  
ứng dụng, nhất là ứng dụng trò chơi trên máy bàn dễ dàng chuyển sang cho các thiết bị  
cầm tay.  
Bảo mật: mã nguồn được chạy trong giới hạn của máy ảo Java. MIDlet có thể  
được ký hiệu bằng mật mã và xác nhận trên thiết bị. Java ME có kiến trúc phân quyền  
cao cấp.  
Bộ giao diện lập trình ứng dụng phong phú, ngày càng hoàn thiện hơn. Ngoài ra,  
Java ME được sự ủng hộ của các hãng truyền thông và nhà sản xuất thiết bị cầm tay  
lớn.  
Các công cụ phát triển sẵn có, min phí. Ví dụ như Netbeans, Eclipse, Wireless  
toolkit…  
Nhược điểm  
Nhược điểm lớn nhất của Java ME là không tận dụng hết được khả năng đặc  
trưng của các thiết bị. Nhu cầu và sự phát triển của các thiết bị cầm tay đòi hỏi thư  
6
viện API của Java ME phải ngày càng hoàn thiện hơn để theo kịp các nền tảng khác  
nếu không muốn btụt hậu.  
1.3 Symbian  
1.3.1 Giới thiệu  
Symbian là một hệ điều hành mở được thiết kế cho các thiết bị di động của công  
ty Symbian, hiện nay nó thuộc sở hữu của nhiều công ty khác (Nokia, Ericsson, Sony  
Ericsson, Panasonic, Samsung…). Symbian hỗ trợ Java, đồng bộ hóa máy tính, truy  
cập Bluetooth và chuyển gói dữ liệu GPRS. Symbian là hệ điều hành phổ biến nhất  
của các điện thoại và các thiết bị thông minh.  
1.3.2 Ưu nhược điểm  
Ưu điểm  
Ưu điểm đầu tiên có thể kể đến là sự phổ biến. Ngay từ đầu, hệ điều hành  
Symbian phát triển với mục đích lấy được đơn đặt hàng cho các công ty phát triển thiết  
bị viễn thông. Điện thoại đầu tiên sử dụng hệ điều hành Symbian là Nokia 9210 năm  
2001. Sau đó, đã có hơn 1 tỉ điện thoại được bán khắp thế giới năm 2007, hơn một  
trăm triệu là điện thoại thông minh, trong đó có đến ¾ chạy hệ điều hành Symbian [5].  
Trên thị trường thiết bị di động không có chuẩn nào về cỡ màn hình, bàn phím,  
các nút… Symbian đã phân loại giao diện đồ họa từ các thành phần hệ thống khác  
nhau. Nó cho phép hệ thống thích hp với mọi loại cỡ và độ phân giải màn hình kể cả  
màn hình cảm ứng. Nó còn cho phép tạo sự thêm độc đáo bằng phần cứng cảm nhận  
gia tốc.  
Điểm mạnh nhất của Symbian là hệ điều hành mở hỗ trợ đa ngôn ngữ (C++ và  
Java). Việc lập trình với ngôn ngữ C++ trên PC với sự hỗ trợ của bộ công cụ  
Microsoft Visual Studio và bộ giả lập rất dễ dàng. Bên cạnh đó, Symbian cũng hỗ trợ  
cả Java ME.  
Nhược điểm  
Hiện nay do sự phát triển của nhiều nền tảng di động mới nổi lên như  
BlackBerry, iPhone hay Google Android thì hệ điều hành Symbian đang đứng trước  
khó khăn để theo kịp các đối thủ.  
7
1.4 BlackBerry  
1.4.1 Giới thiệu  
Hệ điều hành BlackBerry [6] là một phần mềm nền tảng độc quyền của RIM  
(Research in Motion, Canada) cho dòng thiết bị cầm tay BlackBerry và các thiết bị hỗ  
trợ BlackBerry. Nó là hệ điều hành cung cấp chức năng đa nhiệm, sử dụng bàn phím  
Qwerty, cùng với bi xoay hay màn hình cảm ứng. Hiện tại hệ điều hành BlackBerry 4  
hỗ trợ MIDP 2.0, cho phép kích hoạt và đồng bộ hoàn toàn với thư điện tử Microsoft  
Exchange, lịch, các tác vụ, ghi chú và danh bạ…  
Người lập trình thba có thể viết phần mềm sử dụng các API do BlackBerry  
cung cấp, nhưng bất kể chương trình nào sử dụng các chức năng giới hạn phải có chữ  
ký điện tử, để có thể đồng bộ được với tài khoản của người phát triển ở RIM. Điều này  
đảm bảo thủ tục bản quyền tác giả của một ứng dụng, nhưng không đảm bảo chất  
lượng hay bảo mật của mã nguồn.  
1.4.2 Ưu nhược điểm  
Ưu điểm  
Thiết kế tiện lợi, nhiều chức năng, ứng dụng phong phú, phù hợp với nhiều mục  
đích nhất là doanh nhân với bàn phím Qwerty, gửi nhận thư điện tử… Hiện nay, RIM  
đã có mở một kho ứng dụng App World của mình, cộng thêm ứng dụng giải trí và tiện  
ích trên BlackBerry còn ít, điều này hứa hẹn nhiều cơ hội cho người lập trình. Một lợi  
thế nữa của BlackBerry là một trong những hệ điều hành phổ biến nhất cho các thiết bị  
di động (vị trí thứ 2 sau Symbian).  
Nhược điểm  
Lập trình trên BlackBerry gặp nhiều khó khăn do có ít tài liệu, công cụ hỗ trợ,  
cộng đồng phát triển không lớn và cũng như Symbian, BlackBerry đang giảm ưu thế  
với sự nổi nên của Android và iPhone.  
1.5 Windows Mobile  
1.5.1 Giới thiệu  
Windows Mobile là một hệ điều hành nhỏ gọn kết hợp với một số các ứng dụng  
cơ bản dành cho các thiết bị di động dựa trên các API của Microsoft Win32. Windows  
Mobile có thể chạy trên nhiều nền tảng phần cứng khác nhau như: Pocket PC,  
Smartphone, v.v… Nó được thiết kế có chút tương đồng với phiên bản Windows cho  
máy bàn.  
8
1.5.2 Ưu nhược điểm  
Ưu điểm  
Ưu điểm lớn nhất của Windows Mobile là nó có thư viện API khá giống với API  
trên Win32, các công cụ hỗ trợ lập trình đầy đủ với Visual Studio, điều này làm cho  
những người phát triển trên Win32 không mất công tìm hiểu lại các API và các công  
clập trình.  
Nhược điểm  
Sự có mặt của iPhone và Android là hai trở ngại lớn với Windows Mobile. Hai  
nền tảng này đang hoàn thiện và được người dùng rất ưa chuộng.  
1.6 iPhone  
1.6.1 Giới thiệu  
Hệ điều hành iPhone là một hệ điều hành được phát triển bởi hãng Apple Inc,  
chạy trên iPhone (cả hai mẫu 2G và 3G) và Ipod cảm ứng. Nó dựa trên nhân Mac của  
hệ điều hành Mac X và sử dụng nền tảng Darwin. Hệ điều hành iPhone có bốn lớp  
trừu tượng: lớp Core OS, lớp Core Services, lớp Media và lớp Cocoa Touch. Hệ điều  
hành sử dụng dưới 240 MB trong tổng số bộ nhớ của thiết bị.  
Vào 3/2008 bộ công cụ phát triển phần mềm chính thức ra mắt, cho phép người  
phát triển tạo ứng dụng cho iPhone và Ipod Touch và kiểm thử qua một bộ giả lập  
iPhone. Tuy nhiên, việc tải một ứng dụng lên trên thiết bị chỉ có thể sau khi trả phí  
phát triển chương trình iPhone (iPhone Developer Program fee). Từ khi ra bản Xcode  
3.1, Xcode trở thành môi trường phát triển cho iPhone SDK. Hiện nay Xcode chỉ được  
cài trên Mac OS.  
Người phát triển có thể đặt bất kỳ giá nào trên mức thấp nhất cho các ứng dụng  
của họ để phân phối thông qua App Store, tại đó họ được trả 70% lợi nhuận. Ngược  
lại, họ cũng có thể phát hành ứng dụng miễn phí và không phải trả khoản phí nào để  
phát hành và phân phối các ứng dụng đó [7].  
1.6.2 Ưu nhược điểm  
Ưu điểm  
Màn hình cảm ứng đa điểm: iPhone sử dụng hoàn toàn bằng cảm ứng và không  
sử dụng các nút. Với iPhone ta có thể điều khiển trên màn hình kể cả việc trượt của  
các ngón tay. Ta có thể phóng to ảnh bằng cách trượt hai ngón tay ra xa và thu nhỏ  
bằng cách ngược lại.  
9
Bcảm nhận gia tốc: Những phản ứng nhanh chóng của bộ cảm nhận gia tốc  
thay đổi độ phân giải màn hình từ dọc sang ngang tự động khi ta đặt điện thoại nằm  
ngang. Điều này làm sinh động thêm cho các trò chơi.  
Chất lượng âm thanh, hình ảnh hoàn hảo, phù hợp cho các trò chơi và có chức  
năng đa nhiệm là những đặc điểm nổi trội của iPhone.  
Nhược điểm  
Không gửi được tin nhắn đa phương tiện (MMS) và IM (Instant Messaging),  
thiếu bộ nhớ mở rộng. Việc lập trình trên cho iPhone phải thực hiện trên hệ điều hành  
Mac, do đó không phải ai cũng có thể lập trình cho iPhone. Hơn thế, nếu muốn đưa  
chương trình ra máy thật người lập trình phải trả một khoản phí lập trình, điều này làm  
giảm tính cạnh tranh so với các đối thủ khác.  
1.7 Android  
1.7.1 Giới thiệu  
Android là một phầm mềm nền tảng cho các thiết bị di động, được xây dựng trên  
nhân Linux, được Google phát triển và sau này là Liên minh thiết bị cầm tay mở. Nó  
cho phép người phát triển viết mã trên ngôn ngữ Java, điều khiển các thiết bị thông  
qua thư viện Java do Google phát triển.  
Tháng 11/2007 nền tảng Android chính thức được giới thiệu với sự công bố của  
Liên minh thiết bị cầm tay mở (Open Handset Alliance). Mục tiêu của Google đang  
muốn đưa cỗ máy tìm kiếm của họ thống lĩnh các thiết bị di động khi mà điện thoại  
thông minh đang phát triển mạnh mẽ như hiện nay.  
1.7.2 Ưu nhược điểm  
Ưu điểm  
Google Android là nền tảng mở, cho phép người dùng có thể tùy biến nền tảng  
theo ý thích, hơn nữa lại có một Liên minh thiết bị cầm tay mở hậu thuẫn, Google  
Android đang là đối thủ xứng tầm của iPhone của Apple. Google đang tích cực mở  
rộng cộng đồng phát triển các ứng dụng cho Android. Bộ công cụ phát triển phần mềm  
(SDK) đầy đủ, hỗ trợ đa nền (Linux, Windows hay Mac OS) do chạy trên máy ảo  
Java. Thư viện ngày càng hoàn thiện, dễ dàng cho người lập trình.  
Nhược điểm  
Có hỗ trợ cảm ứng đa điểm, nhưng chức năng này bị tắt (do sợ vi phạm bản  
quyền với iPhone), giao điện không bắt mắt, khả năng hỗ trợ bộ nhớ kém iPhone,  
10  
không đồng bộ được với máy tính. Hi vọng trong thời gian tới Google sẽ sớm khắc  
phục những nhược điểm này.  
11  
Chương 2: Nền tảng Android  
Chương này giới thiệu về nền tảng Android, khái niệm, các đặc điểm của nền  
tảng Android. Tiếp đến là đi sâu trình bày về kiến trúc và giới thiệu bộ công cụ lập  
trình cho Android.  
2.1 Khái niệm  
Hình 2: Điện thoại Android, HTC Dream (trái) và HTC Magic (phải)  
Android là một hệ thống, một hệ điều hành dựa trên Java và chạy trên nhân linux  
2.6. Nó được phát triển bởi Liên minh thiết bị cầm tay mở (Open Handset Alliance),  
với phương châm mang lại phong cách sử dụng Internet mới và mở cho điện thoại di  
động.  
Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động bao  
gồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản.  
12  
2.2 Đặc điểm  
2.2.1 Tính mở  
Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các ứng  
dụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện có.  
Android hoàn toàn m, một ứng dụng có thể gọi tới bất kể một chức năng lõi của điện  
thoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triển  
tạo phong phú hơn, liên kết hơn các tính năng cho người dùng. Android được xây  
dựng trên nhân Linux mở. Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu hóa  
bộ nhớ và phần cứng với môi trường di động. Android mà một mã nguồn mở, nó có  
thể được mở rộng để kết hợp tự do giữa các công nghệ nổi trội. Nền tảng này sẽ tiếp  
tục phát triển bởi cộng đồng phát triển để tạo ra các ứng dụng di động hoàn hảo.  
2.2.2 Tính ngang bằng của các ứng dụng  
Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản với  
ứng dụng của bên thứ ba. Chúng được xây dựng để truy cập như nhau tới một loạt các  
ứng dụng và dịch vụ của điện thoại. Với các thiết bị được xây dựng trên nền tảng  
Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích. Chúng ta có thể  
đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào. Chúng ta thậm chí có  
thể hướng dẫn điện thoại chỉ xem những ảnh mình thích.  
2.2.3 Phá vỡ rào cản phát triển ứng dụng  
Android phá vỡ rào cản để tạo ứng dụng mới và cải tiến. Một người phát triển có  
thể kết hợp thông tin từ trang web với dữ liệu trên điện thoại cá nhân – chẳng hạn như  
danh bạ, lịch hay vị trí trên bản đồ để cung cấp chính xác hơn cho người khác. Với  
Android, người phát triển có thể xây dựng một ứng dụng mà cho phép người dùng  
xem vị trí của những người bạn và thông báo khi họ đang ở vị trí lân cận. Tất cả được  
lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS.  
2.2.4 Dễ dàng và nhanh chóng xây dựng ứng dụng  
Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công cụ  
để viết các ứng dụng phức tạp. Ví dụ, Android có thể cho phép người phát triển biết  
được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nên  
mạng xã hội chia sẻ ngang hàng rộng khắp. Thêm nữa, Android còn bao gồm một bộ  
công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng.  
13  
2.3 Kiến trúc của nền tảng Android  
2.3.1 Kiến trúc tổng quát  
Android bao gồm bốn thành phần sau, theo [8]:  
Hệ điều hành  
Thư viện và các giao diện lập trình ứng dụng  
Khung ứng dụng  
Ứng dụng  
2.3.2 Hệ điều hành  
Hình 3: Nhân Linux trên Android  
Android sử dụng nhân Linux 2.6 làm nhân cho các dịch vụ hệ thống như bảo  
mật, quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và  
trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…). Nhân  
Linux này cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm.  
2.3.3 Thư viện và các giao diện lập trình ứng dụng  
Android có một thư viện khá phong phú [9] cung cấp sẵn để người lập trình có  
thể sử dụng. Hình 4 là sơ đồ tóm tắt về hệ thống thư viện này.  
Hình 4: Thư viện lâp trình ứng dụng trên Android  
2.3.3.1 Android runtime  
Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng sẵn  
có trong thư viện cốt lõi của ngôn ngữ lập trình Java.  
Mỗi ứng dụng Android đều chạy trong tiến trình của nó, với mỗi máy ảo Dalvik  
riêng. Dalvik được viết để thiết bị có thể chạy nhiều máy ảo Dalvik một cách hiệu quả.  
14  
Máy ảo Dalvik thực thi các tập tin thực thi Dalvik (.dex) đã được nén lại. Máy ảo  
Dalvik dựa trên thanh ghi, chạy các lớp được biên dịch bằng bộ biên dịch ngôn ngữ  
Java và chuyển sang định dạng .dex bằng công cụ “dx”.  
Máy ảo Dalvik dựa trên nhân của Linux với các chức năng bên dưới như phân  
luồng và quản lý bộ nhớ mức thấp.  
2.3.3.2 Bộ thư viện  
Android cung cấp một tập các thư viện C/C++ được các thành phần của Android  
sử dụng khác nhau. Khung ứng dụng Android mang lại nhiều khả năng cho những  
người phát triển. Sau đây là một vài thư viện cơ bản:  
Hệ thống thư viện C: một dẫn xuất của hệ thống thư viện C chuẩn cho  
những thiết bị nhúng trên nền Linux.  
Thư viện đa phương tiện: sử dụng nhân mở PacketVideo, hỗ trợ nhiều  
định dạng âm thanh, hình ảnh và cả video, bao gồm Mpeg4, H264, MP3,  
ACC, ẢM, JPG và PNG.  
Surface manager: quản lý việc truy cập tới các hệ thống hiển thị con và  
việc kết hợp của các lớp đồ họa 2 chiều, 3 chiều từ nhiều ứng dụng.  
Thư viện cơ sở Web: một máy trình duyệt web hiện đại tận dụng sức  
mạnh của trình duyệt Android, cho phép nhúng cửa sổ duyệt web cho  
ứng dụng.  
SGL (Scalable Graphics Library): cỗ máy đồ họa 2D của Android.  
Thư viện 3D: được cài đặt trên dựa trên API của OpenGL ES 1.0; thư  
viện bao gồm cả bcảm nhận gia tốc phần cứng 3D, tối ưu hóa các phần  
mềm 3D.  
FreeType: thư viện font chữ ảnh nhị phân và véc tơ.  
SQLite: là thư viện truy xuất cơ sở dữ liệu nhỏ, mạnh, có sẵn trong mọi  
ứng dụng Android.  
2.3.3.3 Khung ứng dụng  
15  
Hình 5: Khung ứng dụng  
Android cho phép người phát triển có toàn quyền truy xuất vào các API khung  
được sử dụng bởi các ứng dụng nòng cốt. 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, mỗi ứng dụng có thể cho phép các ứng dụng  
khác khả năng sử dụng các thành phần này. Điều này giống với kỹ thuật cho phép  
người dùng đặt lại các thành phần.  
Dưới đây là tất cả các ứng dụng của hệ thống và các dịch vụ:  
Tập hợp phong phú của các Views sử dụng để xây dựng các ứng dụng,  
bao gồm các list, các grid, các text box, các button và thậm chí nhúng cả  
trình duyệt web.  
Content Providers cho phép các ứng dụng truy xuất dữ liệu từ ứng dụng  
khác (ví dụ như danh bạ), hay chia sẻ dữ liệu.  
Resource Manager cung cấp truy cập tới tài nguyên không phải mã  
nguồn như là các tập tin lưu các xâu, tập tin đồ họa, hay tập tin bố cục  
giao diện.  
Notification Manager cho phép các ứng dụng hiển thị các thông báo trên  
thanh trạng thái.  
Activity Manager quản lý vòng đời của các ứng dụng (từ khi chúng sinh  
ra, được thực thi, chuyển sang trạng thái chờ, gọi thực thi lại và kết  
thúc).  
2.3.3.4 Ứng dụng  
Hình 6: Các ứng dụng trên Android  
Đây là lớp trên cùng của kiến trúc nền tảng Android. Android sẽ hoạt động với  
một bộ các ứng dụng bao gồm ứng dụng thư điện tử, gửi tin nhắn, lịch, bản đồ, trình  
duyệt web, danh bạ v.v… Tất cả các ứng dụng được viết bằng ngôn ngữ Java. Các ứng  
dụng này có thể được cung cấp sẵn hoặc được phát triển bởi những lập trình viên.  
16  
2.4 Các thành phần của ứng dụng  
Một ứng dụng trên Android được cấu thành tbốn thành phần cơ bản sau:  
Activities (Hoạt động)  
Services  
Broadcast Receivers  
Content Provider  
Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng. Chúng  
ta có thể xem các thành phần nào được sử dụng trong ứng dụng bằng việc xem khai  
báo trong file AndroidManifest.xml.  
2.4.1 Hoạt động (Activity)  
2.4.1.1 Khái niệm  
Một hoạt động là một giao diện người dùng trực quan mà người dùng có thể thực  
hiện trên đó mỗi khi được kích hoạt. Một ứng dụng có thể có nhiều hoạt động và  
chúng có thể gọi đến nhau chuyển giữa các hoạt động với nhau. Mỗi activity là một  
dẫn xuất của lớp android.app.Activity.  
Mỗi hoạt động có một cửa sổ để vẽ lên. Thông thường cửa sổ này phủ đầy màn  
hình, ngoài ra nó cũng có thể có thêm các cửa sổ con khác như là hộp thoại…Nội dung  
của cửa sổ của hoạt động được cung cấp bởi một hệ thống cấp bậc các View (là đối  
tượng của lớp Views).  
2.4.1.2 Vòng đời của hoạt động  
Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp.  
Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sang  
trạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ. Hoạt động này  
chỉ trở lại trang thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thực thi.  
Một hoạt động có ba trạng thái chủ yếu đó là:  
Nếu hoạt động được hiển thị ngoài cùng của màn hình (hoạt động này  
nằm trên đỉnh ngăn xếp hoạt động), nó trong trạng thái thực thi.  
Khi bị chiếm mất quyền điều khiển nhưng vẫn được hiển thị trên màn  
hình thì một hoạt động sẽ chuyển sang trạng thái tạm dừng. Các thông  
tin về trạng thái và các dữ liệu mà hoạt động đang sử dụng vẫn được lưu  
giữ (bởi chương trình quản lý của hệ thống) nhưng khi hệ thống rơi vào  
trạng thái thiếu bộ nhớ thì những thông tin trên có thể bị giải phóng.  
17  
Khi một hoạt động đang ở trạng thái dừng hoặc tạm dừng, hệ thống có  
thể xóa bỏ hoạt động khỏi bộ nhớ thông qua việc yêu cầu hoạt động này  
kết thúc.  
Biểu đồ sau mô tả trạng thái trong vòng đời của một hoạt động. Hình chữ nhật  
viên còn thể hiện các phương thức Callback mà chúng ta có thể khai báo để gọi thực  
thi một số thao tác khi hoạt động chuyển sang trạng thái khác (phương thức Callback  
là phương thức được gọi lại bởi một phương thức khác khi có một sự kiện xảy ra). Các  
trạng thái chính của một hoạt động được thể hiện bởi các hình viên thuốc.  
18  
Hình 7: Vòng đời của một hoạt động  
19  
Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:  
Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tới phương  
thức onCreate (Bundle) tới lời gọi phương thức onDestroy(). Trong quá trình này, một  
hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trong phương thức  
onCreate() và gii phóng chúng khi phương thức onDestroy() được thực thi.  
Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tới phương  
thức onStart(), cho tới khi phương thức onStop() của nó được thực thi. Toàn bộ các tài  
nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ, người dùng có thể  
thấy giao diện nhưng không tương tác được với hoạt động do trong qua trình này hoạt  
động không ở trạng thái chạy tiền cảnh.  
Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi có lời gọi  
tới phương thức onResume() và kết thúc bằng lời gọi tới phương thức onPause().  
Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể tương tác với người dùng.  
2.4.2 Dịch vụ  
2.4.2.1 Khái niệm  
Một dịch vụ (service) là các đoạn mã được thực thi ngầm bởi hệ thống mà người  
sử dụng không thấy được. Ví dụ như một chương trình chơi nhạc, sẽ có vài hoạt động  
cho phép người dùng duyệt danh sách các bài hát và lựa chọn bài nào để phát. Tuy  
nhiên, chức năng chơi nhạc không được thiết kế như một hoạt động bởi chúng ta sẽ  
muốn chuyển qua cửa sổ khác, như khi soạn tin nhắn thì bài nhạc vẫn tiếp tục được  
chơi. Trong trường hợp này, ứng dụng chơi nhạc sẽ khởi tạo một dịch vụ bằng cách sử  
dụng phương thức Context.startService().  
Một ứng dụng có thể dễ dàng thực hiện liên kết tới một dịch vụ đang chạy (thậm  
chí khởi động nếu nó chưa thực thi) bằng phương thức Context.bindService(). Khi đó  
dịch vụ này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thông qua giao  
diện gọi là IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặc chuyển qua  
bài nhạc kế tiếp).  
2.4.2.2 Vòng đời của một dịch vụ  
Vòng đời của một dịch vụ được hiểu là quá trình hoạt động từ khi nó được tạo ra  
cho tới khi bị loại khỏi hệ thống. Có hai cách thức để một dịch vụ có thể được chạy  
trong hệ thống:  
20  
Khi hệ thống có lời gọi tới phương thức Context.startService(). Trong trường  
hợp này, dịch vụ sẽ được thực hiện liên tục cho tới khi hệ thống gọi phương thức  
Context.stopService().  
Khi các ứng dụng gọi phương thức Context.bindService() để tạo kết nối với  
dịch vụ (dịch vụ sẽ được khởi tạo nếu tại thời điểm đó nó đang không hoạt động). Ứng  
dụng sẽ nhận được một đối tượng IBinder do dịch vụ trả lại để có thể gọi các phương  
thức Callback phù hợp để truy cập tới các trạng thái của dịch vụ. Nếu do lời gọi  
Context.bindService() mà dịch vụ được khởi tạo thì nó sẽ được thực thi cho tới khi nào  
kết nối trên (tức là đối tượng IBinder) vẫn còn tồn tại.  
2.4.3 Bộ nhận quảng bá (Broadcast receivers)  
2.4.3.1 Khái niệm  
Bộ nhận quảng bá là một thành phần không làm gì cả nhưng nó nhận và phản hồi  
lại các thông báo quảng bá. Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụ thông  
báo thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ. Các ứng dụng có  
thể khởi động quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đã được tải về  
xong trên thiết bị và sẵn sàng sử dụng.  
Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để nhận những  
thông báo quan trọng với nó. Tất cả các bộ nhận quảng bá được kế thừa từ lớp  
BroadcastReceiver.  
Bộ nhận quảng bá không có giao diện. Tuy nhiên, chúng có thể khởi động một  
hoạt động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụng  
NotificationManager để thông báo người dùng biết. Các thông báo có thể được sự chú  
ý của người dùng theo các cách các nhau như là sáng màn hình, rung thiết bị, bật âm  
thanh nào đấy… Thông thường, chúng đặt thông báo trên thanh trạng thái, nơi người  
dùng có thể nhận được thông báo.  
2.4.4 Content provider  
2.4.4.1 Khái niệm  
Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng cơ  
sở dữ liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tập hợp  
các phương thức cho phép một ứng dụng có thể lưu trữ và lấy dữ liệu được quản lý bởi  
content provider đó.  
Content Provider là một đặc trưng riêng của Android, nhờ đó mà các ứng dụng  
có thể chia sẻ dữ liệu với nhau một cách dễ dàng  
21  

Tải về để xem bản đầy đủ

pdf 74 trang yennguyen 26/06/2025 220
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_van_ung_dung_luu_tru_thong_tin_bang_chuoi_ma_vach.pdf