Tải bản đầy đủ (.pdf) (125 trang)

Bài giảng lập trình ứng dụng cho mobile

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.09 MB, 125 trang )

TRƯỜNG ĐẠI HỌC BẠC LIÊU
KHOA CÔNG NGHỆ THÔNG TIN

BÀI GIẢNG

LẬP TRÌNH ỨNG DỤNG CHO
MOBILE

Biên soạn:
Ks. Trần Khánh Luân

LƯU HÀNH NỘI BỘ
Bạc Liêu, tháng 07 / 2014


THÔNG TIN CHUNG
1. Tên môn học: Lập trình ứng dụng cho Mobile.
2. Mã số môn học: TH39A
3. Số tín chỉ: 2; lý thuyết: 20 tiết; thực hành: 20 tiết.
4. Môn học tiên quyết: Cơ sở dữ liệu và Lập trình Java.
5. Thời gian học: năm thứ 3.
6. Mục tiêu của môn học là cung cấp cho người học các kiến thức cơ bản về công nghệ
và kỹ thuật phát triển phần mềm ứng dụng cho thiết bị di động, có kỹ năng lập trình phát
triển phần mềm ứng dụng cho thiết bị di động trên một nền tảng cụ thể (Hệ điều hành
Android). Trên cơ sở đó người học có thể tự nghiên cứu sâu rộng hơn và có thể phát
triển các ứng dụng cho thiết bị di động.
7. Đánh giá môn học
- Kiểm tra giữa học kỳ: Báo cáo bài tập nhóm để lấy điểm kiểm tra giữa học kỳ
sau khi đã hoàn thành được tối thiểu 50% số tiết.
- Thi cuối học kỳ: Trắc nghiệm, thời gian làm bài 45 phút.
Sinh viên phải tham gia đầy đủ 2 đợt kiểm tra giữa học kỳ và thi cuối học kỳ. Và


cách tính điểm cho môn học như sau:
ĐHP = ( Điểm bình quân bài kiểm tra, bài tập.. + điểm thi HP x2 ): 3
8. Chính sách đối với môn học
- Dự lớp: 20 tiết lý thuyết; Thực hành phòng máy: 20 tiết.
- Làm bài tập trên lớp và bài tập nhóm.
- Dụng cụ học tập: tập, viết, máy tính và các thiết bị hỗ trợ khác.
- Dự lớp: ít nhất 75% số tiết qui định của học phần và tích cực tham gia thảo luận
trên lớp


MỤC LỤC
Trang
CHƯƠNG 1: CÁC KHÁI NIỆM CĂN BẢN ............................................................ 1
1.1. Điện toán di động, thiết bị di động và lập trình di động ......................................... 1
1.1.1. Điện toán di động và thiết bị di động.................................................................. 1
1.1.2. Lập trình di động................................................................................................ 1
1.2. Mạng di động ........................................................................................................ 3
1.3. Các nền tảng phát triển công nghệ di động ............................................................ 9
1.3.1. Android .............................................................................................................. 9
1.3.2. iOS..................................................................................................................... 9
1.3.3. Blackberry – RIM ............................................................................................ 10
1.3.4. Windows Mobile / Windows (WP) .................................................................. 10
1.3.5. Symbian OS ..................................................................................................... 11
1.3.6. Các hệ điều hành khác...................................................................................... 11
1.4. Các vấn đề lưu ý khi xây dựng ứng dụng trên điện thoại di động ........................ 11
CHƯƠNG 2: CƠ SỞ PHÁT TRIỂN ỨNG DỤNG ................................................ 17
2.1. Tổng quan về nền tảng Android .......................................................................... 17
2.1.1. Khái niệm về Android ...................................................................................... 17
2.1.2. Tóm tắt lịch sử phát triển của Android ............................................................. 18
2.1.3. Kiến trúc của Android ...................................................................................... 30

2.2. Máy ảo DALVIK ................................................................................................ 34
2.3. Chu kỳ sống của ứng dụng Android .................................................................... 35
2.3.1. Chu kỳ sống của Activity ................................................................................. 35
2.3.2. Chu kỳ sống của ứng dụng ............................................................................... 36
2.3.3. Các tiến trình.................................................................................................... 37
2.4. Công cụ lập trình................................................................................................. 37
2.4.1. Android SDK ................................................................................................... 37
2.4.2. Sử dụng Eclipse để lập trình ............................................................................. 38
2.4.3. Sử dụng Netbeans để lập trình .......................................................................... 39
2.5. Một số thành phần trong Android project ............................................................ 43
2.5.1. Xây dựng một dự án Android đơn giản ............................................................ 43
2.5.2. Cấu trúc lưu trữ trong một dự án Android ........................................................ 45
2.6. Các thành phần trong ứng dụng Android ............................................................. 46
2.6.1. Hoạt động (Activity) ........................................................................................ 46


2.6.2. Service ............................................................................................................. 47
2.6.3. Bộ nhận quảng bá (Broadcast receivers) ........................................................... 48
2.6.4. Content Provider .............................................................................................. 49
2.6.5. Các thành phần kích hoạt (các Intent)............................................................... 49
2.6.6. Tập tin khai báo (manifest) .............................................................................. 50
2.6.7. Bộ lọc Intent .................................................................................................... 51
2.6.8. Notification ...................................................................................................... 52
CHƯƠNG 3: LẬP TRÌNH GIAO DIỆN MỨC CAO ............................................ 54
3.1. Layout................................................................................................................. 55
3.1.1. LinearLayout.................................................................................................... 55
3.1.2. RelativeLayout ................................................................................................. 56
3.1.3. TableLayout ..................................................................................................... 57
3.2. Text Controls ...................................................................................................... 59
3.2.1. TextView ......................................................................................................... 59

3.2.2. EditText ........................................................................................................... 59
3.3. Button Controls................................................................................................... 60
3.3.1. Button .............................................................................................................. 60
3.3.2. ImageButton .................................................................................................... 60
3.3.3. CheckBox ........................................................................................................ 61
3.3.4. RadioGroup và RadioButton ............................................................................ 61
3.4. ImageView ......................................................................................................... 62
3.5. ListView ............................................................................................................. 62
3.6. MapView ............................................................................................................ 64
3.7. Dialog và Toast ................................................................................................... 65
3.7.1. Dialog .............................................................................................................. 65
3.7.2. Toast ................................................................................................................ 67
3.8. Menu .................................................................................................................. 68
3.8.1. Options Menu .................................................................................................. 68
3.8.2. Context Menu .................................................................................................. 69
3.9. Date và Time Controls ........................................................................................ 71
3.9.1. DatePicker ....................................................................................................... 71
3.9. 2. TimePicker...................................................................................................... 71
CHƯƠNG 4: LẬP TRÌNH GIAO DIỆN MỨC THẤP .......................................... 77
4.1. Xử lý sự kiện ...................................................................................................... 77
4.1.1. Xử lý sự kiện trong tương tác trực tiếp ............................................................. 77


4.1.2. Xử lý sự kiện từ phím ...................................................................................... 78
4.2. Lập trình giao diện mức thấp............................................................................... 78
4.2.1. Lập trình với lớp View ..................................................................................... 79
4.2.2. Lập trình luồng trong giao diện mức thấp ......................................................... 82
4.2.3. Lập trình với SurfaceView ............................................................................... 84
CHƯƠNG 5: LƯU TRỮ DỮ LIỆU VỚI SQLITE ................................................. 95
5.1. Tìm hiểu về SQLite ............................................................................................. 95

5.1.1. SQLite là gì ? .................................................................................................. 95
5.1.2. Làm việc với SQLite ........................................................................................ 95
5.2. Lập trình với SQLite ......................................................................................... 100
TÀI LIỆU THAM KHẢO ..................................................................................... 120


Lập trình ứng dụng cho Mobile

