1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID

165 297 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 165
Dung lượng 7,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ngữ đánh dấu siêu văn bản được thiết kế ra để tạo nên các trang web gọi là môi trường phát triển tích hợp phát triển ứng dụng phần mềm chuẩn của W3C, là giao thức sử dụng XML để định ngh

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

LÊ ANH TOÀN TRẦN CÔNG MINH

XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN

HỆ ĐIỀU HÀNH ANDROID

KHÓA LUẬN TỐT NGHIỆP

TP.HỒ CHÍ MINH - NĂM 2012

Trang 2

1

TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

LÊ ANH TOÀN TRẦN CÔNG MINH

XÂY DỰNG ỨNG DỤNG

TRA CỨU TÀU, XE TRÊN

HỆ ĐIỀU HÀNH ANDROID

CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM

KHÓA LUẬN TỐT NGHIỆP

Trang 3

2

LỜI CẢM ƠN

Trong thời gian thực hiện luận văn, dưới sự hướng dẫn của Khoa Công Nghệ Thông Tin Trường Đại Học Sư Phạm Tp.HCM và đặc biệt là sự hướng dẫn của thầy Trần Ngọc Bảo, chúng em đã hoàn thành luận văn với thời gian như dự kiến Có được kết quả ấy chúng em xin chân thành gởi lời cám ơn đến :

Đại học Sư Phạm Tp.HCM đã tận tình hướng dẫn, giúp chúng em định hướng và phát triển luận văn tốt nghiệp Sự giúp đỡ và hướng dẫn nhiệt tình của thầy đã giúp chúng em củng cố kiến thức và hoàn thành tốt luận văn tốt nghiệp Chúng em xin chân thành cám

ơn thầy

Tp.HCM nói riêng và các thầy cô Trường Đại Học Sư Phạm nói chung đã tận tình hướng dẫn dạy bảo, giúp chúng em trang bị những kiến thức quý báu trong suốt thời gian học tập

và nghiên cứu

Dù rất cố gắng và liên tục nâng cao kiến thức, nhưng đề tài vẫn không thể tránh những sai sót và hạn chế Do đó chúng em rất mong nhận được sự thông cảm và ý kiến chỉ bảo để chúng em có thể hoàn thiện những sai sót mà chúng em đã mắc phải Một lần nữa, chúng em xin chân thành cảm ơn

Nhóm sinh viên thực hiện

Lê Anh Toàn – Trần Công Minh

Trang 4

3

MỤC LỤC

Bảng các thuật ngữ và các từ viết tắt 8

Danh mục các bảng biểu 9

Danh mục các hình ảnh 11

Lời nói đầu 14

PHẦN 1: TÌM HIỂU VỀ KỸ THUẬT LẬP TRÌNH TRÊN ANDROID 16

1 Các bước để tiến hành lập trình trong Android 16

1.1 Java Runtime Environment (JRE) 16

1.2 Eclipse IDE 16

1.3 Android SDK 16

1.4 Android ADT 17

2 Kỹ thuật lập trình với các điều khiển 17

2.1 ListView 17

2.1.1 Yêu cầu đặt ra 17

2.1.2 Giải quyết 18

2.2 GridView 18

2.2.1 Yêu cầu đặt ra 18

2.2.2 Giải quyết 18

2.3 Spinner View, DatePicker 19

2.3.1 Yêu cầu đặt ra 19

2.3.2 Giải quyết 19

2.4 TabHost View 20

2.4.1 Yêu cầu đặt ra 20

2.4.2 Giải quyết 21

2.5 Gallery và ImageView 21

2.5.1 Yêu cầu đặt ra 21

2.5.2 Giải quyết 22

Trang 5

4

3 Kỹ thuật lập trình với SQLite 22

3.1 Giới thiệu 22

3.2 Ví dụ minh họa 24

3.2.1 Đặt vấn đề 24

3.2.2 Giải quyết 25

4 Kỹ thuật lập trình với Web Service 25

4.1 Dạng SOAP (Simple Object Access Protocol) 25

4.2 Ví dụ minh họa 26

4.2.1 Đặt vấn đề 26

4.2.2 Giải quyết 28

5 Phát audio, video trong Android 28

5.1 Giới thiệu 28

5.1.1 Phát audio 28

5.1.2 Phát video 30

5.2 Minh họa 31

5.2.1 Vấn đề đặt ra 31

5.2.2 Giải quyết 31

PHẦN 2: XÂY DỰNG ỨNG DỤNG TRA CỨU THÔNG TIN TÀU, XE 32

6 Kiến trúc ứng du ̣ng và đă ̣c tả yêu cầu 32

6.1 Kiến trúc ứng du ̣ng 32

6.2 Các sơ đồ đặc tả yêu cầu 33

7 Phân tích, thiết kế 46

7.1 Mô hình thực thể kết hợp (CDM) 46

7.1.1 Thực thể Hang 47

7.1.2 Thực thể PhuongTien 47

7.1.3 Thực thể LoaiPhuongTien 47

7.1.4 Thực thể Phim 48

7.1.5 Thực thể HinhAnh 48

Trang 6

5

7.1.6 Thực thể DiaDiem 48

7.1.7 Thực thể Tuyen 48

7.1.8 Thực thể TrungGian 49

7.1.9 Thực thể LoaiGhe 49

7.1.10 Thực thể Gia 49

7.1.11 Thực thể DoiTuong 50

7.1.12 Thực thể KhuyenMai 50

7.1.13 Mối kết hợp ChiTietTuyen 50

7.1.14 Mối kết hợp ChiTietViTri 51

7.2 Mô hình vật lý (PDM) 51

7.2.1 Bảng Hang 53

7.2.2 Bảng Phim 53

7.2.3 Bảng LoaiPhuongTien 54

7.2.4 Bảng ChiTietHang 54

7.2.5 Bảng PhuongTien 54

7.2.6 Bảng HinhAnh 55

7.2.7 Bảng KhuyenMai 56

7.2.8 Bảng Gia 56

7.2.9 Bảng ChiTietViTri 57

7.2.10 Bảng LoaiGhe 58

7.2.11 Bảng Tuyến 58

7.2.12 Bảng TrungGian 59

7.2.13 Bảng ChiTietTuyen 60

7.2.14 Bảng Nhom 60

7.2.15 Bảng NguoiDung 60

7.2.16 Bảng ChucNang 61

7.2.17 Bảng ChiTietChucNang 61

7.3 Thiết kế giao diện 62

Trang 7

6

7.3.1 Giao diện phân hệ tra cứu trên nền web 62

7.3.2 Giao diện quản trị phân hệ web 67

