Hiện nay, taxi được coi là phương tiện công cộng phổ biến trên thế giới. Hàng triệu người di chuyển bằng phương tiện này mỗi ngày. Ở Việt Nam, ngoài các hình thức xe taxi truyền thống, thì hình thức xe taxi công nghệ có vị trí quan trọng kể từ khi xuất hiện những hãng xe như Uber, Grab. Như vậy,
Trang 1TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN
- -TIỂU LUẬN HỌC PHẦN LẬP TRÌNH DI ĐỘNG
Tên đề tài:
XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐẶT XE TAXI TRÊN THIẾT BỊ
Trang 2MỤC LỤC
Phần 1 MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Mục tiêu của đề tài 3
3 Đối tượng và phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu 4
Phần 2 NỘI DUNG NGHIÊN CỨU 5
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5
1.1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 5
1.1.1 Giới thiệu 5
1.1.2 Kiến trúc 6
1.1.2.1 Linux kernel 6
1.1.2.2 Libraries 6
1.1.2.3 Android Runtime 6
1.1.2.4 Application Framework 7
1.1.2.5 Applications 7
1.2 NGÔN NGỮ LẬP TRÌNH 7
1.3 GIỚI THIỆU VỀ JSON 7
1.4 GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL 8
1.5 CÔNG CỤ LẬP TRÌNH ANDROID STUDIO 8
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 10
2.1 ĐẶC TẢ BÀI TOÁN 10
2.1.1 Chức năng chính 10
2.1.1.1 Chức năng của các Khách Hàng 10
2.1.2.2 Chức năng của các Hãng Xe 10
2.1.2 Mô hình hoạt động của Hãng Xe và Khách Hàng 10
2.1.2.1 Biểu đồ UseCase với Khách Hàng 10
2.1.2.2 Biểu đồ UseCase dành cho Hãng Xe 11
2.1.2.3 Biểu đồ xử lý 12
2.1.2.3.1 Một số mô hình xử lý đăng nhập cho khách hàng và hãng xe 12
2.1.2.3.2 Một số mô hình xử lý đăng ký cho khách hàng và hãng xe 13
2.1.2.3.3 Mô hình xử lý đấu giá taxi 14
2.2 PHÂN TÍCH THIẾT KẾ 15
2.2.1 Thiết kế cơ sở dữ liệu 15
2.2.2 Thiết kế chi tiết 16
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 20
3.1 GIAO DIỆN CHÍNH 20
3.1.1 Giao diện bắt đầu vào app 20
3.1.2 Giao diện khách hàng 22
3.1.3 Giao diện hãng taxi 27
3.2 SỬ DỤNG CHƯƠNG TRÌNH 31
Phần 3 KẾT LUẬN 32
1 Những vấn đề đạt được 32
2 Những vấn đề còn hạn chế 32
Phần 4 TÀI LIỆU THAM KHẢO 33
Trang 3DANH MỤC HÌNH ẢNH
Hình 1: Sơ đồ hệ điều hành Android 5
Hình 2: Công cụ lập trình Androi Studio 7
Hình 3: Giao diện Android Studio 8
Hình 4: Chức năng Đăng kí, Đăng nhập dành cho khách hàng 10
Hình 5: Chức năng dành cho khách hàng đã đăng nhập 10
Hình 6: Chức năng dành cho hãng xe chưa có tài khoản 11
Hình 7: Chức năng dành cho hãng xe đã có tài khoản 11
Hình 8: Mô hình xử lý đăng nhập cho khách hàng và hãng xe 12
Hình 9: Mô hình xử lý đăng ký cho khách hàng và hãng xe 13
Hình 10: Mô hình xử lý đấu giá taxi 14
Hình 11: Cơ sở dữ liệu và mối quan hệ 15
Hình 12: Giao diện bắt đầu khởi động app 19
Hình 13: Giao diện đăng nhập 20
Hình 14: Giao diện đăng ký 21
Hình 15: Giao diện đặt xe 22
Hình 16: Giao diện xác nhận đặt xe 23
Hình 17: Giao diện menu app 24
Hình 18: Giao diện hiển thị thông tin tài khoản 24
Hình 19: Giao diện đặt nhanh 25
Hình 20: Giao diện đơn đặt xe 26
Hình 21: Giao diện menu hãng taxi 27
Hình 22: Giao diện hiện thị danh sách đăng ký 28
Hình 23: Giao diện đặt xe 29
Hình 24: Giao diện hiễn thị danh sách đấu giá thành công 30
Trang 4Phần 1 MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, taxi được coi là phương tiện công cộng phổ biến trên thế giới Hàngtriệu người di chuyển bằng phương tiện này mỗi ngày Ở Việt Nam, ngoài các hìnhthức xe taxi truyền thống, thì hình thức xe taxi công nghệ có vị trí quan trọng kể từ khixuất hiện những hãng xe như Uber, Grab Như vậy, khách hàng đều mong muốn cómột mức giá hợp lý khi sử dụng phương tiện này Cùng với đó, như ta đã biết, các thiết
bị cầm tay đã trở nên mạnh mẽ và rất phổ biến Trong vài năm trở lại đây, hệ điềuhành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thếgiới, với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp củanhiều công nghệ tiên tiến nhất hiện nay Những ưu điểm dễ thấy nhất của Androidchính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú,tương thích với đa cấu hình phần cứng của các nhà sản xuất Dù đã hay chưa từng sửdụng smartphone Android thì bạn cũng không cần quá lo lắng về việc thay đổi Hầunhư tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng, đơngiản trong tùy biến theo sở thích cá nhân, cùng như có rất nhiều ứng dụng đề thỏa mãnnhu cầu của từng người dùng Đồng thời Android có mã nguồn mở đã cho phép cácnhà phát triển thiết bị mạng di động và các lập trình viên được điều chỉnh và phân phốiAndroid một cách tự do Bởi vậy trước nhu cầu và lợi thế đó, nhóm em quyết địnhnghiên cứu và xây dựng ứng dụng: Xây dựng ứng dụng quản lý đặt xe taxi trên thiết bị
di động chạy nền tảng Android
2 Mục tiêu của đề tài
- Tìm hiểu ngôn ngữ lập trình Android
- Xây dựng ứng dụng đặt xe
- Có thể ứng dụng kiến thức vào những dự án sau này
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu:
+ Ngôn ngữ lập trình Android
+ Sử dụng Json
Trang 5- Phạm vi nghiên cứu:
Nghiên cứu các vấn đề xoay quanh việc lập trình Android, cơ sở dữ liệu SQLServer Từ đó xây dựng ứng dụng đặt xe ngay trên Smartphone
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu tự luận: Nghiên cứu, đọc các tài liệu, giáo trình liên
quan tới kỹ thuật lập trình Android.
Phương pháp tổng kết kinh nghiệm: Qua việc nghiên cứu tài liệu, giáo trìnhrút ra kinh nghiệm để xây dựng chương trình trắc nghiệm
Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng dẫn
để hoàn thiện về mặt nội dung cũng như hình thức của đề tài
Trang 6Phần 2 NỘI DUNG NGHIÊN CỨU
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID
1.1.1 Giới thiệu
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho cácthiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.Ban đầu, Android được phát triển bời Tổng công ty Android, với sự hỗ trợ tài chính từGoogle và sau này được chính Google mua lại vào năm 2005
Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bịcầm tay mờ: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông vớimục tiêu đẩy mạnh các tiêu chuẩn mờ cho các thiết bị di động Chiếc điện thoại đầutiên chạy Android được bán vào tháng 10 năm 2008
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổbiến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty côngnghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, vàgiá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả là mặc dùđược thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV,máy chơi game và các thiết bị điện tử khác Bản chất mở của Android cũng khích lệmột đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở đềtạo ra những dự án do cộng đồng quản lý Những dự án này bổ sung các tính năng caocấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầuchạy hệ điều hành khác
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thờiđiểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệulượt kích hoạt mỗi ngày Sự thành công cùa hệ điều hành cũng khiến nó trở thành mụctiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộcchiến điện thoại thông minh" giữa các công ty công nghệ
Trang 71.1.2.2 Libraries
Tầng này là một tập hợp các thư viện bao gồm trình duyệt web mã nguồn mờ sửdụng WebKit engine, thư viện libe, cơ sở dữ liệu SQLite là một kho lưu trữ hữu íchcho việc lưu trữ và chia sẻ dữ liệu của ứng dụng, có các thư viện để chơi/ghi lại âmthanh và video, các thư viện SSL chịu trách nhiệm về bảo mật Internet, v.v
1.1.2.3 Android Runtime
Đây là phần thứ ba của kiến trúc Android Phần này cung cấp một thành phầnquan trọng được gọi là Dalvik Virtual Machine – một loại máy ảo Java được thiết kếđặc biệt và tối ưu hóa cho Android
Android Runtime cũng cung cấp một tập các thư viện lỗi cho phép các nhà pháttriển ứng dụng Android viết các ứng dụng Android sử dụng ngôn ngữ lập trình Java
Trang 81.1.2.4 Application Framework
Tầng Application Framework cung cấp nhiều dịch vụ cấp cao hơn cho các ứngdụng trong ở dạng các class trong Java Các nhà phát triển ứng dụng được phép sửdụng các dịch vụ này trong các ứng dụng của họ (Ví dụ: dịch vụ kết nối Internet, dịch
vụ SMS, )
1.1.2.5 Applications
Bạn sẽ viết ứng dụng và các ứng dụng mà bạn viết được cài đặt ở tầng này
Ví dụ: Angry Bird, Facebook, Viber, v.v
1.2 NGÔN NGỮ LẬP TRÌNH
Ngôn ngữ lập trình chính thức của Android là Java Mặc dù các ứng dụng trênAndroid được phát triển dựa trên nền tảng Java, nhưng Android không hỗ J2ME vàJ2SE, là hai ngôn ngữ lập trình phổ dụng cho các thiết bị di động
Dựa trên máy ảo Java của Sun, Google đã tinh chỉnh và phát triển nên máy ảoDalvik để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ hơn
Bằng cách sử dụng các frameworks của hãng thứ ba (VD: PhoneGap,Titanium, ), các nhà lập trình web cũng có thể phát triển ứng dụng Android một cách
dễ dàng bằng các ngôn ngữ web phổ dụng như HTML, CSS, Javascript Tuy nhiên sốlượng các ứng dụng đi theo chiều hướng này chưa nhiều
Ngoài ra các ứng dụng của Android sử dụng SQLite để quản lý cơ sở dữ liệu
1.3 GIỚI THIỆU VỀ JSON
Json (JavaScript Object Noattion) là 1 định dạng hoán vị dữ liệu nhanh Chúng
dễ dàng cho chúng ta đọc và viết Dễ dàng cho thiết bị phân tích và phát sinh JSon là
cơ sở dựa trên tập hợp của ngôn ngữ lập trình JavaScript
JSon được xây dựng trên 2 cấu trúc :
- Là tập hợp của các cặp tên và giá trị như name - value Trong những ngôn ngữkhác nhau, đây dược nhận thấy như là 1 đối tượng (object), sự ghi (record), cấu trúc( struct), từ điển (dictionary), bảng băm (hash table), danh sách khóa (keyed list), haymàng liên hợp
- Là 1 tập hợp các giá trị đã được sắp xếp
Trang 91.4 GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và đượccác nhà phát triển rất ưa chuộng trong quá trình phát triền ứng dụng Vì MySQL là cơ
sở dữ liệu có tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trênnhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ vàtính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trêninternet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệđiều hành dòng Windows, Linux, Mac os X, Unix, FreeBSD, NetBSD, NovellNetWare, SGI Irix, Solaris, SunOS,
MySQL được sử dụng cho việc bồ trợ PHP, Perl, và nhiều ngôn ngữ khác, nólàm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl
1.5 CÔNG CỤ LẬP TRÌNH ANDROID STUDIO
Android Studio là công cụ lập trình chuẩn riêng của Google thay thế cho phiênbản Eclipse cũ Android Studio bao gồm các thành phần: Android Studio IDE,Android SDK tools, Android 5.0 (Lollipop) Platform, Android 5.0 emulator systemimage with Google APIs
Hình 2: Công cụ lập trình Androi Studio
Android Studio là một công cụ lập trình thông minh có khả năng chỉnh sửa codetiên tiến với nhiều thay đổi như: công cụ thiết kế giao diện người dùng mới và trựcquan, phân tích hiệu suất, vv cho phép lập trình viên có thể tạo các ứng dụng, thựchiện thay đổi cũng như xem trước sản phẩm trong thời gian thực
Trang 10Hình 3: Giao diện Android Studio
Yêu cầu hệ thống Windows
- Microsoft Windows 7/8/10 (32- or 64-bit)
- Tối thiểu 2GB RAM, khuyến nghị 8GB RAM
- Tối thiểu 2GB ổ trống, khuyến nghị 4GB (500MB cho IDE + 1.5 GB choAndroid SDK và image giả lập hệ thống)
- Tỷ lệ màn hình tối thiểu 1280 x 800
Yêu cầu hệ thống Mac:
- Mac OS X 10.8.5 hoặc cao hơn, hỗ trợ tới 10.11.4 (El Capitan)
- Tối thiểu 2GB RAM, khuyến nghị 8GB RAM
- Tối thiểu 2GB ổ trống, khuyến nghị 4GB (500MB cho IDE + 1.5 GB choAndroid SDK và image giả lập hệ thống)
- Tỷ lệ màn hình tối thiểu 1280 x 800
Trang 11CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH
- Khách hàng có thể đặt xe nhanh bằng cách gọi điện trực tiếp thông qua
số điện thoại app cung cấp.
- Khách hàng có thể xem thông báo xác nhận của các hãng xe khi đấu giá thành công.
- Xác nhận đi khi có kết quả đấu giá của các hãng xe.
- Khách hàng có thể quản lý thông tin cá nhân của mình.
- Có thể xem lại lịch sử đặt xe của mình
2.1.2.2 Chức năng của các Hãng Xe
- Đăng nhập
- Đăng ký
- Có thể đấu giá với các hãng xe
- Xem danh sách khách hàng đã đăng ký đi taxi
- Xem danh sách khách hàng đã xác nhận đi
- Có thể quản lý thông tin của hãng xe.
2.1.2 Mô hình hoạt động của Hãng Xe và Khách Hàng
2.1.2.1 Biểu đồ UseCase với Khách Hàng
Biểu đồ UseCase thể hiện số lượng chức năng mà người dùng có thể tương táctrực tiếp
Đối với khách hàng chưa đăng ký
Khách hàng có thể đăng ký tài khoản để đăng nhập để bắt đầu sử dụng
Trang 12Hình 4: Chức năng Đăng kí, Đăng nhập dành cho khách hàng
Đối với thành viên
Sau khi đăng nhập vào ứng dụng, thành viên có những chức năng nhất định
Hình 5: Chức năng dành cho khách hàng đã đăng nhập
2.1.2.2 Biểu đồ UseCase dành cho Hãng Xe
Đối với hãng xe chưa đăng ký
Hãng xe có thể đăng ký tài khoản để đăng nhập để bắt đầu sử dụng
Trang 13Hình 6: Chức năng dành cho hãng xe chưa có tài khoản
Đối với hãng xe đã có tài khoản
Hình 7: Chức năng dành cho hãng xe đã có tài khoản
2.1.2.3 Biểu đồ xử lý
2.1.2.3.1 Một số mô hình xử lý đăng nhập cho khách hàng và hãng xe
Trang 14Hình 8: Mô hình xử lý đăng nhập cho khách hàng và hãng xe
Bước 1: User gửi username, password đến server Nếu có timeout hay internet
lỗi thì hiển thị thông báo
Bước 2: Server nhận data từ client, xử lý và gửi trả lại kết quả.
Bước 3: Nếu username hoặc password không đúng thì hiển thị lỗi và quay lại
bước 1 Nếu tài khoản bị khóa thì hiện thông báo liên hệ với admin
Bước 4: Đăng nhập thành công tiếp tục sử dụng chương trình.
2.1.2.3.2 Một số mô hình xử lý đăng ký cho khách hàng và hãng xe
Trang 15Hình 9: Mô hình xử lý đăng ký cho khách hàng và hãng xe
Bước 1: User nhập vào input, client kiểm tra input trước khi gửi lên server Nếu
input sai thì hiện thông báo nhập lại.
Bước 2: Gửi thông tin đăng kí lên server Server kiểm tra username có tồn tại
chưa Nếu username tồn tại thì hiện thông báo lỗi và quay lại bước 1 Nếu username
không tồn tại đến bước 3
Bước 3: Xử lý đăng kí và thêm dữ liệu vào database Gửi trả kết quả lại cho
Trang 16Hình 10: Mô hình xử lý đấu giá taxi
Bước 1: Khách Hàng đăng ký thời gian đi nhưng phải trước thời gian hiện tại 20
phút
Bước 2: Server sẽ chứa thông tin khách hàng đã đăng ký.
Bước 3: Các hãng xe sẽ có được thông tin từ khách hàng đăng ký được lấy từ
database trên Server
Bước 4: Các hãng xe đấu giá với bất kỳ thông tin khách hàng đã đăng ký nhưng
phải thấp hơn so với giá mà các hãng khác đã đấu giá Thời gian đấu giá sẽ dừng khithời gian khách hàng đăng ký trước đó 10 phút
Bước 5: Server là nơi chứa giá thấp nhất của thông tin mà khách hàng đã đăng ký
trước đó
Bước 6: Khách Hàng sẽ xác nhận có đi hay không với số tiền mà hãng xe đã đấu
giá trước thời gian đăng ký 5 phút
Bước 7: Các hãng xe sẽ lấy thông tin khách hàng đã xác nhận đi để xử lý
2.2 PHÂN TÍCH THIẾT KẾ
2.2.1 Thiết kế cơ sở dữ liệu
Mô hình cơ sở dữ liệu tổng quát thể hiện mối quan hệ giữa các bảng với nhau,thể hiện những thực thể trong cơ sở dữ liệu
Trang 17Hình 11: Cơ sở dữ liệu và mối quan hệ
Danh sách các mối kết hợp:
Tên mối kết hợp Thực thể 1 Thực thể 2 Mối quan hệ Ý nghĩa
Huyện_Tinh tinh huyen 1,n Một tỉnh có
nhiều huyện Xa_Huyen huyen xa 1,n Một xã có
nhiều huyện ordertaxi_user user ordertaxi 1,n Một người
có thể đăng
ký nhiều chuyến xe daugia_ordertaxi ordertaxi daugia 1,n Một đơn đặt
xe có nhiều hãng xe đấu giá
daugia_hangxe hangxe daugia 1,n Một hãng xe
có thể đấu giá nhiều lần thanhtoan_odertaxi thanhtoan ordertaxi 1,1 Một hóa đơn
chỉ có một đơn đặt xe
2.2.2 Thiết kế chi tiết
Bảng Tỉnh