Lập trình cho các thiết bị di động
(Programming for Mobile Devices)
Tên giảng viên:
GVC.ThS. Đoàn Hòa Minh,
Đơn vị: Bộ Môn Mạng Máy Tính &
TruyềnThông
E-mail: [email protected] ,.
Đoàn Hòa Minh
Mã số: CT329
Số Tín chỉ: 2
Giờ lý thuyết: 20 tiết.
Giờ thực hành + đồ án: 20 tiết.
Học phần tiên quyết:
•Lập Trình Hƣớng Đối Tƣợng C++
(CT114)
•Lập trình Java
Đoàn Hòa Minh
Mục tiêu - Chuẩn đầu ra
• Mục tiêu:
– Hình thành cho sinh viên các kiến thức và kỹ năng
cơ bản về lập trình di động,
– Sinh viên có thể tự nghiên cứu sâu rộng hơn và có
thể tự theo đuổi sự phát triển không ngừng trong
lĩnh vực phát triển phần mềm ứng dụng cho thiết bị
di động.
• Chuẩn đầu ra:
– 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ể.
3.4 ImageView
3.5 ListView
3.6 MapView
3.7 Dialog và Toast
3.8 Menu
3.9 Date và Time Controls
Đoàn Hòa Minh
Nội dung [4]
CHƢƠNG 4: LẬP TRÌNH GIAO DIỆN MỨC THẤP
1.Xử lý sự kiện
– Xử lý sự kiện tương tác trực tiếp
– Xử lý sự kiện từ phím
2.Lập trình giao diện mức thấp
– Lập trình với lớp View
• Vẽ một đối tượng đơn giản
• Làm cho đối tượng di chuyển
• Xử lý sự kiện trong lập trình mức thấp
– Lập trình luồng trong giao diện mức thấp
– Lập trình với SurfaceView
Đoàn Hòa Minh
Nội dung [5]
CHƢƠNG 5: LƢU TRỮ DỮ LIỆU VỚI
SQLITE
5.1. Tìm hiểu về SQLite
5.2. Lập trình với SQLite
Đoàn Hòa Minh
Nội dung [6]
CHƢƠNG 6: LẬP TRÌNH MẠNG
http://elcit.ctu.edu.vn/
5) Các Website khác: - Sẽ giới thiệu
thêm
Đoàn Hòa Minh
Phƣơng pháp học tập và đánh giá
• Phƣơng pháp học tập
– Bài giảng trên lớp.
– Tự học, tham khảo và trao đổi trên Website e-
learning của Khoa CNTT-TT.
– Thực hành trên phòng thí nghiệm và làm đồ án.
• Đánh giá:
– Hoạt động trên lớp: cộng điểm.
– Thực hành/Đồ án (40%): vắng thực hành hơn 1
buổi sẽ bị cấm thi.
– Thi cuối học kỳ (60%).
Th.s. Đoàn Hòa Minh
Giảng viên chính, Khoa CNTT-TT
E-mail: [email protected]
MOBILE: 0918628789
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.1/43
Chương 1: CÁC KHÁI NIỆM CĂN BẢN 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.2. Mạng di động
1.3. Các nền tảng (platform) phát triển công nghệ di động
Đoàn Hòa Minh Trang I.2/43
Hệ thống cố định và hệ thống di động chắc chắn sẽ có sự khác biệt,
nhưng điều này không có nghĩa là chúng không có bất kỳ điểm chung
nào.
Có 4 mảng trong lĩnh vực di động: người dùng di động; thiết bị di
động; ứng dụng di động và mạng di động.
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: (hình 1.1)
1) Sự nhận biết vị trí (Location awareness)
2) Chất lượng kết nối mạng của dịch vụ (Network connectivity
quality of service, QOS)
3) Sự hạn chế về khả năng của thiết bị (Limited device capability -
particularly storage and CPU)
4) Sự hạn chế về nguồn điện (Limited power supply)
5) Sự hỗ trợ về mặt đa dạng của giao diện người dùng (Support for a
wide variety of user interfaces)
6) Sự tăng nhanh về số lượng platform.
7) Sự giao dịch tích cực (Active transaction). Hình 1.1
Điều kiện di động (Mobile condition) là sự khác biệt giữa người dùng
di động với người dùng cố định, như sau:
1) 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.
2) Người dùng di động không tập trung vào việc tính toán.
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.3/43
tài nguyên được cài đặt sẵn (built-in). • 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 gnuồ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).
1.2. Mạng di động
1.2.1. Quá trình phát triển của mạng di động [5]
Hoạt động và quá trình phát triển của các thiết bị di động gắn liền với
mạng di động và quá trình phát triển của mạng. Quá trình phát triển của
mạng di động trải qua các thế hệ:
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.5/43
Thế hệ thứ nhất (1G: First Generation): Điện thoại di động chỉ có
dịch vụ thoại (voice services), không có dịch vụ khác (gia tăng).
Đặc trưng của mạng 1G là :
- Kỹ thuật chuyển mạch tương tự (circuit-switched) .
- Dung lượng (capacity) thấp .
- Xác suất rớt cuộc gọi cao .
- Khả năng chuyển cuộc gọi không tin cậy .
- Chất lượng âm thanh không tốt .
- Không có chế độ bảo mật .
Thế hệ thứ hai (2G):
Các hệ thống kĩ thuật số ở thế hệ thứ 2 bao gồm: GSM, IS-136 TDMA và
CDMA, chuyển từ hệ thống tương tự (analog) sang hệ thống số (digital),
nhiều dịch vụ gia tăng được đưa vào, chẳng hạn như: short message servive
(SMS) và kết nối dữ liệu trên internet. Mạng 2G có thể phân ra 2 loại :
1.2.2. Dịch vụ cá nhân và dịch vụ cộng đồng (personal and cummunity services)
- Dịch vụ cá nhân: bao gồm tất cả các dịch vụ được dùng bởi mỗi khách
hàng với không có sự tương tác với các khách hàng khác hoặc sự tương
tác rất hạn chế.
- Dịch vụ cộng đồng: là các dịch vụ được thực hiện có sự tương tác giữa
các khách hàng.
- Cả hai, dịch vụ các nhân và dịch vụ cộng đồng được phân thành các dịch
vụ có sự hỗ trợ của mạng không dây và không có sự hỗ trợ của mạng
không dây.
- Sự hỗ trợ của mạng không dây được thực hiện bởi các chuẩn kết nối
GSM, GPRS, kết nối dữ liệu 3G, Bluetooth, hay WLAN.
Hình 1.3 phân biệt một số dịch vụ là dịch vụ cá nhân hoặc cộng đồng. Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.7/43
1.2.3. Hệ thống truyền thông tế bào
– Mạng tế bào phát triển từ dịch vụ thoại thuần túy để hỗ trợ cho dịch vụ dữ
liệu.
– Kiến trúc truyền thông bị thống trị bởi tuyền thông point-to-point giữa
một điện thoại và hệ thống trạm (call base station), có thể xem như là cầu
nối giữa lĩnh vực không dây và lĩnh vực có dây.
– GMS là hệ thống TDMA với kỹ thuật CSD (Circuit Switched Data)
(9.6kbps) và HSCSD (High Speed Circuit Switched Data ) (14.4kbps).
– GPRS (General Package Radio Service) là một sự mở rộng của CDS và
HSCDS. Nó dùng kỹ thuật bó (bundling) để tăng tốc độ dữ liệu. Với kỹ
thuật bó, không dùng khe thời gian TDMA, nó cung cấp một tốc độ
truyền thực tế là 40-50 kbps, và khả năng lý thuyết là 171.2kbps (mạng
băng thông rộng nên công nghệ này được đặt tên là Ultra-Wide Band (siêu băng
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.9/43
rộng). Lợi điểm của công nghệ UWB là cho phép truyền dữ liệu xung với tốc độ
rất cao từ vài trăm Mbps đến vài Gbps. Nhược điểm của công nghệ UWB là độ
suy hao cao nên chỉ truyền trong phạm vi ngắn, do đó UWB chủ yếu được phát
triển cho mạng WPAN hay WLAN nhỏ.
Wibree là công nghệ kết nối tầm ngắn (tầm 10 mét) được giới thiệu bởi Nokia
năm 2001 dưới dạng một chuẩn mở, để cùng hoạt động chung bên cạnh Bluetooth
.
Điểm nổi bật của Wibree là ít tiêu hao năng lượng (10 lần ít hơn Bluetooth) trong
khi cho cùng một tốc độ truyền truyền dữ liệu (tầm 1Mbps). Do đó, Wibree có thể
tích hợp với đồng hộ, chuột không dây, bàn phím không dây, cảm ứng thể thao và
nhiều thiết bị ngoại vi khác, sau đó chúng được kết nối với máy tính cá nhân hay
điện thoại di động.
1.2.4.2. WLAN (Wireless Local Area Networks):
Mạng LAN không dây là mạng cục bộ gồm các máy tính liên lạc với nhau bằng
sóng radio theo chuẩn IEEE 802.11 định nghĩa tầng vật lý và tầng MAC cho một
mạng nội bộ không dây. Chuẩn này định nghĩa ba tầng vật lý khác nhau cho mạng
LAN không dây 802.11, mỗi tầng hoạt động ở một dải tần khác nhau và sử dụng
các tốc độ 1 Mbps và 2 Mbps. Thành tố cơ bản của kiến trúc 802.11 là tế bào
(cell), với tên gọi trong 802.11 là BSS (basic service set - bộ dịch vụ cơ bản). Mỗi
BSS thường gồm một vài máy trạm không dây và một trạm cơ sở trung tâm được
gọi là AP (access point - điểm truy cập). Các máy trạm (có thể di động hoặc cố
định) và trạm trung tâm liên lạc với nhau bằng giao thức MAC IEEE 802.11
không dây. Có thể kết nối nhiều trạm AP với nhau bằng mạng hữu tuyến Ethernet
hoặc một kênh không dây khác để tạo một hệ thống phân tán (DS - distributed
system). Đối với các giao thức ở tầng cao hơn, hệ thống phân tán này như là một
mạng 802 đơn.
Các máy trạm dùng chuẩn IEEE 802.11 có thể nhóm lại với nhau để tạo thành một
xách tay, máy in, máy ảnh số, và thậm chí cả tủ lạnh, lò viba, máy điều hòa nhiệt
độ. Công nghệ Bluetooth sử dụng băng tần ISM
, từ 2,402 GHz tới 2,480 GHz
(được chia thành 79 kênh). Bluetooth sử dụng kỹ thuật trải phổ nhảy tần FHSS để
tránh giao thoa. Bluetooth có thể phân thành 3 loại tùy theo tầm phủ sóng (1 mét,
10 mét và 100 mét) và năng lượng phát tối đa cho phép tương ứng (1 mW, 2,5
mW và 100 mW). Tốc độ truyền dữ liệu của Bluetooth đạt tầm 1 Mbps. Với phiên
bản 2.0 (Bluetooth 2.0 + EDR), tốc độ tăng lên được đến 3 Mbps. Đôi khi UWB
cũng được xem như là phiên bản 3.0 của Bluetooth với tốc độ có thể lên đến 480
Mbps.
– được giới thiệu bởi Ericsson trong năm 1999 cho thiết bị di động, để dễ
dàng trao đổi dữ liệu giữa các điện thoại di động, PDA, laptop và PC. Sáng
kiến này đã được tiếp nhận bới IEEE và chuẩn hóa theo IEE 802.15.1.
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 1m, 10m và 100m. Bluetooth với phiên bản 1.2 cung cấp các
kênh truyền thông với chất lượng dịch vụ (QoS:quality of service) ngay cả
cho dịch vụ thoại.
Piconet
– Trong truyền thông Bluetooth, các thiết bị cùng cấp liên kết trong 1 nhóm
gọi là piconet. Trong đó có 1 thiết bị đóng vai trò master, còn lại là các
slave. Có tối đa 7 Slave dạng Active và 255 Slave dạng Parked (Inactive)
trong 1 piconet.
– Các atctive slave có thể truyền thông với nhau thông qua master. Các thiết
bị ở trạng thái này được phân biệt thông qua 1 địa chỉ MAC (Media
Access Control) hay AMA (Active Member Address ) - đó là con số gồm 3
bit. Nên trong 1 Piconet có tối đa 8 thiết bị ở trang thái này.
– Parked slave ở trạng thái "ngủ" và sẽ được Master gọi dậy bằng tín hiệu
– Các piconet có thể kết nối nhau tạo thành scatternet thông qua các bridge.
Một bridge có thể là một master hoặc một slave.
– Có 2 loại kết nối, đó là kết nối synchronous communication oriented (SCO)
và kết nối asynchronous-less (ACL). SCO chủ yếu dùng cho dịch vụ thoại,
trong khi ACL dùng cho sự truyền dữ liệu bất kỳ.
– Vai trò của 1 thiết bị trong piconet là không cố định, có nghĩa là nó có thể
thay: đổi từ master thành slave và ngược lại. Ví dụ nếu master không đủ
khả năng cung cấp tài nguyên phục vụ cho piconet của mình thì nó sẽ
chuyển quyền cho 1 slave khác giàu tài nguyên hơn, mạnh hơn, (bởi vì
trong 1 piconet thì clock và kiểu hopping đã được đồng bộ).
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.12/43
Hình 1.8: Một mạng Scatternet gồm 2 piconet
– Bluetooth dựa trên kỹ thuật TDMA/TDD vớichiều dài khe là 0.625 ms. Một
frame bao gồm một uplink phase và một downlink phase với ít nhất 1 khe
thời gian cho 1 pha. Mỗi gói truyền thông được nhận biết bởi thiết bị đối
tác.
– Để tăng tốc độ truyền, 1, 3 hoặc 5 khe có thể gôm thành 1 nhóm cho uplink,
thiết bị thu luôn dùng chỉ 1 khe cho acknowledgement.
– Với Bluetooth version 2.0 tốc độ truyền dữ liệu có thể lên đến 3Mbps.
– Cuối năm 2009, Bluetooth 3.0 được giới thiệu. Chuẩn Bluetooth mới sẽ
được tích hợp với giao thức 802.11 nên khi truyền dữ liệu, tốc độ có thể
tương đương trong mạng Wi-Fi.
– Trong tương lai,Bluetooth sẽ được kết hợp với kỹ thuật ultra wide-band
(UWB) technology. UWB cho phép nâng tốc độ truyền lên đến 400Mbit/s,
tuy nhiên mức tiêu hao năng lượng sẽ tăng gấp 2 hoặc 3 lần.
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.13/43
phần cứng, hệ điều hành, ngôn ngữ lập trình
và các trừu tượng. Nhiều khi người ta gọi tên một platform bằng chính hệ
điều hành tương ứng với nó.
Sự phát sinh nhanh chóng nhiều platform có ý nghĩa rất quan trọng đến
kiến trúc phần mềm của thiết bị di động, sự thiết kế và phát triển các ứng
dụng. Nhà phát triển phần mềm ứng dụng mong muốn sao cho việc phát
triển ứng dụng không phụ thuộc platform. Nghĩa là khi xây dựng một ứng
dụng không cần dựa trên mộ platform cụ thể, nhưng lại có thể chạy trên
nhiều platform khác nhau. Tuy nhiên, các nhà sản xuất platform luôn cố
gắng tạo ra các hạn chế để chống lại xu hướng này. Vì vậy, ngày nay có
nhiều platform cạnh tranh với nhau như: Java J2ME, Symbian, BREW, iOS
cho iPhone của Apple, Blackberry OS của RIM, WebOS, Android,
Windows Mobile của Microsoft và Windows phone cho các thíết bị di động
dựa trên kiến trúc ARM (Arcorn RISC Machine).
3. Ứng dụng (Applications)
Là các phần mềm cho người dùng được lập trình viên phát triển như chương
trình xem đa phương tiện, quản lý công việc, trò chơi, Bên cạnh đó cũng có
các ứng dụng thiết yếu được tích hợp sẵn như: danh bạ, lịch, quay phim, gọi
điện,…
Ứng dụng độc lập (Stand-alone Applications): là các ứng dụng có thể tải về
và sau đó được thực hiện trên thiết bị mà không cần thiết phải tiếp tục kết nối
mạng hoặc chỉ cần kết nối định kỳ. Chẳng hạn như một số phần mềm trò
chơi. Ứng dụng loại này có thể được xây dựng cho các thiết bị có cùng
platform trong hệ thống thick-client client server.
4. Môi trường phát triển phần mềm (SDE :Software development
environment) và môi trường phát triển tích hợp (IDE: integrated
development environment)
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 để người lập trình máy tính phát triển phần mềm.