CHƯƠNG 1: CÁC KHÁI NIỆM CĂN BẢN
(Lý thuyết 2 tiết)
Mục tiêu: Giới thiệu cho các bạn sinh viên biết và nắm rõ một số khái niệm cơ bản như
điện toán di động, thiết bị di động, mạng đi động và giới thiệu một số nền tảng để phát
triển trên các thiết bị di động.
Yêu cầu: Sinh viên khi lên lớp cần xem trước nội dung bài học trước ở nhà. Sau đó lên
lớp nghe giảng, giải thích và thảo luận để hiểu rõ hơn.
Nội dung:
1.1. Điện toán di động (Mobile computing), thiết bị di động (Mobile devices) và lập
trình di động (Mobile programming).
1.1.1. Điện toán di động (Mobile computing) và thiết bị di động (Mobile devices).
Điện toán di động (Mobile computing) là chức năng tính toán của hệ thống di
động, chức năng tính toán được hiểu bao gồm cả việc lưu trữ và trao đổi thông tin. Điện
toán di động còn được hiểu là sự tương tác của con người với máy tính mà máy tính này
sẽ được di chuyển trong thời gian tương tác. Điện toán di động liên quan đến thông tin
di động, phần cứng di động và phần mềm di động.
Thiết bị di động (Mobile devices) là các hệ thống mà chúng có thể di chuyển dễ
dàng và có khả năng tính toán trong khi chúng đang di động. Một số loại thiết bị di động
như: Laptops, PDAs (Personal Digital Assistants), Mobile phone, TV set-top boxes,
dụng cụ đo lường từ xa trên xe, các thiết bị nhúng, … Các thiết bị di động thường có tài
nguyên phần cứng giới hạn nên chúng còn được gọi là thiết bị hạn chế (constrained
devives).


Hình 1.1 Ảnh minh họa cho các thiết bị di động.
1.1.2. Lập trình di động (Mobile programming).
Kiến trúc tổng quát của một điện thoại di động có thể lập trình:
Ks. Trần Khánh Luân

1


Lập trình ứng dụng cho Mobile

Hình 1.2 Kiến trúc của một điện thoại di động có thể lập trình.
- Nhà sản xuất cung cấp việc truy cập đến platform (với một số hạn chế), việc sử
dụng nhân (kernel) và hardware drivers của họ, bất kỳ điều gì mà có trong phần mềm
có thể được thay đổi trên điện thoại di động, chỉ có platform phần cứng là không đổi.
- Bên cạnh khả năng lập trình, điện thoại di động còn có tính mềm dẻo. Một điện
thoại có nhiều khả năng và chức năng khác nhau có thể được chia thành 3 nhóm: giao
diện người dùng, giao diện truyền thông và các nguồn tài nguyên được cài đặt sẵn (builtin).

Hình 1.3 Những tính năng sẵn có của một chiếc điện thoại di động.
+ Giao diện người dùng (user interface) tiêu biểu bao gồm: the speaker,
microphone, camera, display, built-in sensors and keyboard.
+ Các nguồn tài nguyên cài đặt sẵn bao gồm: the battery, CPU, và bộ nhớ.
+ Giao diện truyền thông tiêu biểu bao gồm: truyền thông tê bào (cellular) và
truyền thông tầm ngắn (short-range).
Lập trình di động là việc xây dựng một phần mềm ứng dụng hay một chức năng
cho một thiết bị di động trên một nền tảng (platform) xác định. Tiến trình bao gồm: thu
thập các yêu cầu, chọn kiến trúc phần mềm di động và mẫu thiết kế (design pattern),
viết chương trình, thử, gở lỗi / sửa chữa, và bảo trì phần mềm.
Ks. Trần Khánh Luân


2


Lập trình ứng dụng cho Mobile
1.2. Mạng di động.
Mạng thiết bị di động hay mạng di động, mạng mobile (tiếng Anh: cellular
network, nghĩa là mạng tế bào) là một mạng vô tuyến bao gồm một số lượng các tế bào
vô tuyến (radio cell), gọi tắt là tế bào, được phục vụ bởi một máy phát (transmitter) cố
định, được gọi là các trạm gốc (cell site hoặc base station). Các tế bào này được dùng
để phủ các vùng khác nhau với mục đích cung cấp vùng phủ sóng trên một diện rộng
hơn gấp rất nhiều lần so với một tế bào. Mạng các tế bào vốn dĩ không đối xứng với một
tập hợp các trạm thu phát vô tuyến chính cố định, mỗi trạm phục vụ một tế bào và một
tập các trạm thu phát phân tán (thường là di động nhưng không phải lúc nào cũng như
vậy) cung cấp dịch vụ cho người sử dụng.
Yêu cầu căn bản đối với một mạng thuộc khái niệm mạng tế bào là một phương
cách để mỗi trạm phân tán phân biệt được các tín hiệu từ máy phát của chính nó với tín
hiệu từ các máy phát khác. Có hai giải pháp thông dụng cho vấn đề
này, FDMA (Frequency Division Mutiple Access - đa truy nhập phân tần số)
và CDMA (Code Division Multiple Access - đa truy nhập phân mã). FDMA hoạt động
được bằng cách sử dụng một tần số khác với tất cả các cell láng giềng. Bằng việc điều
chỉnh theo tần số của một cell được chọn, các trạm khuếch đại có thể tránh được tín hiệu
từ các cell láng giềng. Nguyên lý của CDMA phức tạp hơn nhưng cho kết quả tương tự;
các trạm thu phát phân tán có thể chọn một cell và “nghe” nó. Không thể sử dụng các
phương pháp dồn kênh khác như PDMA (Polarisation Division Multiple Access - đa
truy nhập phân cực) và TDMA (Time Division Multiple Access - đa truy nhập phân theo
thời gian) để tách tín hiệu của một cell với tín hiệu của cell cạnh nó, do hiệu ứng của hai
phương pháp này thay đổi theo vị trí nên việc tách tín hiệu hầu như là không khả thi.
Tuy nhiên, trong một số hệ thống, TDMA được kết hợp với FDMA hoặc CDMA để đem
lại nhiều kênh trong vùng phủ của một tế bào đơn lẻ.

Trong ví dụ của ta về công ty taxi, mỗi thiết bị liên lạc vô tuyến có một nút chỉnh.
Nút này có chức năng chọn kênh và cho phép chỉnh thiết bị vô tuyến theo các tần số
khác nhau. Khi lái xe chạy quanh thành phố, họ chuyển từ kênh này sang kênh khác.
Những người lái xe biết tần số nào phủ khu vực xấp xỉ nào, khi họ không nhận được tín
hiệu từ máy phát, họ thử các kênh khác cho đến khi tìm thấy một kênh hoạt động. Tại
mỗi thời điểm chỉ có một người lái xe nói, khi được điều phối viên mời (kiểu TDMA).
Ví dụ điển hình nhất của một mạng di động là mạng điện thoại di động (ĐTDĐ).
Một ĐTDĐ là một điện thoại có thể mang đi được, cái mà nhận và thực hiện cuộc gọi
qua một trạm cơ sở, hoặc tháp truyền tín hiệu. Các sóng vô tuyến được sử dụng để truyền
tín hiệu tới và truyền tín hiệu đi từ ĐTDĐ. Các vùng địa lý rộng lớn (thể hiện vùng bao
phủ của một nhà cung cấp dịch vụ) được chia thành các cell nhỏ hơn để ngăn chặn việc
mất tín hiệu trên đường ngắm và số lượng lớn các điện thoại hoạt động trong một vùng.
Mỗi cell site bao gồm một vùng từ 0.25 tới 20 dặm hoặc hơn, nhưng thông thường là
khoảng từ 0.5 tới 5 dặm, và chồng chéo lên các cell site khác. Tất cả các cell site được
nối với thiết bị chuyển đổi chuyển mạch (các “switch”), cái mà lần lượt kết nối tới mạng
điện thoại chung hoặc tới chuyển mạch khác của công ty điện thoại. Khi người dùng
điện thoại di chuyển từ miền cell này sang miền cell khác, bộ chuyển mạch tự động yêu
cầu handset và một cell site với một tín hiệu mạnh hơn (được thông báo bở handset) để
chuyển tới một kênh sóng radio mới (tần số). Khi handset phản hồi lại cell site mới, sự
chuyển đổi chuyển mạch kết nối tới cell site mới. Với công nghệ CDMA, tiến trình diễn
ra khác. Các handset đa CDMA chia sẻ một kênh sóng radio riêng; các tín hiệu được
tách ra bằng cách sử dụng một mã giả nhiễu (PN code) riêng đối với mỗi phone. Khi
Ks. Trần Khánh Luân

3


Lập trình ứng dụng cho Mobile
người dùng di chuyển từ một cell tới cell khác, handset thiết lập các kết nối sóng radio
đồng thời với nhiều cell site (hoặc các sector của cùng 1 site). Đây được gọi là “chuyển