7.3.3 Giao diện phân hệ tra cứu trên thiết bị di động 99

8 Cài đặt 109

8.1 Cài đặt phân hệ quản trị web 109

8.2 Cài đặt phân hệ tra cứu trên nền web 109

8.3 Cài đặt phân hệ tra cứu trên mobile 110

9 Tổng kết 110

9.1 Kết luận 110

9.1.1 Những kết quả đạt được về mặt lý thuyết 110

9.1.2 Những kết quả đạt được về mặt ứng dụng 110

9.2 Hướng phát triển 111

TÀI LIỆU THAM KHẢO 112

PHỤ LỤC: MÃ NGUỒN PHẦN MINH HỌA KỸ THUẬT 113

1 Kỹ thuật lập trình với các điều khiển 113

1.1 ListView 113

1.1.1 Xây dựng giao diện 113

1.1.2 Xây dựng xử lý 115

1.2 GridView 117

1.2.1 Xây dựng giao diện 117

1.2.2 Xây dựng xử lý 118

1.3 Spinner View, DatePicker 121

1.3.1 Xây dựng giao diện 121

5.3.2 Xây dựng xử lý 123

1.4 TabHost View 126

1.4.1 Xây dựng giao diện 126

1.4.2 Xây dựng xử lý 128

1.5 Gallery và ImageView 128

Trang 8

7

1.5.1 Xây dựng giao diện 128

1.5.2 Xây dựng xử lý 129

2 Kỹ thuật lập trình với SQLite 131

2.1 Xây dựng giao diện 131

2.2 Xây dựng xử lý 136

3 Kỹ thuật lập trình với Web Service 144

3.1 Xây dựng giao diện 144

3.2 Xây dựng xử lý 148

4 Demo lập trình phát audio, video 153

4.1 Xây dựng giao diện 153

4.2 Xây dựng xử lý 155

Trang 9

8

Bảng các thuật ngữ và các từ viết tắt

hỗ trợ cho phần mềm Eclipse trong việc phát triển ứng dụng Android

Google và dựa trên nền tảng Linux

điện thoại di động, cho phép truyền cả dữ liệu thoại và

dữ liệu ngoài thoại (tải dữ liệu, gửi email, tin nhắn nhanh, hình ảnh )

ngữ đánh dấu siêu văn bản được thiết kế ra để tạo nên các trang web

gọi là môi trường phát triển tích hợp

phát triển ứng dụng phần mềm

chuẩn của W3C, là giao thức sử dụng XML để định nghĩa dữ liệu dạng thuần văn bản thông qua giao thức HTTP

tham chiếu tới tài nguyên trên mạng Internet

từ xa thông qua một địa chỉ

server hoặc workstation và cung cấp những chức năng

mà sự diễn tiến của nó không cần sự tương tác trực tiếp của người dùng

Trang 10

9

Danh mục các bảng biểu

Bảng 6.1 - Đặc tả use case tra cứu giờ tàu, xe 34

Bảng 6.2 - Đặc tả use case tra cứu hành trình tàu, xe 35

Bảng 6.3 - Đặc tả use case tra cứu giá vé tàu, xe 36

Bảng 6.4 - Đặc tả use case gọi đặt vé tàu, xe 36

Bảng 6.5 - Đặc tả use case chia sẻ thông tin kết quả tra cứu 37

Bảng 6.6 - Đặc tả use case xem lược sử tra cứu 37

Bảng 6.7 - Đặc tả use case đăng nhập 39

Bảng 6.8 - Đặc tả use case nhập liệu 39

Bảng 6.9 - Đặc tả use case phân quyền 40

Bảng 7.1 - Mô tả thực thể Hang 47

Bảng 7.2 - Mô tả thực thể PhuongTien 47

Bảng 7.3 - Mô tả thực thể LoaiPhuongTien 47

Bảng 7.4 - Mô tả thực thể Phim 48

Bảng 7.5 - Mô tả thực thể HinhAnh 48

Bảng 7.6 - Mô tả thực thể DiaDiem 48

Bảng 7.7 - Mô tả thực thể Tuyen 49

Bảng 7.8 - Mô tả thực thể TrungGian 49

Bảng 7.9 - Mô tả thực thể LoaiGhe 49

Bảng 7.10 - Mô tả thực thể Gia 50

Bảng 7.11 - Mô tả thực thể DoiTuong 50

Bảng 7.12 - Mô tả thực thể KhuyenMai 50

Bảng 7.13 - Mô tả thực thể ChiTietTuyen 50

Bảng 7.14 - Mô tả thực thể ChiTietViTri 51

Bảng 7.15 - Mô tả bảng Hang 53

Bảng 7.16 - Mô tả bảng Phim 53

Bảng 7.17 - Mô tả bảng LoaiPhuongTien 54

Trang 11

10

Bảng 7.18 - Mô tả bảng ChiTietHang 54

Bảng 7.19 - Mô tả bảng PhuongTien 54

Bảng 7.20 - Mô tả bảng HinhAnh 55

Bảng 7.21 - Mô tả bảng KhuyenMai 56

Bảng 7.22 - Mô tả bảng Gia 56

Bảng 7.23 - Mô tả bảng ChiTietViTri 57

Bảng 7.24 - Mô tả bảng LoaiGhe 58

Bảng 7.25 - Mô tả bảng Tuyen 58

Bảng 7.26 - Mô tả bảng TrungGian 59

Bảng 7.27 - Mô tả bảng ChiTietTuyen 60

Bảng 7.28 - Mô tả bảng Nhom 60

Bảng 7.29 - Mô tả bảng NguoiDung 60

Bảng 7.30 - Mô tả bảng ChucNang 61

Bảng 7.31 - Mô tả bảng ChiTietChucNang 61

Trang 12

11

Danh mục các hình ảnh

Hình 2.1 - Giao diện điều khiển ListView 17

Hình 2.2 - Giao diện điều khiển GridView 18

Hình 2.3 - Giao diện minh họa Spinner View và Datepicker 19

Hình 2.4 - Giao diện điều khiển TabHost 20

Hình 2.5 - Giao diện điều khiển Gallery và ImageView 21

Hình 3.1 - Giao diện ứng dụng minh họa SQLite 24

Hình 4.1 - Minh họa kết quả sau khi gọi web service 27

Hình 4.2 - Mô hình kết nối gọi Web Service và giao diê ̣n minh ho ̣a 27

Hình 4.3 - Hình minh họa việc chèn thư viện KSOAP2 vào ứng dụng 28

Hình 5.1 - Minh họa phát tập tin video và audio 31

