BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC CÔNG NGHỆ TP.HCM
LẬP TRÌNH
TRÊN THIẾT BỊ DI ĐỘNG
Biên Soạn:
ThS. Nguyễn Hà Giang
www.hutech.edu.vn
LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
Ấn bản 2014
MỤC LỤC
I
MỤC LỤC
MỤC LỤC ...................................................................................................................I
HƯỚNG DẪN ............................................................................................................. V
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ....................................... 1
1.1 THIẾT BỊ DI ĐỘNG .............................................................................................. 1
1.1.1 Nền tảng Android ............................................................................................ 2
1.1.2 Nền tảng iOS .................................................................................................. 3
1.1.3 Nền tảng Windows Phone ................................................................................. 4
2.2 ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG ................................................................... 4
1.1.4 Native Application ........................................................................................... 5
1.1.5 Mobile Web Application .................................................................................... 6
1.1.6 Hybrid Application ........................................................................................... 7
1.1.7 Chọn lựa giữa Native, Web hay Hybrid ............................................................... 8
TÓM TẮT .................................................................................................................. 9
BÀI TẬP ................................................................................................................... 9
BÀI 2: PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ........................................................ 10
2.1 HỆ ĐIỀU HÀNH ANDROID ................................................................................. 10
2.1.1 Đặc điểm cơ bản ........................................................................................... 10
2.1.2 Giao diện ..................................................................................................... 11
2.1.3 Ứng dụng ..................................................................................................... 12
2.1.4 Kiến trúc ...................................................................................................... 13
2.1.5 Quản lý bộ nhớ ............................................................................................. 15
2.1.6 Các phiên bản Android ................................................................................... 15
2.1.7 Các thiết bị khác dùng Android........................................................................ 16
2.2 PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ........................................................... 17
2.2.1 Nền tảng xây dựng và phát triển ứng dụng Android ........................................... 18
2.2.2 Công cụ và môi trường để phát triển ứng dụng trên Android ............................... 19
2.2.3 Các bước chuẩn bị môi trường phát triển ứng dụng ............................................ 20
2.3 QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG ANDROID ................................................. 23
2.3.1 Giai đoạn phát triển ....................................................................................... 25
2.3.2 Giai đoạn build & run ứng dụng Android ........................................................... 27
2.3.3 Giai đoạn publish .......................................................................................... 30
2.4 CÁC THÀNH PHẦN TRONG ỨNG DỤNG ANDROID ............................................... 31
2.4.1 Activity ........................................................................................................ 31
2.4.2 Service ........................................................................................................ 31
2.4.3 Content provider ........................................................................................... 32
2.4.4 Broadcast receiver......................................................................................... 32
2.4.5 Đối tượng Intent ........................................................................................... 33
TÓM TẮT ................................................................................................................ 35
II
MỤC LỤC
BÀI TẬP ................................................................................................................. 35
BÀI 3: XÂY DỰNG ACTIVITY ...................................................................................... 36
3.1 ĐẶC ĐIỂM ACTIVITY ......................................................................................... 36
3.2 VÒNG ĐỜI HOẠT ĐỘNG..................................................................................... 36
3.2.1 Tiến trình hoạt động của ứng dụng Android .......................................................36
3.2.2 Activity stack .................................................................................................38
3.2.3 Vòng đời hoạt động của Activity .......................................................................39
3.3 XÂY DỰNG ACTIVITY ........................................................................................ 40
3.3.1 Tạo ứng dụng Android với Activity ....................................................................40
3.3.2 Các thành phần trong cấu trúc project Android ..................................................44
3.3.3 Làm việc với resource .....................................................................................50
3.4 XỬ LÝ SỰ KIỆN ................................................................................................. 55
3.4.1 Đăng ký xử lý sự kiện thông qua anonymous inner class .....................................57
3.4.2 Đăng ký thông qua lớp Activity thực thi giao diện Listener ...................................61
3.4.3 Đăng ký thông qua XML Layout ........................................................................62
TÓM TẮT ................................................................................................................ 65
BÀI TẬP ................................................................................................................. 66
BÀI 4: THIẾT KẾ GIAO DIỆN ...................................................................................... 67
4.1 TỔ CHỨC GIAO DIỆN ......................................................................................... 67
4.2 THIẾT KẾ GIAO DIỆN QUA XML ......................................................................... 70
4.3 CÁC THUỘC TÍNH XML CƠ BẢN .......................................................................... 72
4.4 ANDROIDMANIFEST.XML ................................................................................. 76
4.5 RESOURCE VÀ R.JAVA....................................................................................... 77
4.5.1 Resource .......................................................................................................77
4.5.2 Sử dụng resource trong mã chương trình (java code) .........................................78
4.5.3 Tham chiếu resource trong resource khác .........................................................79
4.5.4 Nhiều phiên bản của resource và tính năng localization .......................................80
4.5.5 Tập tin R.java ................................................................................................80
4.6 LINEARLAYOUT ................................................................................................ 82
4.7 ABSOLUTELAYOUT ........................................................................................... 85
4.8 RELATIVELAYOUT ............................................................................................ 87
4.9 TABLELAYOUT .................................................................................................. 89
4.10 FRAMELAYOUT ............................................................................................... 93
4.11 SCROLLVIEW.................................................................................................. 95
4.12 GRIDLAYOUT.................................................................................................. 97
TÓM TẮT .............................................................................................................. 105
BÀI TẬP ............................................................................................................... 106
BÀI 5: THÀNH PHẦN VIEW - WIDGET ...................................................................... 109
5.1 VIEW CƠ BẢN ................................................................................................. 109
5.2 VIEW NÂNG CAO ............................................................................................ 121
MỤC LỤC
III
5.3 TOAST VÀ DIALOG .......................................................................................... 138
TÓM TẮT .............................................................................................................. 142
BÀI TẬP ............................................................................................................... 142
BÀI 6: THÀNH PHẦN INTENT ................................................................................... 146
6.1 CƠ CHẾ INTENT .............................................................................................. 146
6.2 ĐỐI TƯỢNG INTENT ....................................................................................... 147
6.3 PHÂN LOẠI INTENT ........................................................................................ 149
6.3.1 Intent Filter ................................................................................................. 150
6.3.2 Cách thức xác định thành phần phù hợp với Intent ........................................... 151
6.4 SỬ DỤNG CÁC INTENT .................................................................................... 152
6.4.1 Explicit Intent thực thi Activity ....................................................................... 153
6.4.2 Implicit Intent thực thi Activity ....................................................................... 153
6.5 GỌI HIỂN THỊ ACTIVITY ................................................................................. 154
6.5.1 Gọi hiển thị không có trau đổi dữ liệu.............................................................. 154
6.5.2 Gọi hiển thị và truyền dữ liệu cho Activity con .................................................. 155
6.5.3 Gọi hiển thị và truyền/nhận dữ liệu với Activity con .......................................... 156
TÓM TẮT .............................................................................................................. 159
BÀI TẬP ............................................................................................................... 160
BÀI 7: LẬP TRÌNH SQLITE ....................................................................................... 161
7.1 CƠ SỞ DỮ LIỆU SQLITE ................................................................................... 161
7.1.1 Đặc trưng cơ bản của SQLite.......................................................................... 162
7.1.2 Lập trình với SQLite ...................................................................................... 162
7.1.3 Kiểu dữ liệu lưu trữ ....................................................................................... 163
7.1.4 Các lớp cơ bản trong gói SQLite ..................................................................... 164
7.1.5 Thư mục lưu trữ ........................................................................................... 165
7.2 ỨNG DỤNG MINH HỌA .................................................................................... 166
7.2.1 Tạo lớp kế thừa từ SQLiteOpenHelper ............................................................. 166
7.2.2 Tạo lớp chứa dữ liệu DTO là Student ............................................................... 167
7.2.3 Tạo lớp truy cập dữ liệu ................................................................................ 168
7.2.4 Thao tác insert dữ liệu .................................................................................. 171
7.2.5 Hiển thị danh sách sinh viên .......................................................................... 172
TÓM TẮT .............................................................................................................. 173
BÀI TẬP ............................................................................................................... 173
BÀI 8: ỨNG DỤNG SERVICE ..................................................................................... 175
8.1 THÀNH PHẦN SERVICE ................................................................................... 175
8.1.1 Vòng đời của Service .................................................................................... 176
8.1.2 Khuôn mẫu chung của lớp thực thi Service ...................................................... 177
8.2 ỨNG DỤNG CHƠI NHẠC ................................................................................... 179
TÓM TẮT .............................................................................................................. 184
BÀI TẬP ............................................................................................................... 185
IV
MỤC LỤC
BÀI 9: BROADCAST RECEIVER ................................................................................. 186
9.1 CƠ CHẾ BROADCAST RECEIVER ...................................................................... 186
9.1.1 Phân loại Broadcast ...................................................................................... 187
9.1.2 Tạo một broadcast receiver ........................................................................... 187
9.1.3 Đăng ký xử lý Broadcast Intent ...................................................................... 187
9.1.4 Một số các Broadcast Intent .......................................................................... 188
9.1.5 Phát sinh Custome Broadcast Intent ............................................................... 189
9.2 MINH HỌA BẮT VÀ HIỂN THỊ SMS ................................................................... 190
9.2.1 Cách thức bắt và xử lý SMS ........................................................................... 190
TÓM TẮT .............................................................................................................. 195
BÀI TẬP ............................................................................................................... 196
BÀI 10: THÀNH PHẦN NOTIFICATION ..................................................................... 197
10.1 THÀNH PHẦN NOTIFICATION ....................................................................... 197
10.2 THỂ HIỆN THÔNG ĐIỆP ................................................................................. 198
10.2.1 Dạng bình thường ....................................................................................... 198
10.2.2 Dạng lớn ................................................................................................... 199
10.3 TẠO THÔNG ĐIỆP ......................................................................................... 200
10.3.1 Các nội dung thông điệp bắt buộc ................................................................. 200
10.3.2 Hành động của thông điệp ........................................................................... 201
10.3.3 Tạo thông điệp đơn giản .............................................................................. 201
10.4 SỬ DỤNG THANH TIẾN ĐỘ ............................................................................ 202
10.4.1 Thanh tiến độ với thời gian xác định ............................................................. 202
10.4.2 Thanh chỉ dẫn liên tục ................................................................................. 203
TÓM TẮT .............................................................................................................. 205
BÀI TẬP ............................................................................................................... 205
TÀI LIỆU THAM KHẢO ........................................................................................... 206
HƯỚNG DẪN
V
HƯỚNG DẪN
MÔ TẢ MÔN HỌC
Môn học trang bị các kiến thức về cách thức phát triển ứng dụng trên nền tảng
thiết bị di động. Bao gồm các nhóm kiến thức: giới thiệu các nền tảng hay hệ điều
hành trên thiết bị di động, các công cụ và môi trường để phát triển ứng dụng trên
thiết bị di động thông minh.
NỘI DUNG MÔN HỌC
-
Bài 1. Tổng quan về lập trình trên thiết bị di động: Kiến thức cơ bản về thiết bị di
động và khái niệm cơ bản về môi trường và cách thức lập trình trên thiết bị di
động.
-
Bài 2. Phát triển ứng dụng trên Android: Cung cấp các kiến thức cơ bản về hệ điều
hành Android. Trình bày mô hình quy trình phát triển ứng dụng trên thiết bị di
động hỗ trợ Android. Ngoài ra giới thiệu các thành phần chính của một ứng dụng
Android điển hình.
-
Bài 3. Xây dựng Activity trong ứng dụng Android: Bài học cung cấp kiến thức để
xây dựng ứng dụng có giao diện tương tác với người dùng; cách thức hoạt động
của thành phần Activity trong ứng dụng Android. Làm quen với cách thức sử dụng
layout XML để khởi tạo giao diện của Activity.
-
Bài 4. Thiết kế giao diện: Trong bài này trình bày các loại layout cơ bản và nâng
cao để tạo giao diện cho Activity.
-
Bài 5. Thành phần View-Widget: Cung cấp các loại widget từ cơ bản đến nâng cao,
bao gồm chức năng, cách sử dụng trong thiết kế giao diện và cách tham chiếu để
lập trình trong mã nguồn Java.
-
Bài 6. Thành phần Intent: Bài này cung cấp kỹ thuật để truyền thông và giao tiếp
giữa các thành phần trong ứng dụng Android. Cách thức gọi hiển thị Activity trong
cùng một ứng dụng và gọi các ứng dụng hệ thống cũng được trình bày chi tiết
trong bài học.
VI
-
HƯỚNG DẪN
Bài 7. Lập trình với SQLite: Kỹ thuật để tạo và sử dụng cơ sở dữ liệu SQLite trong
ứng dụng Android.
-
Bài 8. Xây dựng ứng dụng Service: Cung cấp mô hình tổng quát để tạo ứng dụng
Android chạy background, là dạng ứng dụng khi hoạt động không có giao diện
tương tác với người dùng.
-
Bài 9. Lập trình Broadcast Receiver: Cung cấp kỹ thuật đăng ký xử lý các thông
điệp của hệ thống hay của ứng dụng.
-
Bài 10. Thành phần Notification: Cách thức sử dụng Notification trong ứng dụng
Android.
KIẾN THỨC TIỀN ĐỀ
Sinh viên có kiến thức về lập trình hướng đối tượng, lập trình có giao diện tương
tác với người dùng. Ngoài ra có kiến thức về cơ sở dữ liệu quan hệ và lập trình cơ sở
dữ liệu.
YÊU CẦU MÔN HỌC
Người học phải tham dự đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà.
Ngoài ra trước mỗi buổi học, người học phải đọc trước bài học trong bài giảng để nắm
các nội dung chính. Sau mỗi giờ lên lớp, người học cần đọc thêm tài liệu do giảng viên
trực tiếp đứng lớp yêu cầu. Do giới hạn của bài giảng không thể cung cấp hết và chi
tiết các thành phần trong lập trình Android, vì vậy yêu cầu người học cần phải đọc
thêm các tài liệu tham khảo liệt kê trong phần cuối của bài giảng.
CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC
Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và
làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài
học.
Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc
nội dung bài học. Kết thúc mỗi bài học người đọc cần phải làm tối thiểu các bài tập
yêu cầu.
HƯỚNG DẪN
VII
Ngoài ra đây là môn học trong đó có một số bài sẽ có phần thực hành là viết
chương trình, do đó người học cần phải làm những bài tập phần thực hành tương ứng
với những bài học.
PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC
Môn học được đánh giá gồm:
Điểm quá trình: 30%. Hình thức và nội dung do giảng viên quyết định, phù hợp với
quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập.
Điểm thi: 70%. Hình thức thi là báo cáo đồ án môn học.
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
1
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH
TRÊN THIẾT BỊ DI ĐỘNG
Học xong bài này người học cần nắm được các nội dung sau.
-
Tổng quan về các nền tảng trên thiết bị di động thông minh.
-
Các khái niệm cơ bản về phát triển các dạng ứng dụng trên thiết bị di động.
-
Phân biệt được thế nào là Native App, Web App, và Hybrid App trên các thiết bị di
động.
1.1 THIẾT BỊ DI ĐỘNG
Điện thoại di động thông minh hay còn gọi là smart phone thực sự đã mang đến
một cuộc cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số phát
triển với tốc độ chóng mặt như hiện nay.
Nhu cầu sử dụng thiết bị di động đã trở nên rất phổ biến không chỉ ở Việt Nam mà
trên toàn thế giới. Sự tiến bộ vượt bậc của công nghệ đã làm thay đổi hoàn toàn thói
quen cũng như hành vi của con người trong cuộc sống. Chỉ với một chiếc smart phone
người ta có thể thỏa mãn hầu hết các nhu cầu cơ bản như: trò chuyện, gửi tin nhắn,
chơi game, nghe nhạc, lướt web, thanh toán… Thiết bị di động là phân khúc đã có
bước phát triển nhanh chóng trên thị trường. Theo nhiều cuộc nghiên cứu, đến năm
2015, số lượng truy cập Internet từ thiết bị di động sẽ vượt qua truy cập trên máy
tính cá nhân. Trong tương lai, thiết bị di động sẽ trở thành phương tiện giao tiếp và
làm việc chủ yếu của con người. Và phần cốt lõi để tạo ra sức hấp dẫn từ những chiếc
smart phone chính là hệ điều hành và các ứng dụng mà chúng đang chạy.
Do sự phát triển vượt bậc của thiết bị di động nên xu hướng hiện nay các công ty
phát triển phần mềm đã chuyển hướng sang phát triển phần mềm trên thiết bị di
2
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
động. Vì thế trong những năm gần đây nhu cầu nhân lực phát triển ứng dụng trên
thiết bị di động hay smart phone đang rất phát triển.
Hình 1.1: Điện thoại di động thông minh.
Như chúng ta đã biết hiện tại vào thời điểm quý tư năm 2013, có 3 nền tảng di
động đang được dùng khá phổ biến như: Android, iOS, Windows Phone. Theo khảo
sát của IDC vào quý 3 của 2013 thì bảng thị phần các hệ điều hành như sau:
Hình 1.2: Thị phần hệ điều hành di động
1.1.1 Nền tảng Android
Đây là nền tảng phát triển nhanh nhất hiện nay, chiếm thị phần lớn nhất. Đa dạng
về chủng loại và các thiết bị. Được rất nhiều hãng điện thoại lớn chọn để cài đặt cho
thiết bị như Samsung, LG, Sony, HTC…
Đây là hệ điều hành dựa trên nền tảng Linux, là mã nguồn mở do Google quản lý.
Android được tích hợp và hỗ trợ rất nhiều dịch vụ của Google. Các ứng dụng chạy trên
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
3
Android được cung cấp qua Google Play và có thể cài trực tiếp trên máy thông qua
tập tin nén .apk (ứng dụng được viết bằng Java cho Android).
Hình 1.3: Logo của Android.
1.1.2 Nền tảng iOS
iOS là hệ điều hành trên các thiết bị di động của
Apple. Ban đầu hệ điều hành này chỉ được phát triển để
chạy trên iPhone (gọi là iPhone OS), nhưng sau đó đã
được mở rộng để chạy trên các thiết bị của Apple như
iPod Touch, iPad và Apple TV. Ngày 31 tháng 5, 2011,
App Store của Apple chứa khoảng 500.000 ứng dụng
iOS, và được tải về tổng cộng khoảng 15 tỷ lần.
Hiện tại phiên bản iOS 7 được phát hành vào tháng
11/2013. Các thiết bị dùng iOS đều do Apple độc quyền
sản xuất. Các thiết bị dùng iOS luôn có thiết kế mượt
mà, đồ họa lôi cuốn nên luôn được giới công nghệ ưa
chuộng. Chính việc ra đời thiết bị iPhone dùng iOS và
App Store đã đi tiên phong và thúc đẩy việc phát triển
các ứng dụng dành cho các thiết bị di động. Như chúng
ta cũng biết các ứng dụng dành cho iOS được phân
phối đến người dùng thông qua App Store đều có chất
lượng cao, các ứng dụng này đều được kiểm duyệt
trước khi đến tay người dùng iOS.
Hình 1.4: Màn hình Home
Screen iOS 7.
4
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
1.1.3 Nền tảng Windows Phone
Windows Phone là hệ điều hành của Microsoft dành cho
smart phone kế tục nền tảng Windows Mobile, mặc dù chúng
không tương thích với nhau. Khác với Windows Mobile,
Windows Phone tập trung vào sự phát triển của Marketplace nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí
hoặc có phí) tới người dùng. Windows Phone được bán vào
tháng 10 năm 2010 và đầu năm 2011 tại Châu Á.
Phiên bản mới nhất hiện tại là Windows Phone 8. Microsoft
còn đang phát triển bản Windows Phone Apollo Plus, và trong
tương lai có thể còn có Windows Blue (hay có thể là Windows
9) giúp tương thích với hệ điều hành Windows trên máy tính.
Với Windows Phone, Microsoft đã phát triển giao diện người
dùng mới mang tên Modern (trước đây tên là Metro) - tích hợp
Hình 1.5: Home
Screen WP 8.
khả năng liên kết với các phần cứng và phần mềm của hãng
thứ ba một cách dễ dàng.
1.2 ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG
Ngoài ứng dụng được cài đặt sẵn trên
thiết bị di động, thì còn các ứng dụng
được cài đặt thêm vào trong quá trình sử
dụng thiết bị di động. Các ứng dụng này
được bên thứ 3 cung cấp thông qua các
kho ứng dụng di động trên Internet. Mỗi
nền tảng di động sẽ có kho ứng dụng
riêng:
-
Android có Google Play
-
iOS có App Store
-
Windows Phone có Windows Phone
Store
Hình 1.6: Mobile Native – Web.
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
5
Các dạng ứng dụng cài đặt sẵn hay được cài đặt từ các cửa hàng ứng dụng như
trên được gọi là "Native application". Đây là dạng ứng dụng chính trên thiết bị di
động, ứng dụng này có nhiều tính năng mạnh mẽ do tận dụng được tối đa kiến trúc
cũng như là phần cứng của thiết bị.
Các ứng dụng dành cho thiết bị di động có thể chia thành ba dạng như sau:
-
Native application
-
Mobile web application
-
Hybrid application.
1.1.4 Native Application
Native application là dạng ứng dụng được cài đặt trong thiết bị và được truy cập
thông qua các biểu tượng trên màn hình Home Screen của thiết bị. Tùy theo nền tảng
cụ thể mà các ứng dụng này có thể được cài đặt. Ví dụ như ứng dụng iOS thì cài đặt
thông qua App Store của Apple, ứng dụng Android thì được cài đặt thông qua Google
Play. Các dạng ứng dụng này được phát triển chuyên dụng cho một nền tảng xác
định, chúng có thể tận dụng đầy đủ các đặc tính của phần cứng thiết bị; có thể sử
dụng camera, GPS, gia tốc kế, la bàn, danh sách các contact… Ngoài ra có thể sử
dụng hệ thống notification của thiết bị và có thể làm việc offline mà không cần phải
có kết nối đến Internet.
Ứng dụng Native được viết trên các ngôn ngữ đặc biệt hướng tới nền tảng di động
đó, ví dụ Objective-C cho iOS, Java cho Android. Nói chung là các ứng dụng này có
hiệu suất thực thi cao và có mức độ tin cậy cao. Tuy nhiên, kiểu ứng dụng này thì rất
bất tiện do được phát triển bó buộc với một nền tảng, nếu muốn phát triển trên nền
tảng khác thì nhà phát triển phải xây dựng một phiên bản khác và được mã hóa theo
ngôn ngữ phát triển ứng dụng trên nền tảng đó. Đa số các dạng game đồ họa cao đều
phát triển theo kiểu Native Application. Ví dụ như ứng dụng nổi tiếng Candy Crush có
các phiên bản khác nhau chạy trên iOS, Android và Windows Phone.
6
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
Hình 1.7: Ứng dụng Native
1.1.5 Mobile Web Application
Ứng dụng Web không thật sự là ứng dụng, chúng giống như trang Web theo nhiều
phương diện. Giao diện của chúng khá giống với Native Application, tuy nhiên lại chạy
trên nền của trình duyệt và thường được viết bằng HTML5. Người dùng truy cập lần
đầu tiên giống như việc truy cập trang Web bình thường: chuyển tới URL xác định và
sau đó có chức năng cài đặt vào màn hình Home Screen bằng cách tạo bookmark đến
trang đó.
Dạng ứng dụng này thật sự được phổ biến khi HTML5 xuất hiện và các nhà phát
triển nhận ra có thể tạo ra trang Web giống như ứng dụng Native và chạy trên trình
duyệt. Cách thể hiện của Web Application cũng làm người dùng khó phân biệt với
Native Application. Ví dụ như không xuất hiện các button và bar trong trình duyệt
Safari (truy cập từ iPhone). Người dùng có thể kéo ngang để di chuyển qua phần khác
của ứng dụng. Và do cơ chế caching của trình duyệt, có thể đọc được nội dung của
trang tin offline.
Các đặc tính cũng hỗ trợ trong HTML5, như GPS, gọi, camera. Tuy nhiên các tính
năng này cũng không có nhiều ứng dụng cho đến thời điểm này sử dụng. Vẫn còn
nhiều các tính năng Native mà HTML5 không truy cập được (tại thời điểm hiện tại)
như: notification, chạy nền, gia tốc kế.
Nói chung là vẫn còn đang tranh luận về việc có nên chọn Web app để phát triển
cho các ứng dụng trên di động hay không.
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
7
1.1.6 Hybrid Application
Ứng dụng này là sự kết hợp giữa Native và Web, một phần của ứng dụng là dạng
Native, một phần là dạng Web. Chính vì lý do này mà nhiều người nhầm lẫn là dạng
Web Application. Tương tự như Native Application, dạng này triển khai trong kho ứng
dụng và tận dụng các đặc tính của thiết bị. Giống như Web Application, dựa trên
HTML nên được thể hiện trong trình duyệt, thực tế là trình duyệt được nhúng trong
ứng dụng.
Thông thường, các công ty xây dựng các ứng dụng Hybrid như là dạng wrapper
của trang web đã có. Theo cách này, các ứng dụng sẽ có mặt trên kho ứng dụng mà
không cần phải tốn quá nhiều công sức khi phải xây dựng ứng dụng khác. Ứng dụng
hybrid cũng khá phổ biến do cho phép cross-platform. Các thành phần mã HTML có
thể được dùng lại trong các nền tảng di động khác nhau, do đó làm giảm chi phí trong
việc phát triển ứng dụng trên nhiều nền tảng khác nhau. Các công cụ như PhoneGap
hay Sencha Touch cho phép nhà phát triển xây dựng các mã cross-platform, tận dụng
sức mạnh của HTML.
Hình 1.8: Một ứng dụng Hybrid trên hai nền tảng.
8
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
1.1.7 Chọn lựa giữa Native, Web hay Hybrid
Mỗi dạng ứng dụng trong số ba kiểu trên đều có những ưu và khuyết riêng. Có thể
khảo sát theo các tiêu chí sau:
-
Đặc tính của thiết bị: mặc dù ứng dụng Web có thể truy cập một số đặc tính của
thiết bị nhưng chỉ hạn chế, trong khi đó ứng dụng Native và các thành phần Native
trong ứng dụng Hybrid có thể truy cập đầy đủ các đặc tính của thiết bị như GPS,
camera, gesture và notification.
-
Tốc độ thực thi: ứng dụng Native có tốc độ thực thi cao nhất.
-
Cài đặt: việc cài đặt một ứng dụng Native hay Hybrid là rào cản lớn cho người
dùng, họ phải lên kho ứng dụng để tải ứng dụng về và cài đặt. Trong khi với Web
Application thì đơn giản là bookmark lại trang Web trên màn hình Home Screen.
-
Duy trì ứng dụng: đối với ứng dụng Native thì việc duy trì không những khó cho
người dùng mà còn khó cho người phát triển ứng dụng, đặc biệt khi họ phải đối
mặt với nhiều phiên bản trên các nền tảng khác nhau. Các thay đổi sẽ phải đóng
gói lại trong phiên bản mới và đưa lên kho ứng dụng. Trong khi đó việc duy trì ứng
dụng Web hay Hybrid thì đơn giản như việc duy trì trang Web.
-
Giao diện người dùng: ứng dụng Native có ưu thế hơn hai ứng dụng kia về việc xây
dựng giao diện người dùng.
Nhìn chung, các loại ứng dụng đều có ưu và nhược, tùy theo yêu cầu cụ thể của
ứng dụng mà nhà phát triển có thể chọn cho mình kiểu ứng dụng thích hợp nhất.
BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
9
TÓM TẮT
Bài học giới thiệu tổng quan về thiết bị di động cá nhân, điển hình là điện thoại di
động và ngày nay thường được trang bị cấu hình mạnh nên được gọi là điện thoại
thông minh. Do thiết bị này hiện tại khá phổ biến nên việc phát triển ứng dụng trên
thiết bị này được yêu cầu khá nhiều. Bài học giới thiệu các hệ điều hành dành cho
thiết bị di động phổ biến hiện nay là Android, iOS và Windows Phone. Bài học cũng
giới thiệu các dạng ứng dụng cơ bản trên thiết bị di động thông minh. Mỗi loại ứng
dụng có ưu và khuyết điểm riêng, người lập trình cần phải phân biệt rõ để chọn lựa
kiểu ứng dụng thích hợp cho yêu cầu nhất.
BÀI TẬP
Câu 1: Hãy cho biết các nền tảng cho thiết bị di động thông minh hiện nay? Với mỗi
nền tảng hãy cho biết đặc điểm, ưu và khuyết điểm.
Câu 2: Hãy cho biết đặc điểm của ứng dụng Native? Liệt kê 5 ứng dụng dạng này mà
bạn biết?
Câu 3: Hãy cho biết đặc điểm của ứng dụng Mobile Web? Liệt kê các ứng dụng loại
này mà bạn biết?
Câu 4: Hãy cho biết đặc điểm của ứng dụng Hybrid? Cho biết một số các ứng dụng
loại này?
Câu 5: Hãy cho biết các đặc điểm cơ bản của nền tảng iOS?
Câu 6: Cho biết ngôn ngữ chính để phát triển ứng dụng trên nền iOS?
Câu 7: Hãy cho biết các đặc điểm cơ bản của nền tảng Windows Phone?
Câu 8: Cho biết ngôn ngữ và môi trường để phát triển ứng dụng trên Windows
Phone?
Câu 9: Hãy tìm hiểu các ngôn ngữ để phát triển ứng dụng Web?
10
BÀI 2: PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID
BÀI 2: PHÁT TRIỂN ỨNG DỤNG
TRÊN ANDROID
Học xong bài này người học cần nắm được các nội dung sau.
-
Kiến thức cơ bản hệ điều hành Android.
-
Các thành phần chính trong kiến trúc của nền tảng Android.
-
Quy trình phát triển của ứng dụng Android.
-
Công cụ và môi trường để phát triển ứng dụng Android.
-
Các thành phần chính của một ứng dụng Android.
2.1 HỆ ĐIỀU HÀNH ANDROID
2.1.1 Đặc điểm cơ bản
Android là hệ điều hành dựa trên nền tảng Linux và được thiết kế chuyên dành cho
các thiết bị di động có màn hình cảm ứng như: điện thoại di động thông minh (smart
phone), máy tính bảng (tablet) và thiết bị lai giữa smart phone – tablet (gọi là
phablet).
Ban đầu, Android được phát triển bởi Android, Inc., công ty này được Google hỗ
trợ tài trợ về tài chính, và Google chính thức mua lại vào năm 2005. Hệ điều hành
Android ra mắt vào năm 2007 cùng với việc thành lập liên minh thiết bị cầm tay mở
(Open Handset Alliance), đây là 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ới mục tiêu đẩy mạnh các tiêu chuẩn mở dành cho các thiết bị di động.
Chiếc điện thoại thông minh đầu tiên chạy Android được bán vào tháng 10 năm 2008.
Android là hệ điều hành mã nguồn mở, Google phát hành mã nguồn theo giấy
phép Apache. Chính vì mã nguồn mở cùng với giấy phép không có nhiều ràng buộc đã
- Xem thêm -