mạng mềm” vì nó không giống với công nghệ cellular truyền thống, không có một điểm
nơi mà điện thoại chuyển mạch tới cell mới. Các ĐTDĐ đời mới sử dụng các cell vì tần
số sóng radio là nguồn hạn chế và bị chia sẻ. Các cell-site và handset thay đổi tần số
dưới sự điều khiển của máy tính và sử dụng các máy phát công suất thấp để số giới hạn
các tần số sóng radio có được tái sử dụng bởi rất nhiều người gọi với nhiễu thấp. Cụ thể,
các handset CDMA phải có các điều khiển công suất ổn định tuyệt đối để tránh nhiễu
với các handset khác. Một lợi ích khác là handset sẽ cần ít năng lượng pin hơn. Vì hầu
hết các ĐTDĐ sử dụng công nghệ cellular, bao gồm GSM, CDMA, và AMPS (tương
tự), thuật ngữ “cell phone” có thể được dụng thay thế cho thuật ngữ “mobile phone”.
Tuy nhiên, một ngoại lệ với các ĐTDĐ sử dụng công nghệ cellular là điện thoại vệ tinh.
Các hệ thống cũ ngày trước là nguồn gốc cellular có thể vẫn được sử dụng ở những nơi
thích hợp. Một số các công nghệ mobile số khác nhau bao gồm Global System for
Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division
Multiple Access (CDMA), Evolution-Data Optimized (EV-DO), Enhanced Data Rates
for GSM Evolution (EDGE), 3GSM, Digital Enhanced Cordless Telecommunications
(DECT), Digital AMPS (IS-136/TDMA), và Integrated Digital Enhanced Network
(iDEN).

Hình 1.4 Mô hình mô phỏng một mạng điện thoại di động.
Các thế hệ mạng thông tin di động:
- Mạng thông tin di động 1G là mạng thông tin di động không dây cơ bản đầu
tiên trên thế giới. Nó là hệ thống giao tiếp thông tin qua kết nối tín hiệu analog được
giới thiệu lần đầu tiên vào những năm đầu thập niên 80s. Nó sử dụng các ăng-ten thu
phát sóng gắn ngoài, kết nối theo tín hiệu analog tới các trạm thu phát sóng và nhận tín
hiệu xử lý thoại thông qua các module gắn trong máy di động. Chính vì thế mà các thế
hệ máy di động đầu tiên trên thế giới có kích thước khá to và cồng kềnh do tích hợp
cùng lúc 2 module thu tín hiện và phát tín hiệu như trên.
Ks. Trần Khánh Luân

4



Lập trình ứng dụng cho Mobile

Hình 1.5 Điện thoại đại diện cho thế hệ 1G.
Tiêu biểu cho thế hệ mạng di động 1G là các thiết bị thu phát tin hiệu analog to
và khá kềnh càng. Mặc dù là thế hệ mạng di động đầu tiên với tần số chỉ từ 150MHz
nhưng mạng 1G cũng phân ra khá nhiều chuẩn kết nối theo từng phân vùng riêng trên
thế giới: NMT (Nordic Mobile Telephone) là chuẩn dành cho các nước Bắc Âu và Nga;
AMPS (Advanced Mobile Phone System) tại Hoa Kỳ; TACS (Total Access
Communications System) tại Anh; JTAGS tại Nhật; C-Netz tại Tây Đức; Radiocom
2000 tại Pháp; RTMI tại Ý.
- Mạng thông tin di động 2G là thế hệ kết nối thông tin di động mang tính cải
cách cũng như khác hoàn toàn so với thế hệ đầu tiên. Nó sử dụng các tín hiệu kỹ thuật
số thay cho tín hiệu analog của thế hệ 1G và được áp dụng lần đầu tiên tại Phần Lan bởi
Radiolinja (hiện là nhà cung cấp mạng con của tập đoàn Elisa Oyj) trong năm 1991.
Mạng 2G mang tới cho người sử dụng di động 3 lợi ích tiến bộ trong suốt một thời gian
dài: mã hoá dữ liệu theo dạng kỹ thuật số, phạm vi kết nối rộng hơn 1G và đặc biệt là
sự xuất hiện của tin nhắn dạng văn bản đơn giản – SMS. Theo đó, các tín hiệu thoại khi
được thu nhận sẽ đuợc mã hoá thành tín hiệu kỹ thuật số dưới nhiều dạng mã hiệu
(codecs), cho phép nhiều gói mã thoại được lưu chuyển trên cùng một băng thông, tiết
kiệm thời gian và chi phí. Song song đó, tín hiệu kỹ thuật số truyền nhận trong thế hệ
2G tạo ra nguồn năng lượng sóng nhẹ hơn và sử dụng các chip thu phát nhỏ hơn, tiết
kiệm diện tích bên trong thiết bị hơn, …

Hình 1.6 Điện thoại đại diện cho thế hệ 2G.
Mạng 2G chia làm 2 nhánh chính: nền TDMA (Time Division Multiple Access)
và nền CDMA cùng nhiều dạng kết nối mạng tuỳ theo yêu cầu sử dụng từ thiết bị cũng
như hạ tầng từng phân vùng quốc gia:
Ks. Trần Khánh Luân


5


Lập trình ứng dụng cho Mobile
+ GSM (TDMA-based), khơi nguồn áp dụng tại Phần Lan và sau đó trở
thành chuẩn phổ biến trên toàn 6 Châu lục. Và hiện nay vẫn đang được sử dụng
bởi hơn 80% nhà cung cấp mạng di động toàn cầu.
+ CDMA2000 – tần số 450 MHZ cũng là nền tảng di động tương tự GSM
nói trên nhưng nó lại dựa trên nền CDMA và hiện cũng đang được cung cấp bởi
60 nhà mạng GSM trên toàn thế giới.
+ IS-95 hay còn gọi là cdmaOne, (nền tảng CDMA) được sử dụng rộng
rãi tại Hoa Kỳ và một số nước Châu Á và chiếm gần 17% các mạng toàn cầu.
Tuy nhiên, tính đến thời điểm này thì có khoảng 12 nhà mạng đang chuyển dịch
dần từ chuẩn mạng này sang GSM (tương tự như HT Mobile tại Việt Nam vừa
qua) tại: Mexico, Ấn Độ, Úc và Hàn Quốc.
+ PDC (nền tảng TDMA) tại Japan
+ iDEN (nền tảng TDMA) sử dụng bởi Nextel tại Hoa Kỳ và Telus
Mobility tại Canada.
+ IS-136 hay còn gọi là D-AMPS, (nền tảng TDMA) là chuẩn kết nối phổ
biến nhất tính đến thời điểm này và được cung cấp hầu hết tại các nước trên thế
giới cũng như Hoa Kỳ.
- Mạng thông tin di động 2.5G là thế hệ kết nối thông tin di động bản lề giữa 2G
và 3G. Chữ số 2.5G chính là biểu tượng cho việc mạng 2G được trang bị hệ thống
chuyển mạch gói bên cạnh hệ thống chuyển mạch theo kênh truyền thống. Nó không
được định nghĩa chính thức bởi bất kỳ nhà mạng hay tổ chức nào và chỉ mang mục đích
duy nhất là tiếp thị công nghệ mới theo mạng 2G.

Hình 1.7 Điện thoại đại diện cho thế hệ 2.5G
Mạng 2.5G cung cấp một số lợi ích tương tự mạng 3G và có thể dùng cơ sở hạ

tầng có sẵn của các nhà mạng 2G trong các mạng GSM và CDMA. Và tiến bộ duy nhất
chính là GPRS - công nghệ kết nối trực tuyến, lưu chuyển dữ liệu được dùng bởi các
nhà cung cấp dịch vụ viễn thông GSM. Bên cạnh đó, một vài giao thức, chẳng hạn như
EDGE cho GSM và CDMA2000 1x-RTT cho CDMA, có thể đạt được chất lượng gần
như các dịch vụ cơ bản 3G (bởi vì chúng dùng một tốc độ truyền dữ liệu chung là 144
kbit/s), nhưng vẫn được xem như là dịch vụ 2.5G (hoặc là nghe có vẻ phức tạp hơn là
2.75G) bởi vì nó chậm hơn vài lần so với dịch vụ 3G thực sự.
Ks. Trần Khánh Luân

6