Hình 6.1 - Kiến trúc ứng dụng tra cứu thông tin tàu xe 32

Hình 6.2 - Sơ đồ use case của người dùng cuối 34

Hình 6.3 - Sơ đồ use case của người quản trị hệ thống tàu, xe 38

Hình 6.4 - Quy trình xử lý nghiệp vụ tra cứu giờ tàu, xe trên thiết bị di động 41

Hình 6.5 - Quy trình xử lý nghiệp vụ tra cứu lộ trình tàu, xe trên thiết bị di động 41

Hình 6.6 - Quy trình xử lý nghiệp vụ tra cứu giá vé tàu, xe trên thiết bị di động 42

Hình 6.7 - Quy trình xử lý nghiệp vụ tra cứu trên nền web 43

Hình 6.8 - Quy trình xử lý nghiệp vụ nhập liệu trên web server 44

Hình 6.9 - Quy trình xử lý nghiệp vụ phân quyền 45

Hình 7.1 - Sơ đồ CDM 46

Hình 7.2 - Sơ đồ vật lý PDM 52

Hình 7.3 - Giao diện trang tra cứu 62

Hình 7.4 - Giao diện kết quả khi không cung cấp loại phương tiện và hãng 63

Hình 7.5 - Giao diện kết quả tra cứu khi cung cấp thông tin hãng vận chuyển 63

Hình 7.6 - Giao diện kết quả tra cứu khi cung cấp thông tin loại phương tiện 64

Hình 7.7 - Giao diện kết quả khi cung cấp loại phương tiện và hãng 64

Trang 13

12

Hình 7.8 - Giao diện thông tin lộ trình của tuyến 65

Hình 7.9 - Giao diện thông tin giá vé trên các trạm của tuyến 66

Hình 7.10 - Giao diện thông tin giá vé giữa các trạm của tuyến 66

Hình 7.11 - Giao diện thể hiện hình ảnh của phương tiện 67

Hình 7.12 - Giao diện màn hình đăng nhập 67

Hình 7.13 - Activity biểu diễn Use case đăng nhập 68

Hình 7.14 – Giao diện màn hình chính của trang quản trị 69

Hình 7.15 - Giao diện màn hình quản lý phương tiện dành cho nhân viên hệ thống 69 Hình 7.16 - Activity biểu diễn use case nhập liệu 70

Hình 7.17 - Giao diện màn hình quản lý phương tiện cho các đối tượng khác 71

Hình 7.18 - Activity biểu diễn use case nhập liệu 72

Hình 7.19 - Giao diện quản lý tuyến đối với nhân viên nhập liệu hệ thống 73

Hình 7.20 - Activity biểu diễn use case nhập liệu 74

Hình 7.21 - Giao diện quản lý tuyến đối với các đối tượng khác 75

Hình 7.22 - Activity biểu diễn use case nhập liệu 76

Hình 7.23 - Giao diện quản lý hãng đối với nhân viên nhập liệu hệ thống 77

Hình 7.24 - Activity biểu diễn use case nhập liệu 78

Hình 7.25 - Giao diện quản lý hãng đối với các đối tượng khác 79

Hình 7.26 - Activity biểu diễn use case nhập liệu 80

Hình 7.27 - Giao diện quản lý tài khoản đối với nhân viên nhập liệu hệ thống 81

Hình 7.28 - Activity biểu diễn use case nhập liệu 82

Hình 7.29 - Giao diện quản lý tài khoản đối với các nhóm đối tượng khác 83

Hình 7.30 - Activity biểu diễn use case nhập liệu 84

Hình 7.31 - Giao diện quản lý nhóm người dùng 85

Hình 7.32 - Activity biểu diễn use case nhập liệu 86

Hình 7.33 - Giao diện danh mục địa điểm 87

Hình 7.34 - Activity biểu diễn use case nhập liệ 88

Hình 7.35 - Giao diện danh mục hình ảnh đối với nhân viên hệ thống 89

Trang 14

13

Hình 7.36 - Activity biểu diễn use case nhập liệu 90

Hình 7.37 - Giao diện danh mục hình ảnh đối với các đối tượng khác 91

Hình 7.38 - Activity biểu diễn use case nhập liệu 92

Hình 7.39 - Giao diện danh mục phim đối với nhân viên hệ thống 93

Hình 7.40 - Activity biểu diễn use case nhập liệu 94

Hình 7.41 - Giao diện danh mục phim đối với các đối tượng khác 95

Hình 7.42 - Activity biểu diễn use case nhập liệu 96

Hình 7.43 - Giao diện danh mục loại ghế 96

Hình 7.44 - Giao diện danh mục đối tượng 97

Hình 7.45 - Giao diện danh mục loại phương tiện 97

Hình 7.46 - Giao diện danh mục khuyến mãi 98

Hình 7.47 - Giao diện danh mục nhóm chức năng 98

Hình 7.48 - Giao diện màn hình chính ứng dụng 99

Hình 7.49 - Giao diện màn hình lược sử tra cứu 99

Hình 7.50 - Activity biểu diễn use case lược sử tra cứu 100

Hình 7.51 - Giao diện màn hình Giới thiệu 101

Hình 7.52 – Giao diện màn hình hướng dẫn sử dụng 101

Hình 7.53 – Giao diện màn hình tra cứu 102

Hình 7.54 - Activity biểu diễn Use case tra cứu tàu, xe 103

Hình 7.55 - Giao diện màn hình danh sách phương tiện 104

Hình 7.56 - Giao diện màn hình thể hiển giờ chạy tàu, xe 104

Hình 7.57 - Activity biểu diễn Use case xem giờ chạy tàu, xe 105

Hình 7.58 - Giao diện màn hình thể hiện lộ trình 106

Hình 7.59 - Activity biểu diễn Use case xem lộ trình tàu, xe 106

Hình 7.60 - Giao diện màn hình thể hiện giá vé 107

Hình 7.61 - Activity biểu diễn Use case xem giá vé tàu, xe 108

Hình 7.62 - Giao diện màn hình thể hiện lộ trình trên bản đồ 109

Trang 15

14

Lời nói đầu

Ngày nay khi các thiết bị cầm tay trở nên phổ biến, cũng như sự phát triển lớn mạnh của các hệ thống viễn thông làm cho các dịch vụ phục vụ nhu cầu con người trên thiết bị cầm tay ngày càng phổ biến Đặc biệt là các dịch vụ tra cứu trực tuyến trên thiết bị cầm tay, nó được dự đoán là rất phát triển khi mà công nghệ mạng 3G đang được phát triển một cách rộng rãi, đem lại cho người dùng tốc độ truyền tải dữ liệu rất nhanh 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 trong lĩnh vực công nghệ

