I HM 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 - 1
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
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRẦN NGỌC BẢO
2
LỜI CẢM ƠN
Trong thi gian thc hin lui s ng dn ca Khoa Công Ngh Thông
i Hc bit là s ng dn ca thy Trn Ngc
Bi th kic kt qu y
chúng em xin chân thành gi ln :
14
PHN 1: TÌM HIU V K THUT LP TRÌNH TRÊN ANDROID 16
1 tin hành lp 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 thut lp trình vu khin 17
2.1. ListView 17
2.1.1. Yêu ct ra 17
2.1.2. Gii quyt 18
2.2. GridView 18
2.2.1. Yêu ct ra 18
2.2.2. Gii quyt 18
2.3. Spinner View, DatePicker 19
2.3.1. Yêu ct ra 19
2.3.2. Gii quyt 19
2.4. TabHost View 20
2.4.1. Yêu ct ra 20
2.4.2. Gii quyt 21
2.5. Gallery và ImageView 21
2.5.1. Yêu ct ra 21
2.5.2. Gii quyt 22 4
3 K thut lp trình vi SQLite 22
3.1. Gii thiu 22
3.2. Ví d minh ha 24
32
6.2 c t yêu cu 33
7 Phân tích, thit k 46
7.1. Mô hình thc th kt hp (CDM) 46
7.1.1. Thc th Hang 47
7.1.2. Thc th PhuongTien 47
7.1.3. Thc th LoaiPhuongTien 47
7.1.4. Thc th Phim 48
7.1.5. Thc th HinhAnh 48 5
7.1.6. Thc th DiaDiem 48
7.1.7. Thc th Tuyen 48
7.1.8. Thc th TrungGian 49
7.1.9. Thc th LoaiGhe 49
7.1.10. Thc th Gia 49
7.1.11. Thc th DoiTuong 50
7.1.12. Thc th KhuyenMai 50
7.1.13. Mi kt hp ChiTietTuyen 50
7.1.14. Mi kt hp ChiTietViTri 51
7.2. Mô hình vt lý (PDM) 51
7.2.1. Bng Hang 53
7.2.2. Bng Phim 53
7.2.3. Bng LoaiPhuongTien 54
9.2. ng phát trin 111
TÀI LIU THAM KHO 112
PH LC: MÃ NGUN PHN MINH HA K THUT 113
1 K thut lp trình vu khin 113
1.1 ListView 113
1.1.1 Xây dng giao din 113
1.1.2 Xây dng x lý 115
1.2 GridView 117
1.2.1 Xây dng giao din 117
1.2.2 Xây dng x lý 118
1.3 Spinner View, DatePicker 121
1.3.1 Xây dng giao din 121
5.3.2. Xây dng x lý 123
1.4 TabHost View 126
1.4.1 Xây dng giao din 126
1.4.2 Xây dng x lý 128
1.5 Gallery và ImageView 128 7
1.5.1 Xây dng giao din 128
1.5.2 Xây dng x lý 129
2 K thut lp trình vi SQLite 131
2.1 Xây dng giao din 131
2.2 Xây dng x lý 136
3. K thut lp trình vi Web Service 144
3.1 Xây dng giao din 144
3.2 Xây dng x lý 148
4. Demo lp trình phát audio, video 153
AVD Manager
Giao din qun lý cu hình thit b Android o
3G
Mng 3G là th h th ba ca chun công ngh
n thong, cho phép truyn c d liu thoi và
d liu ngoài thoi (ti d liu, gi email, tin nhn
nhanh, hình nh )
HTML
HTML - Hyper Text Markup Language, là ngôn
ng c thit k to nên
các trang web
IDE
IDE - Integrated Development Environment, còn
gi là mng phát trin tích hp
iOS
H u hành trên các thit b ng ca hãng
Apple
Java Runtime
Environment
Là thành phn ca b công c phát trin, h tr
phát trin ng dng Java
KSOAP2
viên h tr gi Web Service dng SOAP trên
Android
SD Card
Mt dng th nh ca thit b ng
SDK
SDK - Software Development Kit là b công c
phát trin ng dng phn mm
SOAP
Bng 7.1 - Mô t thc th Hang 47
Bng 7.2 - Mô t thc th PhuongTien 47
Bng 7.3 - Mô t thc th LoaiPhuongTien 47
Bng 7.4 - Mô t thc th Phim 48
Bng 7.5 - Mô t thc th HinhAnh 48
Bng 7.6 - Mô t thc th DiaDiem 48
Bng 7.7 - Mô t thc th Tuyen 49
Bng 7.8 - Mô t thc th TrungGian 49
Bng 7.9 - Mô t thc th LoaiGhe 49
Bng 7.10 - Mô t thc th Gia 50
Bng 7.11 - Mô t thc th DoiTuong 50
Bng 7.12 - Mô t thc th KhuyenMai 50
Bng 7.13 - Mô t thc th ChiTietTuyen 50
Bng 7.14 - Mô t thc th ChiTietViTri 51
Bng 7.15 - Mô t bng Hang 53
Bng 7.16 - Mô t bng Phim 53
Bng 7.17 - Mô t bng LoaiPhuongTien 54 10
Bng 7.18 - Mô t bng ChiTietHang 54
Bng 7.19 - Mô t bng PhuongTien 54
Bng 7.20 - Mô t bng HinhAnh 55
Bng 7.21 - Mô t bng KhuyenMai 56
Bng 7.22 - Mô t bng Gia 56
Bng 7.23 - Mô t bng ChiTietViTri 57
Bng 7.24 - Mô t bng LoaiGhe 58
Bng 7.25 - Mô t bng Tuyen 58
Bng 7.26 - Mô t bng TrungGian 59
Hình 4.2 - Mô hình kt ni g
27
Hình 4.3 - Hình minh ha vin KSOAP2 vào ng dng 28
Hình 5.1 - Minh ha
31
Hình 6.1 - Kin trúc ng dng tra cu thông tin tàu xe 32
Hình 6.2 - use case ci dùng cui 34
Hình 6.3 - use case ci qun tr h thng tàu, xe 38
Hình 6.4 - Quy trình x lý nghip v tra cu gi tàu, xe trên thit b ng 41
Hình 6.5 - Quy trình x lý nghip v tra cu l trình tàu, xe trên thit b ng 41
Hình 6.6 - Quy trình x lý nghip v tra cu giá vé tàu, xe trên thit b ng 42
Hình 6.7 - Quy trình x lý nghip v tra cu trên nn web 43
Hình 6.8 - Quy trình x lý nghip v nhp liu trên web server 44
Hình 6.9 - Quy trình x lý nghip v phân quyn 45
Hình 7.1 - CDM 46
Hình 7.2 - vt lý PDM 52
Hình 7.3 - Giao din trang tra cu 62
Hình 7.4 - Giao din kt qu khi không cung cp lon và hãng 63
Hình 7.5 - Giao din kt qu tra cu khi cung cp thông tin hãng vn chuyn 63
Hình 7.6 - Giao din kt qu tra cu khi cung cp thông tin lon 64
Hình 7.7 - Giao din kt qu khi cung cp lo tin và hãng 64 12
13
Hình 7.36 - Activity biu din use case nhp liu 90
Hình 7.37 - Giao din danh mc hình i vng khác 91
Hình 7.38 - Activity biu din use case nhp liu 92
Hình 7.39 - Giao din danh mi vi nhân viên h thng 93
Hình 7.40 - Activity biu din use case nhp liu 94
Hình 7.41 - Giao din danh mi vng khác 95
Hình 7.42 - Activity biu din use case nhp liu 96
Hình 7.43 - Giao din danh mc loi gh 96
Hình 7.44 - Giao din danh mng 97
Hình 7.45 - Giao din danh mc lon 97
Hình 7.46 - Giao din danh mc khuyn mãi 98
Hình 7.47 - Giao din danh mc nhóm ch 98
Hình 7.48 - Giao din màn hình chính ng dng 99
Hình 7.49 - Giao dic s tra cu 99
Hình 7.50 - Activity biu dic s tra cu 100
Hình 7.51 - Giao din màn hình Gii thiu 101
Hình 7.52 Giao ding dn s dng 101
Hình 7.53 Giao din màn hình tra cu 102
Hình 7.54 - Activity biu din Use case tra cu tàu, xe 103
Hình 7.55 - Giao din 104
Hình 7.56 - Giao din màn hình th hin gi chy tàu, xe 104
Hình 7.57 - Activity biu din Use case xem gi chy tàu, xe 105
Hình 7.58 - Giao din màn hình th hin l trình 106
Hình 7.59 - Activity biu din Use case xem l trình tàu, xe 106
Hình 7.60 - Giao din màn hình th hin giá vé 107
Hình 7.61 - Activity biu din Use case xem giá vé tàu, xe 108
Hình 7.62 - Giao din màn hình th hin l trình trên b 109
Dân s trung bình c c tính 87,84 trii (Tng cc Thng
kê), nhu ci vào các dp l, tng rt lu thông tin v giá vé 15
tàu, xe tng rt ln thông tin cung cp lng rt ít. Hin nay trong
t s ng dng tra c n xe buýt (ng dng
c xây d ng nhu ci vi xe buýt. Tuy nhiên, các ng
dng tra cu thông tin v xe khách, tàu l Vit Nam trên các thit b
minh dùng h u hành Android vc quan tâm và phát tric. Vì
nhng lý do trên mà chúng em quyu, tìm hiu k thut lp trình
trên Andr xây dng mt ng dng tra cu thông tin v tàu, xe trên thit b ng
s dng h u hành mã ngun m Android.
tài ca nhóm ch yn hai v
Mt là, xây dng ng dng tra cu thông tin các hãng tàu, xe trên
Android có các ch
- Cho phép tra cu thông tin gi chy, l trình, giá vé v
i dùng cung cp.
- Cho phép chia s thông tin tra cu thông qua các ng d
SMS, Facebook, Gmail.
- Cho phép xem lc s các tra cu gn t ci dùng
Hai là, xây dng mt web server h tr cho vic nhp liu các thông tin
v các hãng tàu, xe. Bên cc h tr l trang web dng HTML ca
hãng , xe.
, xe
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 giy h u hành Android có th hoc trên
hu ht các nn tng t Windows, Linux và Mac. Do vy, hu ht các h u hành và cu
hình máy tính hin nay u có th ti v và s dng c b công c lp trình lp trình
này. Thêm na, các nn tng và các b công c lp trình cu min phí. Do
n có th ti v trc tip các b công c lp trình này trên trang ch ca
i phát hành. có th bt u lp trình trên h u hành Android, mt s phn
mm sau s cn phi c t :
1.1. Java Runtime Environment (JRE)
B JRE giúp làm nn t chy các ng dng trên h u hành Android. Ti thi
m hin ti thì b Java Platform mi nht là JRE 7. Chúng ta có th vào trang
ti v t theo
ng dn mnh mà phn m tránh nhn
các tc sau này khi lp trình.
1.2. Eclipse IDE
ng h tr lp trình Java rt tt và tin li. Ti thm này thì bn
Eclipse mi nht là phiên bn INDIGO i dùng có th vào trang :
và tùy theo h u hành s dng mà ti v bn
Eclipse Classic phù hp cho mình. Sau khi ti v, vic cn làm ch là gic
va ti v và khng Eclipse. (Eclipse ch chc t).
1.3. Android SDK
thc hin vic gn kt d liu
khin ListView.
c 2: xây dng mt lp tha k t l hin th
ListView. Thông qua hàm setListAdapt d liu và hin th lên ListView. Ngoài
thit lp x lý khi chn mt mc tin, ta dùng hàm onListItemClick(). Chi tit xin
xem thêm trong phn Ph lc mc 1.1.
2.2. GridView
2.2.1. Yêu cầu đặt ra
S du khin GridView xây dng giao din màn hình ca ng d
Hình 2.2 - Giao diu khin GridView
2.2.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic chính sau : 19
c 1: xây dng lp tha k t lp BaseAdapter và np chng các hàm
thc hin vic gn kt d liu
khin GridView.
c 2: xây dng mt lp tha k t l hin th GridView.
d liu và hin th lên G thit lp
x lý khi chn mt mc tin, ta thit lp setOnItemClickListener() cho GridView và hin
thc hàm onItemClick(). Chi tit xin xem thêm trong phn Ph lc mc 1.2.
2.3. Spinner View, DatePicker
2.3.1. Yêu cầu đặt ra
S du khin Spinner và DatePicker xây dng giao din tra cu thông tin tàu,
i dùng chn ngày tra cu, hp thoi DatePicker s c hin th cho phép
thit lp ngày tháng và chn, lon, hãng vn chuyn qua
Spinner. Giao di gi:
nh n tab trong t o mt lp
tha k t l hin th giao di
u khin
TabHost. Ta có th ch nh ni dung hin th và bing hình n) ca tab
lt thông qua hàm setContent() và setIndicator().
c 3: s dng ln màn hình tra cu thông tàu, xe
liên kt vu khin TabHost. Chi tit xin xem thêm trong
phn Ph lc mc 1.4.
2.5. Gallery và ImageView
2.5.1. Yêu cầu đặt ra
S d u khin Gallery và ImageView xây dng ch i
dùng xem danh sách hình n vn chuyi dùng chn các mc
hình c hin th kích c l trên ImageView.
Giao di
Hình 2.5 - Giao diu khin Gallery và ImageView 22
2.5.2. Giải quyết
thc hic yêu cu trên, chúng ta s thc hic chính sau :
c 1: xây dng lp tha k t lp BaseAdapter và np chng các hàm
thc hin vic gn kt hình u
khin Gallery.
c 2: xây dng mt lp tha k t l hin th Gallery.
Thông qua hàm setAdapter() hình nh và hin th thit lp x
lý khi chn mt mc hình nh ta thit lp hàm setOnItemClickListener() cho Gallery và
hin thc hàm onItemClick(). Chi tit xin xem thêm trong phn Ph lc mc 1.5
3 Kỹ thuật lập trình với SQLite
onUpgrade() có 3 tham s truyn vào lng thuc lp
SQLiteDatabase, s ch phiên b ch phiên bn mi c d lic dùng
cp nh d liu.
getReadableDatabase() tr v m
m m d liu (ch c, không ghi).
getWriteableDatabase() tr v m
m m d liu (cho phép ghi).
thc hin vic truy vn, thêm, xóa, sa d liu ta dùng lp SQLiteDatabase. Mt
s ng dùng ca lp này :
Hàm query() có 7 tham s lt và kt qu tr v ng Cursor.
Ta cn dùng mt s t trên dòng d limo dch chuyn
n dòng cun dòng tip theo
dòng hin tc dòng hin ti, getCount() ly s ng
dòng.
7 :
- String table: tên ca bng s c thc hin truy vn.
- String[] columns: danh sách các ct cn ly. N ly tt c
các ct.
- String u kin lc. N ly tt c.
- String[] selectionArgs : danh sách các giá tr thay th
trong tham s selection.
- u kinh d
GROUP BY trong SQL.
- iu kin lnh dng
HAVING trong SQL.
- String orderBy: sp xnh d ORDER
BY trong SQL.
Hàm insert() có 3 tham s và giá tr tr v là mã ca dòng mi nht
c chèn, nu tht bi tr v -1.