Lập trình ứng dụng cho Mobile
EDGE (Enhanced Data Rates for GSM Evolution), hay còn gọi là EGPRS, là một
công nghệ di động được nâng cấp từ GPRS - cho phép truyền dự liệu với tốc độ có thể
lên đến 384 kbit/s dành cho người dùng cố định hoặc di chuyển chậm, 144kbit/s cho
người dùng di chuyển với tốc độ cao. Trên đường tiến đến 3G, EDGE được biết đến như
là công nghệ 2.75G. Thực tế bên cạnh điều chế GMSK, EDGE dùng phương thức điều
chế 8-PSK để tăng tốc độ dữ liệu truyền. Chính vì thế, để triển khai EDGE, các nhà cung
cấp mạng phải thay đổi trạm phát sóng BTS cũng như là thiết bị di động so với mạng
GPRS.
- Mạng thông tin di động 3G là thế hệ truyền thông di động thứ ba, tiên tiến hơn
hẳn các thế hệ trước đó. Nó cho phép người dùng di động truyền tải 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, âm thanh, video
clips, ...).

Hình 1.8 Điện thoại đại diện cho thế hệ 3G.
Với 3G, di động đã có thể truyền tải dữ liệu trực tuyến, online, chat, xem tivi theo
kênh riêng, ... Trong số các dịch vụ của 3G, điện thoại video thường được miêu tả như
là lá cờ đầu. Giá tần số cho công nghệ 3G rất đắt tại nhiều nước, nơi mà các cuộc bán

đầu giá tần số mang lại hàng tỷ Euro cho các chính phủ. Bởi vì chi phí cho bản quyền
về các tần số phải trang trải trong nhiều năm trước khi các thu nhập từ mạng 3G đem
lại, nên một khối lượng vốn đầu tư khổng lồ là cần thiết để xây dựng mạng 3G. Nhiều
nhà cung cấp dịch vụ viễn thông đã rơi vào khó khăn về tài chính và điều này đã làm
chậm trễ việc triển khai mạng 3G tại nhiều nước ngoại trừ Nhật Bản và Hàn Quốc, nơi
yêu cầu về bản quyền tần số được bỏ qua do phát triển hạ tâng cơ sở IT quốc gia được
đặt lên làm vấn đề ưu tiên nhất. Và cũng chính Nhật Bản là nước đầu tiên đưa 3G vào
khai thác thương mại một cách rộng rãi, tiên phong bởi nhà mạng NTT DoCoMo. Tính
đến năm 2005, khoảng 40% các thuê bao tại Nhật Bản là thuê bao 3G, và mạng 2G đang
dần dần đi vào lãng quên trong tiềm thức công nghệ tại Nhật Bản.
Công nghệ 3G cũng được nhắc đến như là một chuẩn IMT-2000 của Tổ chức
Viễn thông Thế giới (ITU). Ban đầu 3G được dự kiến là một chuẩn thống nhất trên thế
giới, nhưng trên thực tế, thế giới 3G đã bị chia thành 4 phần riêng biệt:
+ UMTS (W-CDMA)
* UMTS (Universal Mobile Telecommunication System), dựa trên công
nghệ truy cập vô tuyến W-CDMA, là giải pháp nói chung thích hợp với các nhà
khai thác dịch vụ di động (Mobile network operator) sử dung GSM, tập trung chủ
Ks. Trần Khánh Luân

7


Lập trình ứng dụng cho Mobile
yếu ở châu Âu và một phần châu Á (trong đó có Việt Nam). UMTS được tiêu
chuẩn hóa bởi tổ chức 3GPP, cũng là tổ chức chịu trách nhiệm định nghĩa chuẩn
cho GSM, GPRS và EDGE.
* FOMA, thực hiện bởi công ty viễn thông NTT DoCoMo Nhật Bản năm
2001, được coi như là một dịch vụ thương mại 3G đầu tiên. Tuy là dựa trên công
nghệ W-CDMA, nhưng công nghệ này vẫn không tương thích với UMTS (mặc
dù có các bước tiếp hiện thời để thay đổi lại tình thế này).

+ CDMA 2000
* Là thế hệ kế tiếp của các chuẩn 2G CDMA và IS-95. Các đề xuất của
CDMA2000 được đưa ra bàn thảo và áp dụng bên ngoài khuôn khổ GSM tại Mỹ,
Nhật Bản và Hàn Quốc. CDMA2000 được quản lý bởi 3GPP2 – một tổ chức độc
lập với 3GPP. Và đã có nhiều công nghệ truyền thông khác nhau được sử dụng
trong CDMA2000 bao gồm 1xRTT, CDMA2000-1xEV-DO và 1xEV-DV.
* CDMA 2000 cung cấp tốc độ dữ liêu từ 144 kbit/s tới trên 3 Mbit/s.
Chuẩn này đã được chấp nhận bởi ITU.
* Người ta cho rằng sự ra đời thành công nhất của mạng CDMA-2000 là
tại KDDI của Nhận Bản, dưới thương hiệu AU với hơn 20 triệu thuê bao 3G. Kể
từ năm 2003, KDDI đã nâng cấp từ mạng CDMA2000-1x lên mạng CDMA20001xEV-DO với tốc độ dữ liệu tới 2.4 Mbit/s. Năm 2006, AU nâng cấp mạng lên
tốc độ 3.6 Mbit/s. SK Telecom của Hàn Quốc đã đưa ra dịch vụ CDMA2000-1x
đầu tiên năm 2000, và sau đó là mạng 1xEV-DO vào tháng 2 năm 2002.
+ TD-SCDMA: Chuẩn được ít được biết đến hơn là TD-SCDMA, được
phát triển riêng tại Trung Quốc bởi công ty Datang và Siemens.
+ Wideband CDMA: Hỗ trợ tốc độ giữa 384 kbit/s và 2 Mbit/s. Giao thức
này được dùng trong một mạng diện rộng WAN, tốc độ tối đa là 384 kbit/s. Khi
nó dùng trong một mạng cục bộ LAN, tốc độ tối đa chỉ là 1,8 Mbit/s. Chuẩn này
cũng được công nhận bởi ITU.
- Mạng thông tin di động 4G hay còn có thể viết là 4-G, là công nghệ truyền
thông không dây thế hệ thứ tư, cho phép truyền tải dữ liệu với tốc độ tối đa trong điều
kiện lý tưởng lên tới 1 - 1,5 Gbit/s. Cách đây không lâu thì một nhóm gồm 26 công ty
trong đó có Vodafone (Anh), Siemens (Đức), Alcatel (Pháp), NEC và DoCoMo (Nhật
Bản), đã ký thỏa thuận cùng nhau phát triển một tiêu chí cao cấp cho ĐTDĐ, một thế hệ
thứ 4 trong kết nối di động - đó chính là nền tảng cho kết nối 4G sắp tới đây.
Công nghệ 4G được hiểu là chuẩn tương lai của các thiết bị không dây. Các
nghiên cứu đầu tiên của NTT DoCoMo cho biết, điện thoại 4G có thể nhận dữ liệu với
tốc độ 100 Mbit/s khi di chuyển và tới 1 Gbit/s khi đứng yên, cũng như cho phép người
sử dụng có thể tải và truyền lên các hình ảnh, video clips chất lượng cao. Mạng điện
thoại 3G hiện tại của DoCoMo có tốc độ tải là 384 Kbit/s và truyền dữ liệu lên với tốc

độ 129 Kbit/s. NTT DoCoMo cũng hy vọng trong vòng 2010 - 2012 sẽ có thể đưa mạng
4G vào kinh doanh.
Và trong tương lai, mạng di động LTE Advance, WiMax (nhánh khác của 4G),
… sẽ là những thế hệ tiến bộ hơn nữa, cho phép người dùng truyền tải các dữ liệu HD,
xem tivi tốc độ cao, trải nghệm web tiên tiến hơn cũng như mang lại cho người dùng
nhiều tiện lợi hơn nữa từ chính chiếc di động của mình.
Ks. Trần Khánh Luân

8


Lập trình ứng dụng cho Mobile
1.3. Các nền tảng phát triển công nghệ di động.
1.3.1. Android
Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số
đầu phát HD, HD Player, Tivi) phát triển bởi Google và dựa trên nền tảng Linux. Trước
đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua
lại vào năm 2005).
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt
của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết
bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm
mục đích tạo nên một chuẩn mở cho điện thoại di động trong tương lai.