Theo comScore, thị trường điện thoại thông minh Mỹ thời gian gần đây có nhiều dấu hiệu cho thấy hệ điều hành Android của Google đã chế ngự hoàn toàn hệ điều hành iOS của Apple và BlackBerry của RIM Chỉ trong quý đầu tiên của năm 2011, đã có đến 69,5 triệu người Mỹ sử dụng loại điện thoại này, tăng 13% so với cuộc khảo sát tương tự kết thúc vào tháng 11/2010 33% số người dùng điện thoại tuổi từ 13 trở lên tham gia cuộc khảo sát cho biết họ thích hệ điều hành Android, 28,9% thích các dòng điện thoại BlackBerry của RIM, trong khi chỉ có 25,2% người sử dụng chọn các sản phẩm của Apple Với những con số đó đã nói lên sự phát triển vượt bậc, tính ưu việt và tiềm năng phát triển của hệ điều hành Android lớn đến mức nào

Khi nhu cầu thông tin ngày càng phát triển, người dùng sẽ muốn truy cập hoặc tìm kiếm thông tin mọi lúc, mọi nơi Không phải lúc nào người dùng cũng có thể sử dụng laptop hay desktop để tìm kiếm thông tin Hơn nữa, ngày nay điện thoại thông minh đầy

đủ chức năng, cấu hình cao, có giá thành rẻ và ngày càng được phổ biến Do đó việc xây dựng các ứng dụng trên thiết bị di động sẽ trở thành một ngành công nghiệp hứa hẹn sẽ có tốc độ phát triển nhanh trong những năm tới

Dân số trung bình cả nước năm 2011 ước tính 87,84 triệu người (Tổng cục Thống kê), nhu cầu đi lại vào các dịp lễ, tết thường rất lớn Do đó nhu cầu thông tin về giá vé

Trang 16

15

tàu, xe thường rất lớn nhưng nguồn thông tin cung cấp lại thường rất ít Hiện nay ở trong nước cũng có một số ứng dụng tra cứu như thông tin các tuyến xe buýt (ứng dụng VietBus) được xây dựng lên để đáp ứng nhu cầu đi lại với xe buýt Tuy nhiên, các ứng

minh dùng hệ điều hành Android vẫn chưa được quan tâm và phát triển đúng mức Vì những lý do trên mà chúng em quyết định đi sâu nghiên cứu, tìm hiểu kỹ thuật lập trình trên Android để xây dựng một ứng dụng tra cứu thông tin về tàu, xe trên thiết bị di động

sử dụng hệ điều hành mã nguồn mở Android

Đề tài của nhóm chủ yếu hướng đến hai vấn đề chính sau đây:

 Một là, xây dựng ứng dụng tra cứu thông tin các hãng tàu, xe trên Android có các chức năng chính sau:

- Cho phép tra cứu thông tin giờ chạy, lộ trình, giá vé với điểm đi và điểm đến do người dùng cung cấp

- Cho phép chia sẻ thông tin tra cứu thông qua các ứng dụng như SMS, Facebook, Gmail

- Cho phép xem lại lược sử các tra cứu gần đây nhất của người dùng

về các hãng tàu, xe Bên cạnh đó là việc hỗ trợ lấy tin tĩnh từ trang web dạng HTML của hãng tàu, xe

Luận văn đươ ̣c trình bày gồm 2 phần chính:

 Phần 1: giới thiê ̣u về mô ̣t số kỹ thuâ ̣t lâ ̣p trình cơ bản trên Android

Mă ̣c dù chúng em đã đầu tư khá nhiều công sức và thì giờ vào luâ ̣n văn này nhưng chắc chắn cũng không tránh khỏi những sai sót Chúng em rất mong nhận được những ý kiến đóng góp và sự thông cảm của quý thầy cô Xin chân thành cảm ơn

Anh Toàn & Công Minh

Trang 17

16

Nô ̣i Dung Luâ ̣n Văn

PHẦN 1: TÌM HIỂU VỀ KỸ THUẬT LẬP TRÌNH TRÊN ANDROID

1 Các bước để tiến hành lập trình trong Android

Không giống như iOS, SDK chạy hệ điều hành Android có thể hoạt động được trên

hình máy tính hiện nay đều có thể tải về và sử dụng được bộ công cụ lập trình lập trình này Thêm nữa, các nền tảng và các bộ công cụ lập trình của Android đều miễn phí Do

đó các nhà phát triển có thể tải về trực tiếp các bộ công cụ lập trình này trên trang chủ của người phát hành Để có thể bắt đầu lập trình trên hệ điều hành Android, một số phần mềm sau sẽ cần phải được cài đặt :

1.1 Java Runtime Environment (JRE)

Bộ JRE giúp làm nền tảng để chạy các ứng dụng trên hệ điều hành Android Tại thời điểm hiện tại thì bộ Java Platform mới nhất là JRE 7 Chúng ta có thể vào trang

http://www.oracle.com/technetwork/java để tải về và cài đặt vào máy Nên cài đặt theo đường dẫn mặc định mà phần mềm đã gợi ý để tránh những khó khăn khi tham chiếu đến các thư mục sau này khi lập trình

1.3 Android SDK

Trang 18

17

Là gói hỗ trợ lập trình trên hệ điều hành Android Chúng ta có thể vào trang web :

http://developer.android.com/sdk/index.html và tải về bản SDK phù hợp cho mình.Công

đường dẫn của nó) và tiến hành cài đặt

1.4 Android ADT

Đây là một trình cắm thêm (plug-in) dành cho Eclipse IDE nhằm mang lại các tính năng mạnh mẽ, môi trường tích hợp để xây dựng các ứng dụng trên hệ điều hành Android Công việc tiếp theo là tiến hành tải về và cài đặt trình cắm thêm này vào

>> Android SDK and AVD Manager Khi cửa sổ mới hiện ra thì chúng ta sẽ đánh dấu vào tất cả các Packages hiện có và tiến hành cài đặt chúng Sau khi cài đặt xong, chúng ta

đã có thể sử dụng

2 Kỹ thuật lập trình với các điều khiển

2.1 ListView

2.1.1 Yêu cầu đặt ra

Sử dụng điều khiển ListView xây dựng giao diện hiển thị chi tiết lộ trình mà phương

tiện vận chuyển sẽ đi qua Giao diện đơn giản như sau :

Hình 2.1 - Giao diện điều khiển ListView

Trang 19

18

2.1.2 Giải quyết

