BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ TRUYỀN THÔNG TRIỂN KHAI ỨNG DỤNG TRUY CẬP THÔNG TIN KHÁCH HÀNG DÙNG QR CODE TRÊN HỆ ĐIỀU HÀNH ANDROID GVHD: ThS. NGUYỄN VĂN PHÚC SVTH : LÊ QUANG NHẬT ĐÔNG LÊ HOÀNG LAM SKL009987 Tp. Hồ Chí Minh, tháng 7/2016 TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP TRIỂN KHAI ỨNG DỤNG TRUY CẬP THÔNG TIN KHÁCH HÀNG DÙNG QR CODE TRÊN HỆ ĐIỀU HÀNH ANDROID NGÀNH SƢ PHẠM KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG Sinh viên: LÊ QUANG NHẬT ĐÔNG MSSV: 11941008 LÊ HOÀNG LAM MSSV: 11941045 TP.
HỒ CHÍ MINH – 07/2016 TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP TRIỂN KHAI ỨNG DỤNG TRUY CẬP THÔNG TIN KHÁCH HÀNG DÙNG QR CODE TRÊN HỆ ĐIỀU HÀNH ANDROID NGÀNH SƢ PHẠM KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG Sinh viên: LÊ QUANG NHẬT ĐÔNG MSSV: 11941008 LÊ HOÀNG LAM MSSV: 11941045 Hƣớng dẫn: ThS. NGUYỄN VĂN PHÚC TP. HỒ CHÍ MINH – 07/2016 THÔNG TIN KHÓA LUẬN TỐT NGHIỆP 1.
Thông tin sinh viên Họ và tên sinh viên: Lê Quang Nhật Đông MSSV: 11941008 Email: 11941008@student.vn Điện thoại: 01659121767 Họ và tên sinh viên: Lê Hoàng Lam MSSV: 11941045 Email: 11941045@student.vn Điện thoại: 01685368936 2. Thông tin đề tài - Tên của đề tài: Triển khai ứng dụng truy cập thông tin khách hàng dùng QR Code trên hệ điều hành Android. - Đơn vị quản lý: Bộ môn Kỹ Thuật Máy Tính - Viễn Thông, Khoa Điện Điện Tử, Trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp. Hồ Chí Minh.
- Thời gian thực hiện: Từ ngày 01 / 03 / 2016 đến ngày 10 / 07 / 2016. - Thời gian bảo vệ trƣớc hội đồng: Ngày 12 / 07 / 2016. Lời cam đoan của sinh viên Chúng tôi – Lê Quang Nhật Đông và Lê Hoàng Lam cam đoan KLTN là công trình nghiên cứu của bản thân chúng tôi dƣới sự hƣớng dẫn của thạc sỹ Nguyễn Văn Phúc. Kết quả công bố trong KLTN là trung thực và không sao chép từ bất kỳ công trình nào khác.HCM, ngày 01 tháng 07 năm 2016 SV thực hiện đồ án (Ký và ghi rõ họ tên) Lê Quang Nhật Đông Lê Hoàng Lam Giảng viên hƣớng dẫn xác nhận quyển báo cáo đã đƣợc chỉnh sửa theo đề nghị đƣợc ghi trong biên bản của Hội đồng đánh giá Khóa luận tốt nghiệp.
…………………………………………………………………………………………… … Xác nhận của Bộ Môn Tp.HCM, ngày … tháng … năm 2016 Giáo viên hƣớng dẫn (Ký, ghi rõ họ tên và học hàm - học vị) LỜI CẢM ƠN Trong quá trình thực hiện đồ án, nhóm thực hiện bày tỏ lòng biết ơn chân thành đến thầy NGUYỄN VĂN PHÚC, ngƣời đã tận tình hƣớng dẫn, góp ý, động viên trong suốt quá trình thực hiện đề tài. Nhóm thực hiện đề tài xin gửi lời cảm ơn đến Ban giám hiệu, Quý thầy cô khoa Điện – Điện tử đã cung cấp những kiến thức cần thiết để nhóm thực hiện có thể thực hiện đồ án này. Tuy nhiên, do thời gian và kiến thức bản thân có hạn nên đồ án không thể tránh đƣợc những thiếu sót, nhóm thực hiện đồ án rất mong đƣợc sự đóng góp ý kiến của các thầy cô và toàn thể các bạn. Một lần nữa nhóm thực hiện chân thành cảm ơn tất cả mọi ngƣời đã theo dõi và góp ý cho quyển đồ án này.
TPHCM, tháng 7 năm 2016 Nhóm thực hiện Lê Quang Nhật Đông - Lê Hoàng Lam v TÓM TẮT Android là hệ điều hành trên điện thoại di động (hiện nay còn là hệ điều hành trên một số đầu phát HD, HD Player, TV) phát triển bởi Google dựa trên nền tảng Linux và chiếm đến 52,1% thị phần hệ điều hành di động trên toàn thế giới (tính đến tháng 5/2015). Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tƣơng lai. Trong luận văn này, chúng tôi thực hiện nhận diện QR Code để kiểm tra nhanh thông tin về tài khoản ngân hàng của khách hàng trên thiết bị di động của mình.
Ứng dụng này hỗ trợ những điện thoại có hệ điều hành Android. Bƣớc đầu tiên trong ứng dụng là lấy ảnh mã QR bằng camera của điện thoại. Tiếp theo, chúng tôi sử dụng chƣơng trình ĐATN để giải mã ảnh quét đƣợc và trả về những thông tin dữ liệu đƣợc trích xuất từ cơ sở dữ liệu đã có nhƣ: Mã khách hàng, tên khách hàng, số điện thoại, ngày gửi tiền, số tiền hiện tại trong tài khoản, ngày đáo hạn, lãi suất, số tiền nhận đƣợc khi đến thời gian đáo hạn. Giao diện đƣợc thiết kế trực quan với ngƣời sử dụng để thực hiện các chức năng tự động lấy nét, giải mã và hiển thị thông tin tài khoản của khách hàng.
vi MỤC LỤC DANH MỤC HÌNH. x DANH MỤC BẢNG. xii CÁC TỪ VIẾT TẮT. xiii CHƢƠNG 1 GIỚI THIỆU .1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU .2 MỤC TIÊU CỦA ĐỀ TÀI.3 NHIỆM VỤ VÀ GIỚI HẠN CỦA ĐỀ TÀI .4 PHƢƠNG PHÁP VÀ PHƢƠNG TIỆN NGHIÊN CỨU .5 NỘI DUNG CỦA ĐỀ TÀI.
3 CHƢƠNG 2 CỞ SỞ LÝ THUYẾT .1 TỔNG QUAN VỀ QR CODE .1 Cấu trúc mã QR .2 Khả năng lƣu trữ dữ liệu .3 Khả năng sửa lỗi của QR code .2 THUẬT TOÁN MÃ HÓA QR CODE .1 Tạo một chuỗi nhị phân.2 Tạo bộ mã sửa lỗi .3 Chọn mẫu mặt nạ tốt nhất .3 PHƢƠNG PHÁP PHÁT HIỆN VÀ GIẢI MÃ QR CODE.1 Phát hiện và tiền xử lý ảnh .1 Phát hiện ảnh trong thực tế .2 Tiền xử lý ảnh .2 Giải mã ảnh QR .1 Khái quát trình tự giải mã mã QR .2 Lƣu đồ tổng quát quá trình giải mã mã QR .4 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID .1 Hệ điều hành Android .2 Kiến trúc của hệ điều hành Android .3 Cấu trúc một dự án Android.3 Android Software Development Kit (SDK). 30 CHƢƠNG 3 XÂY DỰNG CHƢƠNG TRÌNH QUÉT MÃ QR CODE TRÊN THIẾT BỊ ANDROID .1 SƠ ĐỒ ĐIỀU KHIỂN CHỨC NĂNG CỦA CHƢƠNG TRÌNH .2 LƢU ĐỒ TOÀN BỘ CHƢƠNG TRÌNH .3 KHỞI TẠO PROJECT TRÊN ANDROID STUDIO .4 THƢ VIỆN ZXING (ZEBRA CROSSING) .2 Sử dụng thƣ viện Zxing .5 HỆ CƠ SỞ DỮ LIỆU SQLITE .2 Các bƣớc xây dựng cơ sở dữ liệu SQLite .6 CÔNG THỨC TÍNH LÃI SUẤT TIỀN GỬI.1 Khái niệm lãi suất.2 Công thức tính lãi suất tiền gửi của khách hàng. 45 CHƢƠNG 4 KẾT QUẢ THỰC HIỆN .1 Giao diện đăng nhập khi chọn nút “QUẢN LÝ” .2 Giao diện khi chọn nút “KHÁCH HÀNG”. 54 CHƢƠNG 5 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN .2 HƢỚNG PHÁT TRIỂN.
57 TÀI LIỆU THAM KHẢO. 58 ix DANH MỤC HÌNH Hình 1.1 Thị phần của điện thoại thông minh và điện thoại phổ thông.1 Cấu trúc mã QR phiên bản 3 [29x29].2 Cấu trúc mẫu tìm kiếm.4 Cấu trúc và vị trí vùng căn chuẩn trong mã QR.5 Các mã QR với logo quảng cáo.6 Mã QR bị mất một phần nhƣng vẫn có thể giải mã thành công.7 Vị trí các mẫu căn chuẩn mã QR phiên bản 8.8 Thông tin mức sửa lỗi và mô hình mặt nạ.9 Vị trí thông tin phiên bản trong mã QR.10 Thứ tự sắp xếp dữ liệu vào mã QR.11 Thứ tự sắp xếp các bit dữ liệu vào cột lên và cột xuống.12 Biểu diễn tỉ lệ 1:1:3:1:1.13 Góc nghiêng ảnh QR.14 Biểu đồ tam giác vuông đƣợc tạo thành từ 3 Finder pattern .15 Chuyển vị ảnh nghiêng sang góc nhìn trực giao.16 Lƣu đồ tổng quát quá trình giải mã QR code .17 Các phiên bản của hệ điều hành Android.18 Kiến trúc hệ điều hành Android.19 Quá trình hình thành tập tin .dex dùng cho máy ảo Dalvik.20 Cấu trúc Activity trong chƣơng trình Android Studio.21 Vòng đời một Activity.22 Cấu trúc AndroidManifest.1 Sơ đồ điều khiển chức năng chƣơng trình quét QR code.2 Lƣu đồ thuật toán chƣơng trình.3 Lƣu đồ chƣơng trình con nhập thông tin khách hàng.4 Hộp thoại Welcome to Android Studio.5 Hộp thoại đặt tên ứng dụng và tên domain.6 Hộp thoại lựa chọn thiết bị cần phát triển ứng dụng .7 Lựa chọn hƣớng phát triển của ứng dụng.8 Hộp thoại nhập thông tin của Activity.9 Quá trình tạo project hoàn tất.10 Giao diện của một project mới.11 Thƣ viện Zxing đƣợc dùng trong project.1 Giao diện của chƣơng trình.2 Giao diện đăng nhập chức năng quản lý.3 Đăng nhập không đúng tài khoản.4 Giao diện nhập thông tin khách hàng.5 Quản lý nhập mã khách hàng không hợp lệ.6 Mã khách hàng không hợp lệ.7 Số điện thoại không hợp lệ.8 Thêm khách hàng mới thành công.9 Chƣơng trình tạo mã QR.10 Mã QR của khách hàng đƣợc cung cấp.11 Ngƣời quản lý quét kiểm tra thông tin khách hàng.12 Giao diện quét mã QR code.13 Hiển thị kết quả quét mã QR. 55 xi DANH MỤC BẢNG Bảng 2.1 Khả năng lƣu trữ dữ liệu tối đa của mã QR (40-L).2 Các mức sửa lỗi của mã QR.3 Bảng bộ chỉ chế độ mã hóa (Mode Indicator).4 Độ dài bit cho các phiên bản và kiểu dữ liệu của mã QR.5 Bảng liệt kê tọa độ đặt các mẫu căn chuẩn vị trí.1 Lãi suất tiền gửi kỳ hạn tại ngân hàng Đầu tƣ và Phát triển Việt Nam (BIDV). 46 xii CÁC TỪ VIẾT TẮT AAC Advanced Audio Coding API Application Programming Interface ARM Advanced RISC Machine ASCII American Standard Code for Information Interchange ATM Automated teller machine JEE Java Enterprise Edition JME Java Molecular Editor JPEG Joint Photographic Experts Group JVM Java Virtual Machine MP3 Movie Picture Experts Group-Layer 3 MPEG4 Moving Picture Experts Group-Layer 4 PNG Portable Network Graphics QR Code Quick Response Code SDK Android Software Development Kit Zxing Zebra Crossing xiii CHƢƠNG 1 GIỚI THIỆU 1.1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU Hiện nay, cùng với sự phát triển của khoa học kỹ thuật, các thiết bị thông minh ra đời ngày càng nhiều nhằm phục vụ cho cuộc sống hằng ngày của con ngƣời.
Bên cạnh đó, nhu cầu của con ngƣời trong việc tƣơng tác và sử dụng các thiết bị thông minh để hỗ trợ cuộc sống ngày càng nâng cao, từ nhu cầu giao tiếp, liên lạc với nhau, đến những cuộc họp hội nghị, lƣu trữ và tra cứu thông tin,… Sự ra đời của của các điện thoại thông minh đã có thể đáp ứng đƣợc phần nào các nhu cầu đó. Cùng với sự ra đời của hệ điều hành Android và các ứng dụng đi kèm vào năm 2007, thị trƣờng điện thoại thông minh cũng đã có một sự thay đổi rất lớn.