Hình 1.9 Biểu tượng cho nền tảng Android.
1.3.2. 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 đó nó đã
đượ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 năm 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. Trong quý 4 năm 2010, có khoảng 26% điện

thoại thông minh chạy hệ điều hành iOS, sau hệ điều hành Android của Google và
Symbian của Nokia.
Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay. Người dùng có
thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằng tay trên màn hình
cảm ứng của các thiết bị của Apple.
Phiên bản mới nhất của iOS là 7.0 ra ngày 18 tháng 9 năm 2013, dành cho tất cả
các thiết bị kể từ iPhone 4, iPod 5, iPad 2 trở lên.

Hình 1.10 Dòng điện thoại của hãng Apple.
Ks. Trần Khánh Luân

9


Lập trình ứng dụng cho Mobile
1.3.3. Blackberry - RIM
BlackBerry OS là nền tảng phần mềm tư hữu do Research In Motion phát triển
cho dòng sản phẩm cầm tay BlackBerry. BlackBerry OS cung cấp khả năng đa nhiệm,
và được thiết kế cho các thiết bị sử dụng phương pháp nhập đặc biệt, thường là trackball
hoặc màn hình cảm ứng. Hệ điều hành được hỗ trợ MIDP 1.0 và WAP 1.2. Các phiên
bản trước đó cho phép đồng bộ hóa không dây thư điện tử và lịch với Microsoft
Exchange Server, và với cả Lotus Domino. Phiên bản OS 4 hiện tại hỗ trợ MIDP 2.0, có
khả năng kích hoạt không dây hoàn toàn và đồng bộ thư điện tử, lịch, công việc, ghi chú
và danh bạ với Exchange, và khả năng hỗ trợ Novell GroupWise, Lotus Notes khi kết
hợp với BlackBerry Enterprise Server.

Hình 1.11 Dòng điện thoại của Blackberry.
1.3.4. Windows Mobile / Windows (WP)
Giám đốc điều hành của Nokia – ngài Stephen Elop đã từng đứng lên khẳng định
Windows Phone (WP) chính là nền tảng chính của Nokia chứ không phải Android hay

MeeGo.

Hình 1.12 Dòng điện thoại của Nokia.
Windows Phone được Microsoft phát triển để thay thế cho hệ điều hành di
động Windows Mobile trước đây. Windows Phone bắt đầu từ phiên bản thứ 7 (khi ra
mắt, Microsoft gọi nó là Windows Phone 7). Được biết, do phát triển trong thời gian
ngắn nên Windows Phone rất hạn chế trong việc tương thích ngược với các nền tảng
Windows Mobile trước đó. Một lý do nữa để Microsoft không quan tâm nhiều đến nền
tảng cũ đó là vì màn hình cảm ứng bằng ngón tay ngày càng phổ biến hơn trên điện thoại
và Windows Mobile vốn thiết kế cho bút stylus đã trở nên rất lỗi thời.
Windows bắt đầu được ra mắt chính thức vào tháng 2/2010 ở triển lãm Mobile
World Congress diễn ra ở Barcelona, Tây Ban Nha. Đến tháng 10 cùng năm, CEO Steve
Ks. Trần Khánh Luân

10


Lập trình ứng dụng cho Mobile
Ballmer của Microsoft ra mắt 10 thiết bị Windows Phone đầu tiên đến từ HTC, Dell,
Samsung, LG. Vài tuần sau, máy bắt đầu được bán ra ở Mỹ và Châu Âu. Tháng 5 cùng
năm, Microsoft tuyên bố hợp tác với một số nhà sản xuất khác là Acer, Fujitsu và ZTE.
Một cột mốc quan trọng của Windows Phone đó là sự hợp tác giữa Microsoft với
Nokia sau khi hãng điện thoại Phần Lan này quyết định không còn tập trung vào điện
thoại Symbian nữa. Kết quả của sự hợp tác này đó là dòng Nokia Lumia ra đời ở sự
kiện Nokia World 2011. Đến CES 2012, Nokia tiếp tục ra mắt hai máy Lumia mới nữa.
Việc tích hợp các dịch vụ củaMicrosoft (Bing, Bing Maps, Windows Phone
Marketplace,…) lên thiết bị Nokia được cho là sẽ tạo nên lợi thế cạnh tranh cho
WIndows Phone với hai đối thủ lớn hiện thời là iOS và Android.
Microsoft đang kết hợp với các nhà cung cấp thiết bị để tung ra Windows Phone
8. Theo Microsoft, nền tảng Windows Phone 8 sẽ hỗ trợ tốt các bộ xử lý lõi đôi, tận

dụng tốt sức mạnh của các bộ xử lý này, cũng như chia sẻ khả năng thực hiện linh hoạt
giữa các lõi của chip.
1.3.5. Symbian OS
Symbian là hệ điều hành được viết và sử dụng cho một số điện thoại di động.
Symbian được sử dụng nhiều nhất bởi các điện thoại cao cấp của Nokia. Hãng này đã
rất thành công với hệ điều hành này và có thời đã giúp Symbian trở thành hệ điều hành
dành cho thiết bị di động phổ biến nhất thế giới. Tuy nhiên hiện nay (tính đến tháng
9/2012), Symbian đã đi vào giai đoạn thoái trào do không cạnh tranh nổi với các hệ điều
hành mới tân tiến hơn như iOS, Android, ... Số người dùng càng ngày càng ít khiến thị
phần Symbian thu hẹp và trở nên khiêm tốn so với các nền tảng khác.
Đến ngày 25/01/2013, tập đoàn Nokia đã chính thức khai tử nền tảng Symbian
sau khi hãng này "mua đứt" Symbian từ tháng 6/2008. Thiết bị cuối cùng chạy Symbian
là Nokia 808 pureview.
1.3.6. Các hệ điều hành khác
Ngoài các hệ điều hành trên còn có một số các hãng nhỏ cũng tự tạo ra cho riêng
mình một hệ điều hành riêng. Nhưng đây là các hệ điều hành không được sự ủng hộ lớn
từ các hãng sản xuất phần cứng dẫn tới sự manh nha và phát riển không chính thống, hỗ
trợ các nhà phát triển không tốt. Ứng dụng thực tiễn và quá trình phát triển sản phẩm
không cao chúng tôi sẽ không đề cập về các sản phẩm này.
1.4. Các vấn đề lưu ý khi xây dựng ứng dụng trên điện thoại di động.
Khi xây dựng các ứng dụng cần lưu ý:
- Đồ họa là đắc tiền, bởi vì tốn nhiều bộ nhớ, CPU phải thực hiện nhiều tác vụ,
tốn nhiều thời gian và năng lượng nguồn pin. Vì vậy cần cố gắng tránh dùng đồ họa khi
có thể.
- Dùng sự kiện thay cho dò tìm khi có thể. Chế độ dò tìm sẽ phát sinh nhiều tốn
kém như dùng đồ họa. Ngủ và khai báo sự kiện là hai đặc tính có sẵn để người lập trình
eVC tạo ra ứng dụng có hiệu quả.
- Thật tiết kiệm bộ nhớ RAM trong các ứng dụng. Bộ nhớ ROM và RAM được
quản lý bởi một bộ phần cứng trên thiết bị di động. Ngày nay, hầu hết các thiết bị di
động, không có tập tin quản lý phần cứng (hard driver).


Ks. Trần Khánh Luân

11