Để thực hiện được yêu cầu trên, chúng ta sẽ thực hiện theo các bước chính sau:

getCount(), getItem(), getItemId(), getView() để thực hiện việc gắn kết dữ liệu đến điều khiển ListView

ListView Thông qua hàm setListAdapter() để đổ dữ liệu và hiển thị lên ListView Ngoài

ra, để thiết lập xử lý khi chọn một mục tin, ta dùng hàm onListItemClick() Chi tiết xin

xem thêm trong phần Phụ lục mục 1.1

2.2 GridView

2.2.1 Yêu cầu đặt ra

Sử dụng điều khiển GridView xây dựng giao diện màn hình của ứng dụng như sau:

Hình 2.2 - Giao diện điều khiển GridView

2.2.2 Giải quyết

Để thực hiện được yêu cầu trên, chúng ta sẽ thực hiện theo các bước chính sau :

Trang 20

19

getCount(), getItem(), getItemId(), getView() để thực hiện việc gắn kết dữ liệu đến điều khiển GridView

Thông qua hàm setAdapter() để đổ dữ liệu và hiển thị lên GridView Ngoài ra, để thiết lập

xử lý khi chọn một mục tin, ta thiết lập setOnItemClickListener() cho GridView và hiện

thực hàm onItemClick() Chi tiết xin xem thêm trong phần Phụ lục mục 1.2

2.3 Spinner View, DatePicker

2.3.1 Yêu cầu đặt ra

Sử dụng điều khiển Spinner và DatePicker xây dựng giao diện tra cứu thông tin tàu,

xe Khi người dùng chọn ngày tra cứu, hộp thoại DatePicker sẽ được hiển thị cho phép thiết lập ngày tháng và chọn điểm đi, điểm đến, loại phương tiện, hãng vận chuyển qua Spinner Giao diện đơn giản như sau:

Hình 2.3 - Giao diện minh họa Spinner View và Datepicker

2.3.2 Giải quyết

Trang 21

20

Để thực hiện được yêu cầu trên, chúng ta sẽ thực hiện theo các bước chính sau :

Spinner, DatePicker Gắn kết dữ liệu lên điều khiển Spinner bằng cách tạo một thể hiển của lớp ArrayAdapter, sau đó gọi hàm setAdapter() để thực thi Để hiển thị hộp thoại DatePicker ta cần nạp chồng hàm onCreateDialog() Thông tin ngày tháng khi cập nhật trong hộp thoại được xử lý thông qua hàm onDateSet(), tai đây ta có thể lấy thông tin

2.4 TabHost View

2.4.1 Yêu cầu đặt ra

Sử dụng điều khiển TabHost đã được tùy chỉnh xây dựng chức năng cho phép người

dùng tùy chọn Tab hiển thị theo từng mục đích sử dụng trong ứng dụng Khi người dùng nhấn vào từng mục trong Tab thì giao diện sẽ được thay đổi cho phù hợp với từng loại Tab như hình sau :

Hình 2.4 - Giao diện điều khiển TabHost

Trang 22

21

2.4.2 Giải quyết

Để thực hiện được yêu cầu trên, chúng ta sẽ thực hiện theo các bước chính sau :

 Bước 1: định nghĩa giao diện tab trong tệp XML Sau đó tạo một lớp thừa kế từ lớp TabActivity để hiển thị giao diện đã định nghĩa

TabHost Ta có thể chỉ định nội dung hiển thị và biểu tượng hình ảnh (văn bản) của tab lần lượt thông qua hàm setContent() và setIndicator()

đã tạo trước đó liên kết với các tab trong điều khiển TabHost Chi tiết xin xem thêm trong

phần Phụ lục mục 1.4

2.5 Gallery và ImageView

2.5.1 Yêu cầu đặt ra

Sử dụng điều khiển Gallery và ImageView xây dựng chức năng cho phép người

dùng xem danh sách hình ảnh phương tiện vận chuyển Khi người dùng chọn các mục hình ảnh trong Gallery thì hình đó sẽ được hiển thị ở kích cở lớn hơn trên ImageView Giao diện trình bày như hình sau :

Hình 2.5 - Giao diện điều khiển Gallery và ImageView

Trang 23

22

2.5.2 Giải quyết

Để thực hiện được yêu cầu trên, chúng ta sẽ thực hiện theo các bước chính sau :

getCount(), getItem(), getItemId(), getView() để thực hiện việc gắn kết hình ảnh lên điều khiển Gallery

Thông qua hàm setAdapter() đổ hình ảnh và hiển thị lên Gallery Ngoài ra, để thiết lập xử

lý khi chọn một mục hình ảnh ta thiết lập hàm setOnItemClickListener() cho Gallery và

hiện thực hàm onItemClick() Chi tiết xin xem thêm trong phần Phụ lục mục 1.5

3 Kỹ thuật lập trình với SQLite

thời điểm chạy ứng dụng thì ta làm như sau:

Tạo một lớp thừa kế từ SQLiteOpenHelper, dùng để mở, đóng cơ sở dữ liệu, quản lý việc tạo cơ sở dữ liệu cũng như phiên bản của nó thông qua các hàm onCreate(), open(), close() và onUpgrade() Ngoài ra trong lớp này, ta có thể định nghĩa các hàm dùng cho việc thêm, xóa, sửa các dòng trong cơ sở dữ liệu Một số hàm thường dùng của lớp SQLiteOpenHelper

được dùng để tạo cơ sở dữ liệu (nếu chưa có)

Trang 24

23

SQLiteDatabase, số chỉ phiên bản cũ, số chỉ phiên bản mới của cơ sở dữ liệu, được dùng

để cập nhật cơ sở dữ liệu

mở một cơ sở dữ liệu (chỉ cho phép đọc, không ghi)

mở một cơ sở dữ liệu (cho phép ghi)

Để thực hiện việc truy vấn, thêm, xóa, sửa dữ liệu ta dùng lớp SQLiteDatabase Một

số hàm thường dùng của lớp này :

Ta cần dùng một số hàm để lướt trên dòng dữ liệu như moveToFirst() để dịch chuyển đến dòng đầu tiên, còn moveToLast() đến dòng cuối cùng , moveToNext() đến dòng tiếp theo dòng hiện tại, moveToPrevious() đến dòng trước dòng hiện tại, getCount() lấy số lượng

- String table: tên của bảng sẽ được thực hiện truy vấn

- String[] columns: danh sách các cột cần lấy Nếu “null” sẽ lấy tất cả các cột

- String selection : điều kiện lọc Nếu “null” sẽ lấy tất cả

