B GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐI HC M ĐA CHT
BÀI GING
PHÁT TRIN NG DNG CHO THIT
B DI ĐỘNG
Tên hc phn : Lp trình mobile
Trình độ đào tạo : Đại hc chính quy
Dùng cho SV ngành : Công ngh thông tin
Người son : H Th Tho Trang
Hà Ni 11-2013
Phát trin ng dng cho thiết b di động H Th Tho Trang
2
Mc lc
Chương 1. Những kiến thức bản v thiết b di đng lp trình cho thiết b di
động .................................................................................................................................................5
1.1. Các thiết b di động .............................................................................................................5
Phân loi các thiết b di động ..................................................................................................5
Các h điu hành thiết b di động thông minh .........................................................................6
Xu hướng di động hóa ...........................................................................................................11
1.2. Tng quan v lp trình cho thiết b di động ...................................................................13
Chương 2. Nhập môn lp trình Android .......................................................................15
2.1. Thiết b Android - h điu hành và máy o Dalvik ........................................................15
Giao din và ng dng ..........................................................................................................16
Phát trin ................................................................................................................................19
Bo mật và tính riêng tư ........................................................................................................22
Máy o Dalvik .......................................................................................................................24
2.2. Lp trình cho thiết b Android ........................................................................................28
B phát trin phn mm Android (Android SDK) ................................................................28
Môi trường phát trin ............................................................................................................31
Hello Android (Android “Hello world”) ...............................................................................38
Chương 3. Các Activity, Fragment và Intent ................................................................50
3.1. Activity ...............................................................................................................................50
Vòng đời ca Activity ...........................................................................................................50
Ca s hp thoi (Dialog) .....................................................................................................53
3.2. Intent và việc tương tác giữa các Activity .......................................................................56
S dng Intent .......................................................................................................................56
Gii quyết “xung đột Intent” .................................................................................................58
Ly kết qu tr v t Activity thông qua Intent .....................................................................59
Truyn d liu gia các Activity vi Intent ..........................................................................62
S dụng Intent để gi các ng dng sn có ca h điu hành ...............................................63
Đối tượng Intent ....................................................................................................................66
3.3. Fragment............................................................................................................................67
Thêm fragment trong thi gian thc thi (không khai báo trong layout): ...............................71
Vòng đời ca Fragment .........................................................................................................73
Tương tác giữa các fragment .................................................................................................75
Phát trin ng dng cho thiết b di động H Th Tho Trang
3
Chương 4. Giao diện người dùng ca ng dng Android ...........................................77
4.1. View và ViewGroup ..........................................................................................................77
LinearLayout .........................................................................................................................78
AbsoluteLayout .....................................................................................................................83
TableLayout ...........................................................................................................................83
RelativeLayout ......................................................................................................................84
FrameLayout .........................................................................................................................86
ScrollView .............................................................................................................................87
4.2. B cc giao din thích nghi với hướng màn hình (ngang|dc) ................................88
Neo các view con theo các cnh màn hình ............................................................................89
Thay đổi kích thước và v trí .................................................................................................90
Điu khiển hướng ca màn hình ............................................................................................92
4.3. S dụng trình đơn (Menu) .........................................................................................93
Trình đơn chính .....................................................................................................................95
Trình đơn ngữ cnh ...............................................................................................................96
4.4. S dng thanh tác v (Action Bar) ...........................................................................97
4.5. X lý s kiện tương tác với các thành phần đồ ha ...............................................100
Np chng hàm x lý s kin ca Activity .........................................................................100
Đăng ký sự kin cho tng View ..........................................................................................101
Chương 5. Thiết kế giao diện người dùng với các View cơ bản ................................102
5.1. S dụng các View cơ bản trong Android ......................................................................102
TextView .............................................................................................................................102
Button và ImageButton........................................................................................................102
EditText ...............................................................................................................................103
CheckBox ............................................................................................................................103
RadioButton và RadioGroup ...............................................................................................103
ToggleButton .......................................................................................................................103
ProgressBar .........................................................................................................................106
5.2. TimePicker và DatePicker .......................................................................................108
TimePicker ..........................................................................................................................108
DatePicker ...........................................................................................................................111
5.3. Hin th nh vi ImageView và Gallery ..................................................................113
5.4. S dụng ListView để hin th danh sách dài ..........................................................118
ListView ..............................................................................................................................118
Phát trin ng dng cho thiết b di động H Th Tho Trang
4
SpinnerView ........................................................................................................................121
5.5. Hin th ni dung trang web vi WebView ............................................................123
Chương 6. Lưu trữ d liu ............................................................................................127
6.1. Lưu trữ d liu c định vi shared preferences ...........................................................127
6.2. Lưu trữ d liu vi file trên b nh trong và b nh ngoài ........................................132
Làm vic vi file trong b nh trong ...................................................................................132
Làm vic vi file trong b nh ngoài ..................................................................................136
6.3. CSDL SQLite trong ng dng Android ........................................................................137
To lp DBAdapter .............................................................................................................137
Chương 7. Lập trình mng vi Android .....................................................................142
7.1. S dng web services thông qua giao thc HTTP .......................................................142
7.2. Ti d liu nh phân thông qua HTTP ..........................................................................144
7.3. Ti d liu dng text thông qua HTTP .........................................................................146
7.4. Web service vi d liu XML ........................................................................................148
7.5. Web service vi d liu JSON .......................................................................................152
Chương 8. Google Play Store và việc phân phi ng dng .......................................156
8.1. Chun b ng dụng trước khi phân phi ................................................................156
Đánh số phiên bn phn mm .............................................................................................156
Chng thc s cho ng dng Android ................................................................................157
8.2. Phân phi ng dng ..................................................................................................162
S dng công c adb ...........................................................................................................162
Phân phi trên web server ...................................................................................................162
Phân phi trên Google Play Store........................................................................................163
Phát trin ng dng cho thiết b di động H Th Tho Trang
5
Chương 1. Nhng kiến thức bản v thiết b di động lp
trình cho thiết b di động
1.1. Các thiết b di động
Phân loi các thiết b di động
Các thiết b di động đã trải qua rt nhiều năm phát triển vi rt nhiu loi thiết b khác
nhau, có th k đến như máy nhắn tin di động, đin thoại di động, thiết b tr giúp cá nhân (PDA,
Palm...), điện thoi thông minh, máy tính bng... Các thiết b nghe nhìn khác như y nh, máy
quay k thut s, máy nghe nhạc... cũng th được xếp vào "thiết b di động". Tuy nhiên giáo
trình s b qua các thiết b mang tính cht lch s (đã không còn hoặc gần như không còn) và các
thiết b nghe nhìn ch đề cập đến các loi thiết b điện toán cm tay hiện đang phổ biến trên
th trường tiêu dùng. Các thiết b này thường được phân theo các loại như sau:
Đin thoại di động cơ bản (basic phone và featured phones) - là các điện thoại di đng
vi các nh năng bản như nghe, gọi, danh b... mt s ng dng dng sẵn đơn giản. Các
thiết b y thường kích thước nhỏ, màn hình độ phân gii thp, hoc không bàn phím,
pin dùng được lâu, ít kết ni và kh năng phát trin thêm phn mm ca nhà phát trin (gần như)
không có.
Đin thoại di động thông minh (smart phones) - các điện thoại được trang b cu
hình tốt hơn, chạy h điều hành thông minh vi SDK cho phép lp trình viên phát triển đa dạng
các ng dng phc v mi mục đích của cuc sng. Các thiết b này thường kích thước
màn hình lớn hơn nhiều so vi featured phones, cu hình phn cng (CPU, RAM, GPU,
camera...) cao, đa dng các kết ni (Wifi, Bluetooth, 3G/4G, GPS, Glonass, NFC...), th
hoc không nhiu loi cm biến (cm biến gia tc, la bàn, cm biến tim cn, cm biến ánh sáng,
con quay hi chuyn...). Vi ngn trang b, thường được trang b thi pin lớn hơn featured
phones, thời lượng pin của điện thoại thông mình thường rt hn chế so vi featured phones.
Máy tính bng - các thiết b thông minh, tương tự như smart phones nhưng kích
thước màn hình lớn hơn rất nhiều (thông thường t 7"-13"), th hoc không h tr khe
cm SIM-card (phc v vic nhn tin, gọi điện hoc truy cp internet qua WiFi/3G)
Đin thoi thông minh lai máy tính bng (phablet) - là loi thiết b lai gia smartphone
và máy tính bng, v tính năng nó là một smart phone, nhưng được trang b màn hình c lớn hơn
smart phone thông thường nh hơn kích thước ph biến ca màn hình tablet. Màn hình ca
phablet thường kích thước 5.0"-6.9". Trong lp trình, các phablet thường được xếp gp chung
vào smart phones.
Do kh năng lập trình các điện thoại bản rt hn chế (thường phi m vic vi lp
thấp hơn, không bộ công c phát trin tin dng) nên mặc điện thoại bản vn chiếm th
phn ch yếu, ni dung giáo trình "Phát trin ng dụng di động" ch tp trung nhắm đến các thiết
b thông minh (điện thoi thông minh, y tính bảng điện thoi lai). V mt phn mm, các
thiết b này hầu như tương đương, vì vậy giáo trình có th được gi là "Lập trình cho đin thoi
thông minh".