Lập trình ứng dụng cho Mobile
- Vì RAM và ROM thường cùng chia sẻ các phần cứng giống nhau, sự tiết kiệm
dữ liệu bền vững hoặc dữ liệu điều khiển trong bộ nhớ cũng có hiệu lực giãm sự tiêu thụ
điện năng.
- Có vài hàm hỗ trợ cho nhà phát triển ứng dụng theo dõi trạng thái tiêu thụ điện.
Ta có thể sử dụng các hàm này trong 2 cách:
+ Sử dụng các hàm này trong khi thiết kế và thử, để thấy sự tiêu thụ năng
lượng trong một chu kỳ chạy của ứng dụng.
+ Dùng trạng thái công suất (Ví dụ: Dùng hàm GetPowerStatusEx trong
Windows Mobile) để thay đổi hoạt động của ứng dụng. Ví dụ, nếu trạng thái pin
yếu được tách, ta muốn thực hiện việc bảo toàn dữ liệu kết nối mạng hay nội bộ
và đóng ứng dụng sau khi cảnh báo.
- Bảo đảm dọn sạch bộ nhớ bất cứ khi nào đặt thiết bị vào trạng thái ngủ
(hibernation), dùng sự kiện WN_HIBERNATE (Ví dụ Windows Mobile). Nếu bộ nhớ
không được dọn sạch, trong trường hợp này, sẽ dẫn đến bộ nhớ bị rỉ và ứng dụng không
ổn định.
Tóm tắt chương: Chương này giới thiệu đến người đọc một số nội dung và các khái
niệm về điện toán di động (Mobile computing), thiết bị di động (Mobile devices) và lập
trình di động (Mobile programming); Mạng di động; Các nền tảng phát triển công nghệ
di động và các vấn đề lưu ý khi xây dựng ứng dụng trên điện thoại di động.
Câu hỏi ôn tập:
Câu 1: Kích thước của sự di động (Dimensions of mobility): là tập hợp các tính chất để
phân biệt hệ thống tính toán di động và hệ thống tính toán cố định. Bao gồm:
(A) Người dùng di động là có thể hoặc đang di chuyển giữa vị trí được biết hay

các vị trí không biết; Người dùng di động thường đòi hỏi ở mức cao sự tức thì và đáp
ứng nhanh từ hệ thống; Người dùng di động có thể đòi hỏi truy xuất đến hệ thống mọi
nơi và mọi lúc.
(B) Sự nhận biết vị trí; Sự hạn chế của kết nối mạng của dịch vụ; Sự hạn chế về
khả năng của thiết bị; Sự hỗ trợ về mặt đa dạng của giao diện người dùng; Sự tăng nhanh
về số lượng platform.
(C) Sự nhận biết vị trí; Chất lượng kết nối mạng của dịch vụ (QOS); Sự hạn chế
về khả năng của thiết bị; Sự hạn chế về nguồn điện; Sự hỗ trợ về mặt đa dạng của giao
diện người dùng; Sự tăng nhanh về số lượng platform; Sự giao dịch tích cực (Active
transaction).
(D) Sự nhận biết vị trí; Sự hạn chế về kết nối mạng của dịch vụ (ROS); Sự hạn
chế về khả năng của thiết bị; Sự hạn chế về nguồn điện; Sự hỗ trợ về mặt đa dạng của
giao diện người dùng; Sự giao dịch tích cực (Active transaction).
Câu 2: Sự thay đổi chính từ thê hệ 2G sang 3G nằm trong:
(A) Lớp nghi thức (protocol layers).
(B) Lớp mạng (Network layer).
(C) Lớp vận chuyển (Transport layer).
(D) Lớp trình bày (Presentation layer)

Ks. Trần Khánh Luân

12


Lập trình ứng dụng cho Mobile
Câu 3: Các dịch vụ di động được phân làm 2 loại: dịch vụ các nhân và dịch vụ cộng
đồng (personal and cummunity services). Dịch vụ SMS và chat là:
(A) Các dịch vụ cá nhân.
(B) Các dịch vụ cộng đồng.
(C) SMS là dịch vụ các nhân, chat là dịch vụ cộng đồng.

(D) Chat là dịch vụ các nhân, SMS là dịch vụ cộng đồng.
Câu 4: Kỹ thuật W-CDMA (Wideband Code Division Multiple Access) đã được dùng
từ thế hệ:
(A) 2 G

(B) 2.5 G

(C) 3 G

(D) 4G

Câu 5: Bluetooth được thiết kế như một công nghệ giá thấp với năng lượng tiêu thụ thấp
cho truyền thông tầm ngắn và có thể gặp trên các điện thoại di động. Công suất tiêu thụ
được hướng đến 3 loại công suất tùy thuộc khoảng cách truyền xa nhất là 1m, 10m và
100m. Ta có thể mở rộng khoảng cách tối đa bằng cách:
(A) Tăng công suất tiêu thụ.
(B) Kết nối trong nhóm piconet.
(C) Kết nối thành scatternet.
(D) Không thể tăng được.
Câu 6: Theo khái niệm trừu tượng (abstraction) trong lập trình thì:
(A) Những môi trường phát triển phần mềm (SDE) là những thành phần trừu
tượng.
(B) Menu, database, file systems, related runtime libraries, giao diện đồ họa
người dùng (graphical user interface) là những thành phần trừu tượng.
(C) Những môi trường tích hợp (IDE) là những thành phần trừu tượng.
(D) Các câu trả lời đều đúng.
Câu 7: Nền tảng (platform) là:
(A) Sự liên kết giữa hệ điều hành và các trừu tượng.
(B) Sự liên kết giữa phần cứng, hệ điều hành, ngôn ngữ lập trình và các trừu
tượng.

(C) Sự liên kết giữa phần cứng và hệ điều hành.
(D) Sự liên kết giữa hệ điều hành, ngôn ngữ lập trình và các trừu tượng.
Câu 8: Môi trường phát triển phần mềm (SDE) là một tổng thể mà nó cung cấp toàn bộ
các phương tiện phát triển phần mềm, bao gồm:
(A) Môi trường phát triển tích hợp (IDE); Công cụ quản lý cần thiết;
(B) Bộ biên tập mã nguồn (source code editor); Trình biên dịch (compiler)
và/hoặc trình thông dịch (interpreter); Các công cụ tự động xây dựng ứng dụng (build
automation tools); Trình gỡ lỗi (debugger).

Ks. Trần Khánh Luân

13


Lập trình ứng dụng cho Mobile
(C) Môi trường phát triển tích hợp (IDE); Công cụ quản lý cần thiết; Công cụ mô
hình hóa thiết kế; Công cụ tạo ra văn bản, tài liệu; Công cụ phân tích mã; Công cụ tra
cứu mã; Công cụ kiểm tra mã; Công cụ dò tìm và báo sự cố.
(D) Khung (Frameworks); Công cụ quản lý cần thiết; Ngôn ngữ lập trình; Các
trừu tượng.
Câu 9: Môi trường phát triển tích hợp (IDE) là một phần mềm ứng dụng mà nó cung
cấp toàn bộ các phương tiện phát triển phần mềm, bao gồm:
(A) Bộ biên tập mã nguồn (source code editor); Trình biên dịch (compiler)
và/hoặc trình thông dịch (interpreter); Các công cụ tự động xây dựng ứng dụng (build
automation tools); Trình gỡ lỗi (debugger).
(B) Môi trường phát triển phần mềm (SDE); Công cụ quản lý cần thiết;
(C) Platform; Công cụ quản lý cần thiết; Ngôn ngữ lập trình; Các trừu tượng.
(D) Khung (Frameworks); Công cụ quản lý cần thiết; Ngôn ngữ lập trình; Các
trừu tượng.
Câu 10: Khung (Frameworks) là:

(A) Platform; Công cụ quản lý cần thiết; Ngôn ngữ lập trình; Các trừu tượng.
(B) Một môi trường tích hợp (IDE) trên một platform với các công cụ tương ứng.
(C) Môi trường phát triển phần mềm (SDE); Công cụ quản lý cần thiết;
(D) Môi trường phát triển tích hợp (IDE); Công cụ quản lý cần thiết;
Câu 11: Máy ảo Java, JVM (Java Virtual Machine), là:
(A) là một phần mềm mô phỏng giúp thử nghiệm các ứng dụng trước khi cho
chạy trên thiết bị thật..
(B) là bộ biên dịch mã bytecode, nó có nhiệm vụ chuyển mã bytecode của chương
trình Java thành ngôn ngữ máy để chạy trên thiết bị di động.
(C) là bộ chuẩn hóa các chương trình Java cho các thiết bị di động khác nhau có
thể có bộ vi xử lý và tập lệnh khác nhau.
(D) Tất cả các câu trả lời khác đều chưa đầy đủ hoặc không đúng.
Câu 12: Máy ảo Java, JVM (Java Virtual Machine) có chức năng và đặc điểm sau:
(A) là một trừu tượng mà nó giúp người viết phần mềm ứng dụng không cần quan
tâm đến các đặc tính phần cứng của thiết bị di động, nhờ đó việc viết phần mềm ứng
dụng trở nên dễ dàng và nhanh chóng hơn.
(B) là bộ biên dịch mã bytecode, nó có nhiệm vụ chuyển mã bytecode của chương
trình Java thành ngôn ngữ máy để chạy trên thiết bị di động, khác nhau tùy thuộc vào
cấu hình phần cứng của các dòng thiết bị khác nhau.
(C) chuẩn hóa output của các chương trình Java cho các thiết bị di động khác
nhau có thể có bộ vi xử lý và tập lệnh khác nhau.
(D) Tất cả các câu trả lời khác đều đúng.
Câu 13: Để thực hiện mong muốn “viết mã một lần và chạy cho nhiều platform”, không
cần phải thay đổi mã cho các platform khác nhau, cho phép người lập trình ứng dụng
Ks. Trần Khánh Luân

