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à trathô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ậnsẽ 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.
74 trang |
Chia sẻ: nhungnt | Lượt xem: 2734 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng lưu trữ thông tin bằng chuỗi mã vạch, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠ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
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 nghệ thô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.
Hà 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
API Application Programming Interface Giao diện lập trình ứng dụng
CDMA Code Division Multiple Access Một công nghệ trong hệ thống
thông tin di động
GPRS General Packet Radio Service Gói dịch vụ vô tuyến tổng hợp
GSM Global System for Mobile Communications
Hệ thống thông tin di động toàn
cầu
J2SE Java 2 Standard Edition Là đặc tả và cũng là nền tảng thực thi cho các ứng dụng Java
MIDP Mobile Information Device Profile Thuộc tính thông tin thiết bị di
động
OS Operating System Hệ điều hành
PC Personal Computer Máy tính cá nhân
SDK Software Development Kit Bộ công cụ phát triển phần mềm
USB Universal Serial Bus Một chuẩn kết nối tuần tự trong máy tính
Wi-Fi Wireless Fidelity Hệ thống mạng không dây
Danh mục bảng biểu
Bảng 1: Thị trường di động năm 2008 [1] ........................................................................ 3
Bảng 2: Mối quan hệ giữa tác nhân và các ca sử dụng .................................................... 35
Bảng 3: 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 4: 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 5: 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
Bảng 6: Biểu đồ tuần tự ca sử dụng Decode files ........................................................... 40
Bảng 7: Bảng ca kiểm thử mã hóa tập tin ....................................................................... 47
Bảng 8: Bảng ca kiểm thử giải mã tập tin ....................................................................... 48
Bảng 9: Bảng ca kiểm thử giải mã ảnh ........................................................................... 49
Danh mục hình vẽ
Hình 1: Bản đồ phát triển điện thoại di động [2] .............................................................. 4
Hình 2: Điện thoại Android, HTC Dream (trái) và HTC Magic (phải) ........................... 12
Hình 3: Nhân Linux trên Android.................................................................................. 14
Hình 4: Thư viện lâp trình ứng dụng trên Android ......................................................... 14
Hình 5: Khung ứng dụng ............................................................................................... 16
Hình 6: Các ứng dụng trên Android............................................................................... 16
Hình 7: Vòng đời của một hoạt động ............................................................................. 19
Hình 8: Một ảnh mã QR ................................................................................................ 28
Hình 9: 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
1
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.
2
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.
3
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]
4
Hình 1: Bản đồ phát triển điện thoại di động [2]
5
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 dụng 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