- String[] selectionArgs : danh sách các giá trị dùng để thay thế “?” trong tham số selection

- String groupBy: điều kiện gom nhóm, định dạng tương tự như GROUP BY trong SQL

- String having: điều kiện lọc cho các dòng khi gom nhóm, định dạng tương tự như mệnh đề HAVING trong SQL

- String orderBy: sắp xếp, định dạng tương tự như mệnh đề ORDER

BY trong SQL

 Hàm insert() có 3 tham số và giá trị trả về là mã của dòng mới nhất được chèn, nếu thất bại trả về -1

- String table: bảng cần chèn dữ liệu

- String nullColumnHack : dùng để tối ưu, có thể “null” SQL không cho phép thêm một hàng trống vào mà không biết ít nhất tên của một cột Nếu tham số

Trang 25

24

values là rỗng sẽ không có dòng nào được thêm vào Trường hợp này, ta có thể giải quyết bằng cách truyền tên một cột được phép “null” vào nullColumnHack

- ContentValue values: giá trị ở dạng cặp {“khóa”,”giá trị”}

- String table: bảng cần cập nhật

- ContentValues values: (column_name, value)

- String whereClause: điều kiện “where” cập nhật, null sẽ cập nhật tất

cả các dòng

- String[] whereArgs: các tham số trong whereClause

- String table: bảng cần xóa

- String whereClause: null nếu xóa tất cả các dòng

- String[] whereArgs: các tham số cho whereClause

Trang 26

25

3.2.2 Giải quyết

Các bước chính để thực hiện minh họa trên như sau:

Bước 1: xây dựng lớp thực hiện việc tạo, cập nhật cơ sở dữ liệu cũng như định nghĩa các thao tác truy vấn, thêm, xóa, sửa Cấu trúc chính như sau:

onCreate() và onUpdate() để phục vụ việc tạo, cập nhật cơ sở dữ liệu

phụ lục

Bước 2: tạo lớp thừa kế từ ListActivity để xây dựng màn hình chính Trong minh họa này, khi người dùng ấn vào mục tin trong ListView thì sẽ hiển thị hộp thoại cho phép cập nhật, xóa thông tin Để xử lý khi mục tin trên ListView được chọn, ta nạp chồng hàm onListItemClick, onCreateDialog() và onPrepareDialog() để hiển thị hộp thoại Bên cạnh

đó, để xử lý sự kiện khi người dùng nhấn vào các điều khiển Button, ta hiện thực giao diện OnClickListener() để xử lý sự kiện trong hàm onClick()

Bước 3: tạo lớp thừa kế từ BaseAdapter để thực hiện gắn kết dữ liệu từ cơ sở dữ liệu lên điều khiển ListView trong màn hình chính Các hàm cần nạp chồng là getCount(), getItem(), getItemId(), getView() lần lượt dùng định nghĩa hàm lấy số lượng, thông tin,

lục mục 2

4 Kỹ thuật lập trình với Web Service

4.1 Dạng SOAP (Simple Object Access Protocol)

Để gọi Web Service dạng SOAP, ta sẽ dùng thư viện KSOAP2 Có thể tải thư viện này tại địa chỉ sau :

http://www.4shared.com/file/uOhx5aoj/ksoap2-android-assembly-24-jar.html Trong thư viện này, việc thực hiện yêu cầu đến Web Service cũng như nhận kết quả trả về thường thông qua lớp SoapObject Có 3 tham số quan trọng được yêu cầu : không

Trang 27

26

gian tên, tên phương thức dùng, địa chỉ URL của Web Service Ngoài ra, có một tham số mở rộng khác cũng quan trọng không kém là SOAP_ACTION, nó là sự kết hợp giữa không gian tên và tên phương thức bằng công thức sau:

SOAP_ACTION = NAMESPACE + METHOD_NAME Các bước sau sẽ giúp thực hiện một lời gọi Web Service với KSOAP2 :

không gian tên và tên phương thức (hàm) của dịch vụ

dùng hàm addProperty() Hàm này có 2 tham đối lần lượt là tên biến cần truyền tham trị

và giá trị của nó

tin khác như: phiên bản SOAP, Web Service có dựa trên NET hay không, thiết lập đầu ra cho thông điệp kết quả

của Web Service cần gọi

 Bước 5: thực hiện lời gọi call() từ đối tượng HttpTransportSE, với 2 tham số truyền vào là SOAP_ACTION và đối tượng SoapSerializationEnvelope đã tạo

SoapSerializationEnvelope bằng hàm getResponse() khi kết quả trả về là một kiểu chuỗi hay bằng thuộc tính bodyIn khi kết quả trả về là một kiểu danh sách

4.2 Ví dụ minh họa

4.2.1 Đặt vấn đề

Chúng ta sẽ tạo một ứng dụng minh họa hiển thị chi tiết lộ trình tàu lửa bằng việc gọi Web Service xây dựng bằng NET (dạng SOAP) Web Service này có tham số đầu vào là mã tuyến, điểm đi, điểm đến Kết quả đầu ra với thông tin gồm thông tin chính như tên trạm trên lộ trình, thời gian đi, thời gian đến , cự ly chặng Ví dụ kết quả gọi Web Service với mã tuyến là 154, điểm đi là Sài Gòn, điểm kết thúc là Nha Trang dạng như sau:

Trang 28

27

Hình 4.1 - Minh họa kết quả sau khi gọi web service

Mô hình kết nối Web Service và giao diện chương trình đơn giản như sau:

SQL Server

Web Service

(.NET)

Gọi Web Service nhận dữ liệu

Truy xuất lấy dữ liệu

Hình 4.2 - Mô hình kết nối gọi Web Service và giao diện minh họa

Trang 29

28

4.2.2 Giải quyết

viện, ta sẽ có một tệp có định dạng là jar Để chèn thư viện đó vào ứng dụng, ta chỉ cần chọn nhấn chuột phải vào tên dự án ứng dụng, sau đó chọn Properties>Java build path>Libraries>Add External Jars >chọn đường dẫn đến thư viện đã tải về>OK

Hình 4.3 - Hình minh họa việc chèn thư viện KSOAP2 vào ứng dụng

hình Lớp này cũng sẽ hiện thực giao diện OnClickListener, nạp chồng hàm onClick() để

xử lý sự kiện khi người dùng ấn vào nút thực hiện gọi Web Service lấy thông tin chi tiết

về lộ trình Xin xem thêm chi tiết trong phần Phụ lục mục 3

5 Phát audio, video trong Android

5.1 Giới thiệu

5.1.1 Phát audio

Trang 30

29