14


Lập trình ứng dụng cho Mobile

tạo ra các phần mềm ứng dụng cho nhiều platform khác nhau trên một môi trường phát
triển, người ta đã thực hiện giải pháp:
(A) Xây dựng một máy ảo (virtual machine) trên đỉnh của phần cứng.
(B) Xây dựng bộ ngôn ngữ CLR (Common Language Runtime).
(C) Các phần mềm ứng dụng được viết bởi một ngôn ngữ bất kỳ, sau đó biên dịch
sang mã máy và nạp vào bộ nhớ của thiết bị di động.
(D) Tất cả các câu trả lời đều đúng.
Câu 14: Nguyên tắc của giải pháp CLR (Common Language Runtime) là:
(A) Source code của ứng dụng được viết bằng một ngôn ngữ nhất định, sau đó
được biên dịch sang mã ByteCode giống như máy ảo Java, sau cùng được CLR thông
dịch thành ngôn ngữ máy để chạy trê thiết bị.
(B) Source code của ứng dụng được viết bằng nhiều ngôn ngữ khác nhau, sau đó
được biên dịch sang mã ByteCode bởi trình biên dịch CLR, sau cùng trình biên dịch
CIL (Common Intermediate Language) thông dịch thành ngôn ngữ máy để chạy trê thiết
bị. Trình biên dịch trong CIL là duy nhất thuộc gia đình hệ điều hành Window.
(C) Source code của ứng dụng có thể được viết bằng các ngôn ngữ khác nhau,
sau đó được biên dịch sang mã ByteCode gọi là CIL (Common Intermediate Language)
bởi trình biên dịch tương ứng với mỗi ngôn ngữ lập trình, sau cùng được CLR biên dịch
thành ngôn ngữ máy để chạy trê thiết bị. Trình biên dịch trong CLR là duy nhất thuộc
gia đình hệ điều hành Window.
(D) Source code của ứng dụng có thể được viết bằng các ngôn ngữ khác nhau,
sau đó được biên dịch sang mã ByteCode gọi là CIL (Common Intermediate Language)
bởi trình biên dịch tương ứng với mỗi ngôn ngữ lập trình, sau cùng được CLR thông
dịch thành ngôn ngữ máy để chạy trê thiết bị. Trình biên dịch trong CLR phụ thuộc vào
thiết bị di động.
Câu 15: Ta có thể kết luận rằng:
(A) Java là một ngôn ngữ có thể viết cho nhiều platform, ngược lại Windows
Mobile là một platform có thể viết với nhiều ngôn ngữ. Java tổng quát hóa bằng ngôn
ngữ lập trình, Windows Mobile tổng quát hóa bằng hệ điều hành.
(B) Windows Mobile là một platform được hỗ trợ bởi ngiều ngôn ngữ, ngược lại

Java là một ngôn ngữ được hỗ trợ bởi platform. Java tổng quát hóa bằng platform,
Microsoft Windows tổng quát hóa bằng ngôn ngữ.
(C) Máy ảo Java giống nhau cho mọi thiết bị chạy Java, CLR tùy thuộc vào thiết
bị chạy trên hệ điều hành Windows Mobile.
(D) Máy ảo Java và CLR của Windows Mobile có nguyên tắc hoạt động giống
nhau.
Câu 16: Ưu và nhược điểm của các nền tảng di động : Android, iSO, Window phone
(SV tự học, có thể có một số câu trắc nghiệm sẽ hỏi trong phần này).
Câu 17: Khi xây dựng các ứng dụng cần lưu ý:
(A) Cố gắng tránh dùng đồ họa khi có thể. Thật tiết kiệm bộ nhớ RAM trong các
ứng dụng. Việc tiết kiệm năng lượng điện là vấn đế quan trọng, cần sử dụng các hàm
Ks. Trần Khánh Luân

15


Lập trình ứng dụng cho Mobile
theo dõi rạng thái tiêu thụ điện để thay đổi hoạt động của ứng dụng. Nếu trạng thái pin
yếu được nhận biết, ta phải thực hiện việc bảo toàn dữ liệu kết nối mạng hay nội bộ và
đóng ứng dụng sau khi cảnh báo.
(B) Bảo đảm dọn sạch bộ nhớ bất cứ khi nào đặt thiết bị vào trạng thái ngủ.
(C) Dùng sự kiện thay cho dò tìm khi có thể.
(D) Tất cả các câu trả lời đều đúng.
Câu 18: Cấu trúc của Java?
File.java  File.class (mã bytecode chạy trên máy ảo Java.
Trình tiện ích JDK bao gồm:
javac: bộ biên dịch Java,
java: bộ thông dịch Java,
appletviewer:trình thông dịch Java thực thi các Java applet từ tập tin HTML,
javadoc: tạo tài liệu HTML từ mã nguồn,

jdb (java debuger): cho phép thực hiện từng dòng trong chương trình, đặt các
breakpoint, xem giá trị các biến.
Javhah: tạo tập tin header,
Javap: trình dịch ngược Java.
Câu 19: Trình tiện ích JDK bao gồm:
(A) javac (bộ biên dịch Java), java (bộ thông dịch Java), Preverifier (bộ tiền kiểm
tra), javadoc (tạo tài liệu HTML từ mã nguồn), jdb (java debuger), Javhah (tạo tập tin
header), Javap(trình dịch ngược Java).
(B) javac (bộ biên dịch Java), java (bộ thông dịch Java), packager (bộ đóng gói),
javadoc (tạo tài liệu HTML từ mã nguồn), jdb (java debuger), Javhah (tạo tập tin header),
Javap(trình dịch ngược Java).
(C) javac (bộ biên dịch Java), java (bộ thông dịch Java), appletviewer (trình thông
dịch các applet), javadoc (tạo tài liệu HTML từ mã nguồn), jdb (java debuger), Javhah
(tạo tập tin header), Javap(trình dịch ngược Java).
(D) Tất cả các câu khác đều sai.

Ks. Trần Khánh Luân

16


Lập trình ứng dụng cho Mobile

CHƯƠNG 2: CƠ SỞ PHÁT TRIỂN ỨNG DỤNG
(Lý thuyết 4 tiết; Thực hành 4 tiết)
Mục tiêu: Giới thiệu cho các bạn sinh viên biết và hiểu rõ hơn về lịch sử phát triển cũng
như các phiên bản của hệ điều hành Android. Ngoài ra, còn giới thiệu đến các bạn sinh
viên các công cụ hỗ trợ để lập trình các ứng dụng chạy trên hệ điều hành Android.
Yêu cầu: Sinh viên khi lên lớp cần xem trước nội dung bài học trước ở nhà. Sau đó lên
lớp nghe giảng và giải thích để hiểu rõ hơn. Cuối cùng khi thực hành, sinh viên thực

hiện công việc cài đặt các phần mềm hỗ trợ cho việc lập trình, tiến hành các bước tạo
một dự án android đơn giản và tìm hiểu các thành phần có trong một dự án android để
nắm lại kiến thức của chương.
Nội dung:
2.1. Tổng quan về nền tảng Android
2.1.1. Khái niệm về Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các
thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban
đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google
và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm 2007
cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công
ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho
các thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm
2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép
Apache. Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho
phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được
điều chỉnh và phân phối Android một cách tự do. Ngoài ra, Android còn có một cộng
đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết
bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi. Vào tháng 10 năm 2012, có khoảng
700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng
dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ
biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công
nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và
giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu. Kết quả là mặc dù
được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện
trên TV, máy chơi game và các thiết bị điện tử khác. Bản chất mở của Android cũng
khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn
mở để tạo ra những dự án do cộng đồng quản lý. Những dự án này bổ sung các tính năng

cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu
chạy hệ điều hành khác.
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thời
điểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệu
lượt kích hoạt mỗi ngày. Sự thành công của hệ điều hành cũng khiến nó trở thành mục
tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộc
chiến điện thoại thông minh" giữa các công ty công nghệ.
Ks. Trần Khánh Luân

17


Lập trình ứng dụng cho Mobile
2.1.2. Tóm tắt lịch sử phát triển của Android
Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto,
California vào tháng 10 năm 2003 bởi Andy Rubin (đồng sáng lập công ty Danger), Rich
Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám
đốc T-Mobile), và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển,
theo lời của Rubin, "các thiết bị di động thông minh hơn có thể biết được vị trí và sở
thích của người dùng". Dù những người thành lập và nhân viên đều là những người có
tiếng tăm, Tổng công ty Android hoạt động một cách âm thầm, chỉ tiết lộ rằng họ đang
làm phần mềm dành cho điện thoại di động. Trong năm đó, Rubin hết kinh phí. Steve
Perlman, một người bạn thân của Rubin, mang cho ông 10.000 USD tiền mặt nhưng từ
chối tham gia vào công ty.
Google mua lại Tổng công ty Android vào ngày 17 tháng 8 năm 2005, biến nó
thành một bộ phận trực thuộc Google. Những nhân viên chủ chốt của Tổng công ty
Android, gồm Rubin, Miner và White, vẫn tiếp tục ở lại công ty làm việc sau thương vụ
này. Vào thời điểm đó không có nhiều thông tin về Tổng công ty, nhưng nhiều người
đồn đoán rằng Google dự tính tham gia thị trường điện thoại di động sau bước đi này. Tại
Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển

