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: ,.
Đ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ể.
Đoàn Hòa Minh
Nội dung [1]
Chƣơng 1: Tổng quan (các khái niệm căn bản)
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)
2. Sự phát triển của công nghệ phần mềm di động
3. Các nền tảng (platform) phát triển công nghệ di
động
4. Mạng di động
5. Các vấn đề lưu ý khi xây dựng ứng dụng trên điện
thoại di động
Nội dung [2]
CHƢƠNG 2: PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN
TẢNG ANDROID
2.1 TỔNG QUAN VỀ NỀN TẢNG ANDROID
2.2 Máy ảo DALVIK
2.3 Chu kỳ sống của ứng dụng android
2.4 Công cụ lập trình
2.5 Một số thành phần trong android project
2.6 Các thành phần trong ứng dụng android
Đoàn Hòa Minh
Nội dung [3]
CHƢƠNG 3: LẬP TRÌNH GIAO DIỆN MỨC CAO
3.1 Layout
3.2 Text Controls
3.3 Button Controls
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
6.1. Nền tảng giao tiếp
6.2. L.ƣớt web với Android
6.3. Telephony API
6.3.1. SMS
6.3.2. Email
6.3.3. Bắt sự kiện cuộc gọi đến
6.4. Kết nối Socket
6.4.1. Server
6.4.2. Client
6.5. HTTP
6.5.1 Sử dụng HTTP với GET Request
6.5.2 Sử dụng HTTP với POST Request
6.6. Google Maps và GPS
6.6.1 Google Maps
6.6.2 GPS
Đoàn Hòa Minh
Đoàn Hòa Minh
Tài liệu học tập
Bài giảng và slide.
Tài liệu tham khảo:
1) Mobile Computing Principles Designing and
Developing Mobile Applications with UML and XML/
Reza B’Fax - Cambidge University Press, 2005.
2) Beginning Android 4 Application Developmant –
Wei Meng Lee – John Viley & Sons Inc. - 2012
3) Mobile Platforms and development Environments –
Sumi Helal, Raja Bose, Wendong Li – Morgan &
Claypool - 2012.
4) Website elearning Khoa CNTT-TT: -
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:
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
1.4. Các vấn đề lưu ý khi xây dựng ứng dụng trên điện
thoại di động
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 và thiết bị di động
Điện toán di động: 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 hàm cả việc lưu trữ và trao đổi thông tin.
Thiết bị di động: 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.
Ví dụ: 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,…
Hệ thống di động thường có tài nguyên phần cứng giới hạn, nên chúng cũng
được gọi là thiết bị hạn chế (constrained devives).
Điện thoại di động là thiết bị di động tiêu biểu nhất, nên trong giáo trình này ta
khảo sát tập trung vào điện thoại di động.
Cơ sở phân phân biệt hệ thống tính toán di động với các hệ thống tính
toán khác là:
- Sự khác nhau về công việc mà chúng được thiết kế để thực hiện;
- Cách mà chúng được thiết kế;
- Cách chúng vận hành.
Có nhiều việc một hệ thống cố định không thực hiện được nhưng hệ
thống di động có thể thực hiện được.
Một thiết bị tính toán di động cũng như bất kỳ một hệ thống nào khác,
nó có thể kết nối mạng. Tuy nhiên, một thiết bị di động có thể không
phải lúc nào cũng là thiết bị có thể kết nối mạng không dây (Ví dụ:
calculators, electronic watches, máy chơi game, máy hát nhạc PM3,…).
Giáo trình Lập trình cho thiết bị di động Chương 1
Đ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
3) 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.
4) Người dùng di động thay đổi công việc thường xuyên hoặc đột ngột.
5) 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.
Các thuộc tính của người dung di động: thay đổi vị trí, không tập
trung (lack of focus), đòi hỏi tức thì, thay đổi đột ngột trong công việc,
mọi nơi và mọi lúc.
1.1.2. Khái niệm lập trình di động (Mobile programming)
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.
Sự khác nhau cơ bản giữa điện toán di động và lập trình di động: Điện
toán di động là một chức năng của thiết bị di động trong khi lập trình di
động là quá trình xây dựng chức năng cho thiết bị di động của người lập
trình.
1.1.3. Kiến trúc tổng quát của một điện thoại di động có thể lập trình:
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.4/43
• Nhà sản xuất cung cấp việc truy cập đến platform của họ (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 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ó 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 (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 :
mạng 2G dựa trên nền TDMA (Time Division Multiple Access) và mạng
2G dựa trên nền CDMA (Code Division Multiple Access). Sự thay đổi
quan trọng là sự phân chia thành 2 lĩnh vực: cung cấp hạ tầng cơ sở mạng
và cung cấp dịch vụ mạng. Hình 1.2 trình bày sự phụ thuộc lẫn nhau giữa 4
thành phần trong lĩnh vực di động.
Đặc trưng của mạng 2G là :
- Kỹ thuật chuyển mạch số .
- Dung lượng lớn .
- Bảo mật cao .
- Nhiều dịch vụ kèm theo như truyền dữ liệu, fax, SMS (tin hắn),
Thế hệ thứ ba (3G): Không mang đến các dịch vụ mới có tính cách
mạng trong thực tế. Tuy nhiên, có một bài học quan trọng từ thế hệ mới
này, đó là
“ Kỹ thuật thuần túy là không bán, nhưng khách hàng sẽ mua
dịch vụ”
. Sự thay đổi chính từ thê hệ 2G sang 3G nằm trong lớp nghi
thức (protocol layers) mà khách hàng khó có thể thấy được
. Mạng 3G
cho phép truyền 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 ). Và điểm nổi bật nhất của mạng 3G
so với mạng 2G nằm ở khả năng cung ứng truyền thông gói tốc độ cao
nhằm triển khai các dịch vụ truyền thông đa phương tiện trên mạng di
động.
Đặc trưng của hệ thống 3G là :
- Tốc độ truyền dữ liệu cao;
- Có nhiều dịch vụ truyền thông đa phương tiện như: dịc vụ
Internet, e-mail, xem video trực tuyế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.6/43
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
3G). GPRS có thể tính cước trên số lượng dữ liệu thay vì tính trên thời
gian như kỹ thuật chuyển mạch.
– EDGE (Enhanced Data Rates for GMS Evolution ) hay EGPRS
(Enhanced GPRS) mang đến tốc độ truyền dữ liệu cao hơn, có thể lên đến
473.6kbps.
– UMTS (Universal mobile Telecommunications System) đưa vào kỹ thuật
3G dựa trên W-CDMA, UMTS được chuẩn hóa bởi 3GPP cung cấp tốc
độ dữ liệu 2 Mbps phạm vi tê bào UMTS và 384kbps đầu cuối người
dù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.8/43
– HSDPA (3G High-Speed Downlink Packet Access) đạt tới 28.8 Mbps cho
download và HSUPA (3G High-Speed Uplink Packet Access) đạt tới 5.76
Mbps cho uploads. Nhưng sự phát triển không dừng ở đó, một kế hoạch
mang tên Long Term Evolution (LTE) tiếp tục chuẩn hóa cho 3G và đã cho
người dùng tốc độ truyền 100Mbps cho download và 50 Mbps cho upload
vào năm 2009. (Ericsson, Nokia, và Motorola).
1.2.4. Hệ thống truyền thông tầm ngắn:
1.2.4.1. WPAN (Wireless Personal Area Networks): là mạng không dây cá
nhân, mạng được tạo bởi sự kết nối vô tuyến trong tầm ngắn giữa các thiết bị
ngoại vi như tai nghe, đồng hồ, máy in, bàn phím, chuột, khóa USB với máy tính
cá nhân, điện thoại di động v.v. Sự kết nối vô tuyến trong mạng WPAN có thể
dùng các công nghệ như Bluetooth, Wibree, UWB WPAN có tầm phủ sóng gần
cỡ chục mét, cho phép kết nối các thiết bị ngoại vi như máy in, loa, đến một máy
tính cá nhân, điện thoại di động.
UWB (Ultra-Wide Band), tiếng Việt gọi là Công Nghệ Siêu Băng Rộng , kỹ
thuật truyền tín hiệu không dây bằng cách sử dụng các xung (pulse) tần số rất cao.
Một kênh vô tuyến được gọi là siêu băng rộng khi băng thông của nó lớn hơn 1/4
tần số trung tâm sóng mang của nó. Do xung tần số cao nên tín hiệu chiếm một dải
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
mạng ad hoc - mạng không có điều khiển trung tâm và không có kết nối với "thế
giới bên ngoài". Trong trường hợp này, mạng được hình thành tức thời khi một số
thiết bị di động tình cờ thấy mình đang ở gần nhau trong khi đang có nhu cầu liên
lạc mà không tìm thấy một cơ sở hạ tầng mạng sẵn có tại chỗ (chẳng hạn một BBS
802.11 với một trạm AP). Một ví dụ về mạng ad hoc được hình thành là khi một
vài người mang máy tính xách tay gặp nhau tại một bến tầu và muốn trao đổi dữ
liệu mà không có một trạm AP ở gần đó.
Tương tự trong như mạng Ethernet hữu tuyến 802.3
, các máy trạm trong mạng
LAN không dây 802.11 phải phối hợp với nhau khi dùng chung môi trường truyền
dẫn (tần số radio). Giao thức MAC có nhiệm vụ điều khiển sự phối hợp này. MAC
IEEE 802.11 là giao thức CSMA/CA
(carrier sense multiple access with collision
avoidance).
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.10/43
IEEE802.11:
là một tập các chuẩn của tổ chức IEEE (Institute of Electrical and
Electronic Engineers) bao gồm các đặc tả kỹ thuật liên quan đến hệ thống mạng
không dây. Chuẩn IEEE 802.11 mô tả một giao tiếp "truyền qua không khí" (over-
the-air) sử dụng sóng vô tuyến để truyền nhận tín hiệu giữa một thiết bị không dây
và tổng đài hoặc điểm truy cập (access point), hoặc giữa 2 hay nhiều thiết bị
không dây với nhau (mô hình ad-hoc
).
1.2.4.3. Bluetooth: là công nghệ truyền dữ liệu không dây dùng trong mạng vô
tuyến cá nhân WPAN
, nhằm kết nối các thiết bị như điện thoại di động, máy tính
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
"beacon" (tín hiệu báo hiệu). Các packed slave được đánh địa chỉ thông
qua địa chỉ PMA (Packed Member Address). Đây là con số 8 bits, nên có
Giáo trình Lập trình cho thiết bị di động Chương 1
Đoàn Hòa Minh Trang I.11/43
tối đa 255 thiết bị ở trạng thái này trong 1 Piconet. Tại 1 thời điểm chỉ 1
parked slave được đồng bộ với Piconet.
Hình 1.7: Một piconet
• Scatternet:
– 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
1.3. Các nền tảng (platform) phát triển công nghệ di động
1.3.1. Các khái niệm:
1. Trừu tượng (Abstraction):
là những phần mềm nằm giữa phần cứng và
môi trường phát triển ứng dụng hoặc ứng dụng,
chẳng hạn như: menu,
database, file systems, related runtime libraries, giao diện đồ họa người
dùng (graphical user interface),… Chúng là công cụ hữu hiệu cho việc
phát triển phần mềm, là một trong những phương tiện được dùng phổ biến
trong việc lập trình. Khi lập trình trong một môi trường xác định, người
lập trình phải biết các trừu tượng cơ bản được áp dụng trong môi trường
đó, và biết cách mà các trừu tượng dự định sẽ được dùng. Đây là một kỹ
năng.
Về mặt nguyên tắc, người dùng một trừu tượng có thể bỏ qua các chi tiết
nằm dưới sự thực thi, các chi tiết nằm ở phần cứng và phần mềm cơ sở hạ
tầng (infrastructure software) được dùng như kỹ thuật thực thi của một
trừu tượng nào đó. Tuy nhiên, trong thực tế, trong khi viết chương trình,
đôi khi các chi tiết này trở nên có thể nhìn thấy được bởi người phát triển
phần mềm hay ngay cả người dùng hệ thống, gọi là sự rò rỉ trừu tượ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.14/43
(Leaking abstructions). Tùy trường hợp, sự rò rỉ trừu tượng có thể có lợi
hoặc laàm giảm hiệu quả thực thi chương trình.
2. Nền tảng (Platform)
Platform (tôi muốn dùng nguyên từ tiếng Anh) là nền tảng công nghệ của
một hệ tính toán, trên đó người ta xây dựng các chương trình ứng dụng.
Platform là 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. 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.
Một SDE có thể bao gồm:
- 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;