Để phát tập tin audio, ta sử dụng lớp MediaPlayer Lớp này có thể dùng để điều khiển việc phát các tập tin audio, video Một số phương thức thường dùng của lớp MediaPlayer :

video phát

 setVideoPath(): thiết lập nguồn dữ liệu phát video

 start(): bắt đầu phát audio, video

MediaPlayer

 prepare() và prepareAsync(): thao tác chuẩn bị cho việc phát audio, video dùng lần lượt cho trường hợp đồng bộ và bất động bộ

, video đã được phát hoàn thành

video đã được nạp vào và sẳn sàng để phát

trong quá trình phát audio, video

Để phát một tâ ̣p tin audio, ta có thể làm như sau :

phát

phát audio

Trang 31

30

Chú ý: khi gọi hàm stop() để dừng việc phát, nhưng sau đó muốn phát lại thì phải

gọi lần lượt các hàm reset(), prepare(), start()

5.1.2 Phát video

Việc phát tập tin video phức tạp hơn so với việc phát tập tin audio sử dụng API của MediaPlayer, một phần vì chúng ta phải cung cấp thêm một bề mặt hiển thị video được phát Tuy nhiên, Android cung cấp một widget gọi là VideoView giúp giải quyết khó khăn trên Thêm nữa, nó còn cung cấp một số tùy chỉnh để hiển thị phù hợp với nhu cầu người sử dụng

Chú ý:

trên một số máy tính và hệ điều hành

vậy, chúng phải được đặt trong thẻ nhớ SD Card của AVD đó

Để phát một tâ ̣p tin video, ta có thể làm như sau:

trực tiếp ở một đường dẫn trên mạng hoặc setVideoPath() để truyền vào một đường dẫn video thông thường như từ thẻ nhớ chẳng hạn Để phát được đường dẫn video ở trên mạng, ta cần khai báo quyền android.permission.INTERNET để cho phép truy cập mạng

điều khiển như rewind, pause, play, forward… ta có thể tạo một thể hiện từ lớp MediaController, sau đó thiết lập nó đến VideoView qua hàm setMediaController()

Ngoài ra để phát một video từ YouTube, ta có có thể sử dụng đối tượng Intent với tham số ACTION_VIEW Nếu thiết bị đã cài đặt ứng dụng YouTube thì ứng dụng này sẽ được gọi, ngược lại trình duyệt của thiết bị sẽ hiển thị video Cách sử dụng đơn giản như sau :

startActivity(newIntent(Intent.ACTION_VIEW, Uri.parse("URL_VIDEO")));

với URL_VIDEO là đường dẫn video trên youtube cần phát

Trang 32

5.2.2 Giải quyết

Các bước chính để thực hiện minh họa trên như sau :

.3gp) được Android hỗ trợ từ thẻ nhớ lên ListView của màn hình hiển thị danh sách bài hát Lấy đường dẫn truy cập thẻ nhớ thiết bị bằng cách gọi hàm Enviroment.getExternalStorageDirectory().getAbsolutePath(), sau đó tải các tập tin có định dạng audio, video được hỗ trợ vào danh sách bài hát Tất nhiên để truy cập được thẻ nhớ, ta cần khai báo quyền WRITE_EXTERNAL_STORAGE

 Bước 2: tạo và sử dụng đối tượng MediaPlayer để phát bài hát loại audio khi người dùng chọn bài hát audio

người dùng chọn bài hát video

Trang 33

Thông tin chi tiết tàu, xe Kết quả tra cứu

Web Services

Database

Quản lý thông tin tàu, xe

Back-end

SQL Server

Giao diện tra cứu tàu, xe trên nền Web

Kết quả tra cứu

Trang web của công ty vận tải

Window Service (Lập lịch) Lấy dữ liệu thông qua HTML

Hình 6.1 - Kiến trúc ứng dụng tra cứu thông tin tàu xe

Trang 34

33

Kiến trúc hệ thống tra cứu tàu, xe gồm :

tin tàu, xe trên nền web ASP.NET

 Phân hệ tra cứu trên nền thiết bị di động chạy hệ điều hành Android : người dùng thực hiện việc tra cứu thông tin tàu, xe trên thiết bị di động chạy hệ điều hành Android Ứng dụng này hoạt động bằng việc gọi các Web Service tương ứng với thông tin người dùng cung cấp thông qua mạng Internet, sau đó thông tin chi tiết về tàu (xe) sẽ được trả về cho người dùng

 Phân hệ quản trị trên web server ASP.NET : trong phân hệ này, người quản trị hệ thống sẽ quản lý thông tin về tàu, xe thông qua ứng dụng quản lý trên nền web (ASP.NET) Ứng dụng quản lý này truy xuất cơ sở dữ liệu từ hệ quản trị Microsoft SQL Server, để thực hiện các thao tác của người quản trị hệ thống Ngoài việc nhập liệu từ web server thì dữ liệu cũng sẽ được lấy từ các trang HTML của một số hãng vận tải thông qua Window Service được lập lịch thực hiện theo định kỳ

6.2 Các sơ đồ đặc tả yêu cầu

6.2.1 Sơ đồ Use-case

Trang 35

Tra cứu lộ trình tàu, xe

Xem lược sử tra cứu

Chia sẻ thông tin tra cứu

Gọi đặt vé tàu, xe

Xem thông tin hãng

Hình 6.2 - Sơ đồ use case của người dùng cuối

Người dùng sẽ được cung cấp các thông tin về lộ trình, giờ đi, đến và tất cả các giá

vé trên tuyến tra cứu Ngoài ra, người dùng cũng có thể chia sẻ thông tin tra cứu của mình lên trên qua các ứng du ̣ng như SMS , Gmail, Facebook để bạn bè được biết Và người dùng cũng có thể lưu lại lược sử tra cứu để xem lại bất cứ lúc nào khi cần thiết mà không cần phải thực hiện lại việc tra cứu Một tiện ích khác là người dùng được cung cấp số điện thoại và chức năng gọi điện thoại ngay trên ứng dụng để thực hiện cuộc gọi tới các hãng vận chuyển

Bảng 6.1 - Đặc tả use case tra cứu giờ tàu, xe

Use Case Name Tra cứu giờ tàu, xe

Trang 36

tiện, danh sách phương tiện của tất cả các hãng thỏa yêu cầu được hiển thị

Bảng 6.2 - Đặc tả use case tra cứu hành trình tàu, xe

Use Case Name Tra cứu hành trình tàu, xe

Action Steps 1 Người dùng chọn xem hành trình 2 Hệ thống hiển thị thông tin chi tiết về hành trình tàu,

xe Extension Points

Trang 37