trên nền nhân Linux. Google quảng bá nền tảng này cho các nhà sản xuất điện thoại và
các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có khả năng nâng
cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác phần mềm, bắn
tin cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ khác nhau.
Ngày càng nhiều suy đoán rằng Google sẽ tham gia thị trường điện thoại di động
xuất hiện trong tháng 12 năm 2006. Tin tức của BBC và Nhật báo phố Wall chú thích
rằng Google muốn đưa công nghệ tìm kiếm và các ứng dụng của họ vào điện thoại di
động và họ đang nỗ lực làm việc để thực hiện điều này. Các phương tiện truyền thông
truyền thống lẫn online cũng viết về tin đồn rằng Google đang phát triển một thiết bị
cầm tay mang thương hiệu Google. Một vài tờ báo còn nói rằng trong khi Google vẫn
đang thực hiện những bản mô tả kỹ thuật chi tiết, họ đã trình diễn sản phẩm mẫu cho
các nhà sản xuất điện thoại di động và nhà mạng. Tháng 9 năm 2007, Information
Week đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin
cấp bằng sáng chế trong lĩnh vực điện thoại di động.
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset
Alliance), một hiệp hội bao gồm nhiều công ty trong đó có Texas Instruments, Tập đoàn
Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia,
Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục
đích phát triển các tiêu chuẩn mở cho thiết bị di động. Cùng ngày, Android cũng được
ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động
được xây dựng trên nhân Linux phiên bản 2.6. Chiếc điện thoại chạy Android đầu tiên
được bán ra là HTC Dream, phát hành ngày 22 tháng 10 năm 2008. Biểu trưng của hệ
điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại
California vẽ.
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều
hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành trước. Mỗi
bản nâng cấp được đặt tên lần lượt theo thứ tự bảng chữ cái, theo tên của một món ăn
tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ có kem) tiếp nối bằng
phiên bản 1.6 Donut (bánh vòng). Phiên bản mới nhất hiện nay là 4.4.2 Kitkat. Vào năm
Ks. Trần Khánh Luân


18


Lập trình ứng dụng cho Mobile
2010, Google ra mắt loạt thiết bị Nexus - một dòng sản phẩm bao gồm điện thoại thông
minh và máy tính bảng chạy hệ điều hành Android, do các đối tác phần cứng sản xuất.
HTC đã hợp tác với Google trong chiếc điện thoại thông minh Nexus đầu tiên, Nexus
One. Kể từ đó nhiều thiết bị mới hơn đã gia nhập vào dòng sản phẩm này, như điện
thoại Nexus 4 và máy tính bảng Nexus 10, lần lượt do LG và Samsung sản xuất. Google
xem điện thoại và máy tính bảng Nexus là những thiết bị Android chủ lực của mình, với
những tính năng phần cứng và phần mềm mới nhất của Android.
Các phiên bản của hệ điều hành Android
Android 1.0 - (API Level 1) (Chưa đặt tên)
Lịch sử phiên bản của Android bắt đầu với việc phát hành Android phiên bản
beta trong tháng 11 năm 2007. Phiên bản thương mại đầu tiên là Android 1.0, được phát
hành vào tháng 9 năm 2008. Android được phát triển bởi Google và Open Handset
Alliance (OHA).
Kỷ nguyên Android chính thức bắt đầu từ ngày 22/10/2008 khi chiếc điện thoại
HTC Dream hay còn gọi là T-Mobile G1 do HTC sản xuất ra mắt ở Mỹ. Với 1 cấu hình
khá là khiêm tốn. Android 1.0, CPU Qualcomm MSM7201A 528 Mhz, Ram 192 Mb
Rom 256 Mb, hỗ trợ thẻ 16Gb, Màn hình HVGA 320x480, ...

Hình 2.1 T-Mobile G1 là smartphone Android đầu tiên.
Tuy mới chỉ là phiên bản 1.0 nhưng Android đã có sự khác biệt so với các hệ
điều hành khách đó là thanh thông báo Notific thông tin về danh sách tin nhắn, cuộc gọi,
tin nhắn, … các widget hiển thị thông tin trực tiếp trên màn hình chủ, tích hợp Gmail và
đặc biệt là kho ứng dụng Android. Khi mới ra mắt thì kho ứng dụng của android có tên
Android Market, khi đó cũng chỉ có 35 ứng dụng chứ không nhiều như hiện nay.
Android 1.1 - (API Level 2) (Petit Four)

Vào ngày 9 tháng 2 năm 2009, Android 1.1 cập nhật được phát hành cho HTC
Dream. Android 1.1 được gọi là "Petit Four" trong nội bộ, mặc dù tên này không được
sử dụng chính thức. Bản cập nhật giải quyết lỗi, thay đổi Android API và bổ sung thêm
một số tính năng quan trọng mà chủ yếu là tính năng cập nhật qua mạng (OTA – over
the air) giúp người dùng cập nhật dễ dàng. Vào thời điểm đó, cập nhật OTA là một bước
tiến lớn vì chưa có nền tảng smartphone nào làm được như vậy.
Ks. Trần Khánh Luân

19


Lập trình ứng dụng cho Mobile

Hình 2.2 Android đã hỗ trợ cập nhật OTA từ rất sớm.
Android 1.5 - (API Level 3) - Cupcake
Ngày 27 tháng 4 năm 2009, bản cập nhật Android 1.5 đã được phát hành, dựa
trên nhân Linux kernel 2.6.27. Đây là phiên bản đầu tiên chính thức sử dụng một tên mã
dựa trên một món tráng miệng "Cupcake", một chủ đề mà sẽ được sử dụng cho tất cả
các phiên bản từ nay về sau. Bản cập nhật bao gồm một số tính năng mới và giao diện
người dùng sửa đổi:
- Hỗ trợ cho các bên thứ ba bàn phím ảo với dự đoán văn bản, từ điển người dùng
tùy chỉnh.
- Hỗ trợ cho các Widget - linh hoạt cho màn hình Home và nhận được cập nhật
định kỳ.
- Quay video và phát lại trong MPEG-4 định dạng 3GP.
- Tự động ghép nối và hỗ trợ Bluetooth stereo (A2DP và AVRCP profile).
- Sao chép và dán các tính năng trong trình duyệt web.
- Danh bạ cho phép hiển thị hình ảnh người sử dụng yêu thích.
- Ngày, giờ cụ thể / thời gian thể hiện cho các sự kiện trong nhật ký cuộc gọi và
truy cập một chạm vào một thẻ liên lạc từ sự kiện nhật ký cuộc gọi.

- Quá trình chuyển đổi màn hình động animation.
- Tùy chọn tự động xoay vòng.
- Hình ảnh động khởi động mới.
- Khả năng tải video lên YouTube.
- Khả năng tải ảnh lên Picasa.

Hình 2.3 Bàn phím ảo xuất hiện trên Android 1.5
Ks. Trần Khánh Luân

20


×