36

Bảng 6.3 - Đặc tả use case tra cứu giá vé tàu, xe

Use Case Name Tra cứu giá vé tàu, xe

Action Steps

1 Người dùng chọn xem giá vé tàu, xe

2 Thông tin chi tiết về giá vé tàu, xe được hiển thị Extension Points

3 Hệ thống hiển thị thông tin kết quả không hợp lý do

dữ liệu bị sai

Bảng 6.4 - Đặc tả use case gọi đặt vé tàu, xe

Use Case ID UC 4

Use Case Name Gọi đặt vé tàu, xe

Trang 38

37

gọi

không tồn tại trong thực tế

được thực hiện

Bảng 6.5 - Đặc tả use case chia sẻ thông tin kết quả tra cứu

Use Case Name Chia sẻ thông tin kết quả tra cứu

(lộ trình, giá vé, giờ chạy)

2 Chọn chức năng chia sẻ thông tin tra cứu

Extension Points

Exceptions

1 Không thể chia sẻ thông tin do lỗi đường truyền mạng hoặc thiết bị di động không có ứng dụng hỗ trợ chia sẻ

2 Thông tin chia sẻ bị thiếu: do chưa đủ thời gian để lấy hết thông tin kết quả tra cứu từ Web Service

Bảng 6.6 - Đặc tả use case xem lược sử tra cứu

Use Case Name Xem lược sử tra cứu

Trang 39

38

2 Danh sách tra cứu đã thực hiện được hiển thị

3 Người dùng chọn xem chi tiết thông tin kết quả tra cứu được

Extension Points Người dùng chia sẻ thông tin tra cứu

hoặc thiết bị di động không có ứng dụng hỗ trợ chia sẻ

2 Chi tiết thông tin đã tra cứu bị thiếu: do chưa đủ thời gian để lấy hết thông tin kết quả tra cứu từ Web Service

Trang 40

39

Người quản trị hệ thống và người quản trị của hãng vận chuyển sẽ thực hiện việc nhập dữ liệu cho các thông tin về tàu, xe Ngoài ra, quản trị viên cũng có thể thực hiện việc phân quyền cho từng user trong hệ thống Nhưng trước khi làm các việc đó thì các quản trị viên phải thực hiện việc đăng nhập vào hệ thống để hệ thống xác định và kiểm tra các quyền đối với quản trị viên

Bảng 6.7 - Đặc tả use case đăng nhập

tàu, xe

Extension Points

1 Tài khoản bị khóa

2 Nhập sai thông tin tài khoản

3 Tài khoản không tồn tại

Post-Conditions

Bảng 6.8 - Đặc tả use case nhập liệu

tàu xe

Ngày đăng: 06/03/2015, 23:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] W. Frank Ableson, Robi Sen, Chris King (2011), Android In Action (Second Edition), Manning, Stamford Sách, tạp chí
Tiêu đề: Android In Action (Second Edition)
Tác giả: W. Frank Ableson, Robi Sen, Chris King
Năm: 2011
[2] Sayed Y. Hashimi, Satya Komatineni, Dave MacLean (2010), Pro Android 2, Apress, USA Sách, tạp chí
Tiêu đề: Pro Android 2
Tác giả: Sayed Y. Hashimi, Satya Komatineni, Dave MacLean
Năm: 2010
[3] Wei-Meng Lee (2011), Beginning Android Application Development, Wiley, Indianapolis Sách, tạp chí
Tiêu đề: Beginning Android Application Development
Tác giả: Wei-Meng Lee
Năm: 2011
[4] Reto Meier (2011), Professional Android 2 Application Development, Wiley, Indianapolis Sách, tạp chí
Tiêu đề: Professional Android 2 Application Development
Tác giả: Reto Meier
Năm: 2011
[5] James Steele, Nelson To (2011), The Android Developer’s Cookbook Building Applications with the Android SDK, Addison-Wesley, USA Sách, tạp chí
Tiêu đề: The Android Developer’s Cookbook Building Applications with the Android SDK
Tác giả: James Steele, Nelson To
Năm: 2011

HÌNH ẢNH LIÊN QUAN

Hình 2.2 - Giao diện điều khiển GridView - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.2 Giao diện điều khiển GridView (Trang 19)
Hình 2.3 - Giao diện minh họa Spinner View và Datepicker - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.3 Giao diện minh họa Spinner View và Datepicker (Trang 20)
Hình 2.4 - Giao diện điều khiển TabHost - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.4 Giao diện điều khiển TabHost (Trang 21)
Hình 2.5 - Giao diện điều khiển Gallery và ImageView - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 2.5 Giao diện điều khiển Gallery và ImageView (Trang 22)
Hình 6.5 - Quy trình xử lý nghiệp  vụ tra cứu lộ trình tàu, xe trên thiết bị di động - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 6.5 Quy trình xử lý nghiệp vụ tra cứu lộ trình tàu, xe trên thiết bị di động (Trang 42)
Hình 6.8 - Quy trình xử lý nghiệp  vụ nhập liệu trên web server - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 6.8 Quy trình xử lý nghiệp vụ nhập liệu trên web server (Trang 45)
Hình 6.9 - Quy trình xử lý nghiệp  vụ phân quyền - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 6.9 Quy trình xử lý nghiệp vụ phân quyền (Trang 46)
Hình 7.1 - Sơ đồ CDM - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.1 Sơ đồ CDM (Trang 47)
Hình 7.2 - Sơ đồ vật lý PDM - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.2 Sơ đồ vật lý PDM (Trang 53)
Hình 7.5 - Giao diện kết quả tra cứu khi cung cấp thông tin hãng vận chuyển - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.5 Giao diện kết quả tra cứu khi cung cấp thông tin hãng vận chuyển (Trang 64)
Hình 7.12 - Giao diện màn hình đăng nhập - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.12 Giao diện màn hình đăng nhập (Trang 68)
Hình 7.18 - Activity biểu diễn use case nhập liệu - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.18 Activity biểu diễn use case nhập liệu (Trang 73)
Hình 7.20 - Activity biểu diễn use case nhập liệu - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.20 Activity biểu diễn use case nhập liệu (Trang 75)
Hình 7.22 - Activity biểu diễn use case nhập liệu - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.22 Activity biểu diễn use case nhập liệu (Trang 77)
Hình 7.24 - Activity biểu diễn use case nhập liệu - XÂY DỰNG ỨNG DỤNG TRA CỨU TÀU, XE TRÊN HỆ ĐIỀU HÀNH ANDROID
Hình 7.24 Activity biểu diễn use case nhập liệu (Trang 79)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w