25
Trung tâm Đào to E-learning Cơ hội hc t p cho mọi người Lp trình thi ết bdi động - Bài 1 Trang 1 BÀI 1: GII THIU VLP TRÌNH TRÊN THIT BDI ĐNG Mc tiêu: Trong bài này, Anh/Chcần đạt được nhng mc tiêu sau: 1. Cung cấp các vấn đề tổng quan về công nghệ di động và ứng dụng. Đặc biệt là công nghệ điện thoại di động. 2. Giới thiệu một số công nghệ lập trình ứng dụng trên điện thoại di động. Ni dung: 1.1. Công nghmobile và ng dng 1.1.1. Lch sphát tri n công nghmobile Ngày nay, vi sphát tri n mnh mca công nghs n xut phn c ứng đã cho ra đời r t nhiu loi thiết btính toán tr giúp con người trong mọi lĩnh vực cuc sng. Các thi ết bđó ngày càng thông minh, mề m do và linh ho ạt hơn nhờ được chương trình hóa các quá trình điều khin thông qua vi c lp trình. Chúng ta có ththy vic ng dng l p trình trên các thi ết brất đa dạng, đi từ các thiết bthông dụng dùng trong gia đình như lò vi sóng, tủ l nh, nồi cơm điện... cho đến các thiết btối tân như các rô -bt thám hi m sao hỏa. Trong đó, phải kđến các điện thoại di động là loi thiết bcó tốc độ phát tri n chóng mt. Trong nh ững năm cuố i thế k 20 và đầ u thế k21, nhi u dòng s n ph ẩm điệ n tho ại di độ ng c a nhi ều hãng đã được ra đờ i. Có th kđế n như hãng Nokia, Motorola, Sony, Samsung, Apple, RIM, LG, Google... đây là sự bùng n vthtrườ ng c ủa điệ n tho ại di động, và đặc bi t hi n nay là điệ n tho ại thông minh (smartphone). Điều này có đượ c là nh s ti n ích và kh năng trợ giúp con ngườ i trong công vi c, gi i trí c ủa điệ n tho ại di độ ng là r t l n. Sau đây là hình vẽ cho thy s phát tri n vslượ ng c ủa điệ n tho i qua các năm.

GIỚI THIỆU VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ÐỘNG - EHOU

Embed Size (px)

Citation preview

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 1

BBÀÀII 11:: GGIIỚỚII TTHHIIỆỆUU VVỀỀ LLẬẬPP TTRRÌÌNNHH

TTRRÊÊNN TTHHIIẾẾTT BBỊỊ DDII ĐĐỘỘNNGG Mục tiêu:

Trong bài này, Anh/Chị cần đạt được những mục tiêu sau:

1. Cung cấp các vấn đề tổng quan về công nghệ di động và ứng dụng. Đặc biệt

là công nghệ điện thoại di động.

2. Giới thiệu một số công nghệ lập trình ứng dụng trên điện thoại di động.

Nội dung:

1.1. Công nghệ mobile và ứng dụng

1.1.1. Lịch sử phát triển công nghệ mobile

Ngày nay, với sự phát triển mạnh mẽ của công nghệ sản xuất phần cứng đã

cho ra đời rất nhiều loại thiết bị tính toán trợ giúp con người trong mọi lĩnh vực

cuộc sống. Các thiết bị đó ngày càng thông minh, mềm dẻo và linh hoạt hơn nhờ

được chương trình hóa các quá trình điều khiển thông qua việc lập trình. Chúng ta

có thể thấy việc ứng dụng lập trình trên các thiết bị rất đa dạng, đi từ các thiết bị

thông dụng dùng trong gia đình như lò vi sóng, t ủ lạnh, nồi cơm điện... cho đến các

thiết bị tối tân như các rô-bốt thám hiểm sao hỏa. Trong đó, phải kể đến các điện

thoại di động là loại thiết bị có tốc độ phát triển chóng mặt.

Trong những năm c uố i thế kỷ 20 và đầu t hế kỷ 21, nhiều dò ng s ản

phẩm điện t hoại di động c ủa nhiều hãng đã đ ược ra đời . Có t hể kể đến

như hãng No kia, Motorola, So ny, Sams ung, Apple, RIM, LG, Google.. .

đây là sự bùng nổ về t hị trường c ủa điện t ho ại di động, và đ ặc biệ t hiệ n

nay l à điện t hoại thô ng minh (smartphone). Điều này có được là nhờ s ự

tiện ích và khả năng trợ gi úp con người trong công việc, giải trí của điện

thoại di động là rất lớn.

Sau đây là hình vẽ cho thấy sự phát triển về số lượng của điện thoại qua

các năm.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 2

Trong đó: Subscriber Number là số thiết bị điện thoại được đăng ký theo đơn

vị triệu chiếc (million), Net increase là sự gia tăng của mạng và Penetration Rate là

tỷ lệ thâm nhập thị trường.

Cho đến nay, có thể chia làm ba giai đoạn phát triển của điện thoại di động

tương ứng 3 thế hệ như sau :

Thế hệ thứ nhất (1st generation): là các điện thoại di động chỉ đơn giản để

nghe, gọi và nhắn tin. Thế hệ này bị hạn chế rất lớn về các khả năng đáp ứng,

chỉ dùng với mạng tín hiệu tương tự và chưa có được sự "thông minh" theo

một nghĩa nào đó. Thế hệ này là của những năm 1990.

Thế hệ thứ hai (2nd generation): là các điện thoại di động có thêm một vài

tính năng đa phương tiện như chụp ảnh, nghe nhạc và có thể dùng với mạng

tín hiệu số. Đây là thế hệ của những năm sau 2000.

Thế hệ thứ ba (3rd generation): là dòng điện thoại di động thông minh hiện

nay, đáp ứng được các khả năng tính toán và ứng dụng như một máy tính,

kết nối mạng internet và sử dụng được với mạng tốc độ cao.

Sau đây là hình ảnh của một số điện thoại di động theo từng giai đoạn

phát triển.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 3

Hiện nay, xu thế của điện thoại thông minh đang chiếm thị phần lớn với các

đặc điểm có thể gồm:

Có hệ điều hành ở dạng mở

Các đặc tính kỹ thuật được cung cấp cho bên thứ 3

Môi trường phát triển ứng dụng rộng rãi

Các khả năng đáp ứng lớn của mạng di động

Có nhiều nhà phát triển như Apple (iOS), Google (Android), RIM

(BlackBerry), Nokia (Symbian), Microsoft (Windows Phone) và Linux.

Sau đây là hình vẽ cho thấy sự dịch chuyển của thị trường điện thoại thường

sang các thiết bị điện thoại thông minh.

1.1.2. Tiềm năng ứng dụng công nghệ mobile

Có thể thấy điện thoại thông minh hiện đang tiệm cận đến khả năng tính toán

và xử lý của máy tính, bên cạnh đó là môi trường điện toán đám mây được phát

triển tạo cơ hội cho sự lớn mạnh về ứng dụng của điện thoại thông minh. Cùng với

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 4

sự phát triển của thiết bị phần cứng, khả năng đáp ứng cho người dùng của các sản

phẩm phần mềm cũng ngày càng đa dạng. Hiện nay, trên thị trường ứng dụng phần

mềm có rất nhiều sản phẩm ở nhiều lĩnh vực khác nhau, từ giải trí cho đến chăm sóc

sức khỏe, giám sát và điều khiển từ xa các thiết bị ...

Ở thế hệ đầu, công nghệ di động (mobile technology) được phát triển với 4

mục đích chính đó là:

Kết nối mọi người (connecting people),

Chia sẽ thông tin (information sharing),

Truy cập mạng (internet access),

Giải trí (entertainment).

Đến nay, đặc biệt đối với thế hệ di động thứ 3 (smartphone), khả năng đáp

ứng cho người dùng rất lớn nên phạm vi ứng dụng được mở rộng, trợ giúp con

người trong nhiều công việc ở nhiều lĩnh vực của đời sống. Có thể liệt kê một số

lĩnh vực ứng dụng của smartphone :

Giải trí: trò chơi, nghe nhạc, xem phim,...

Y tế: hướng dẫn chăm sóc sức khỏe, hỗ trợ theo dõi bệnh lý, kiểm soát phác

đồ điều trị, hỗ trợ thăm khám bước đầu,...

Giáo dục: theo dõi hoạt động của trẻ em, hỗ trợ học tập và đào tạo, tạo kết

nối - tương tác giữa nhà trường, gia đình, xã hội...

Giao thông: phát hiện các phương tiện đề phòng va chạm, theo dõi & kiểm

soát lưu thông, hỗ trợ theo dõi và ghi nhận hành trình...

Và rất nhiều lĩnh vực khác, hứa hẹn là điện thoại di động thông minh ngày

càng giúp con người tăng hiệu quả công việc, năng suất lao động thúc đẩy sự

phát triển của xã hội.

Hiện nay, chúng ta thấy năng lực tính toán của các điện thoại thông minh

được tăng cường rất mạnh có thể nói gần như tiệm cận đến các máy tính. Bên cạnh

đó, hệ thống hạ tầng mạng cùng với dịch vụ điện toán đám mây ngày càng phát

triển, các thiết bị di động sẽ được tích hợp để khai thác những dịch vụ này nhằm

đưa đến cho người dùng các ứng dụng lớn, đòi hỏi khả năng lưu trữ dữ liệu và tính

toán lớn. Như vậy, phạm vi ứng dụng của các điện thoại thông minh một lần nữa được nhân rộng ra lớn hơn nhiều.

Để thực hiện những mục đích trên chúng ta có thể minh họa sự kết nối, chia sẽ

thông tin trên mạng internet qua sơ đồ sau:

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 5

Các công nghệ mạng kết nối và chia sẽ thông tin trên các thiết bị di động hiện

nay có thể liệt kê như sau:

GSM, GPRS, EDGE,

1G, 2G, 2.5G, 2.75G, 3G và 4G,

IEEE802.11,

InfraRed và Bluetooth,...

Công nghệ GSM (Global System for Mobile Communication) là một trong

những hệ thống truyền dẫn số theo vùng. EDGE cũng tương tự như công nghệ

GSM nhưng được tăng cường về tốc độ truyền tải dữ liệu. GPRS (General

Packet Radio Service) là một chuẩn trao đổi dữ liệu cho các thiết bị không dây

với tốc độ vừa phải.

Hiện nay các mạng tốc độ cao sử dụng thế hệ 3G và 4G được phát triển từ các

thế hệ trước đó (1G, 2G, 2.5G và 2.75G). Có hai phiên bản của thế hệ 3G, UMTS

được sử dụng chủ yếu ở Châu Âu, còn phiên bản CDMA-2000 được phát triển ở

Bắc Mỹ và một số vùng Châu Á. Thế hệ này đạt tốc độ cho phép hội nghị truyền

hình, xem tivi,... Thế hệ 4G là sự kết hợp các công nghệ mạng không dây dựa trên

3G song đạt được tốc độ cao hơn nhiều lần.

IEEE802.11 là một chuẩn cho kết nối mạng cục bộ không dây, có các

phiên bản 802.11a, 802.11b và 802.11g, đ ạt tốc độ truyền dữ liệu 54Mbps.

Công nghệ này được sử dụng cho các thiế t bị cá nhân cầm tay (PDA), máy

tính xác tay (Notebook) ho ặc thậm chí các máy tính để bàn (PC) và điện thoại

thông minh kế t nối được với nhau.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 6

InfraRed là một công nghệ cho phép trao đổi dữ liệu qua cổng hồng ngoại, với

khoảng cách gần, thường sử dụng cho các thiết bị điều khiển từ xa, tốc độ dữ liệu

khoảng 10 Kbps, đòi hỏi không có vật cản giữa hai thiết bị khi thực hiện kết nối.

Bluetooth là công nghệ chủ yếu được sử dụng cho các tai nghe không dây,

điện thoại di động,... Khoảng cách cho phép tối đa giữa hai thiết bị kết nối là 10 mét,

tốc độ dữ liệu khoảng 1Mbps.

Hình vẽ sau cho thấy khả năng kết nối người dùng của điện thoại di động dựa

trên các công nghệ.

Bên cạnh sự phát triển của hạ tầng phần cứng và công nghệ mạng để kết nối

và truyền tải dữ liệu, việc phát triển các ứng dụng thực tiễn cho các thiết bị di động

ngày càng đòi hỏi cấp thiết, đáp ứng nhu cầu cao hơn của xã hội. Các công nghệ

phần mềm được phát triển song song với công nghệ phần cứng để thực hiện điều

này. Hiện nay có một số công nghệ phát triển phần mềm ứng dụng trên điện thoại di

động như: Windows Mobile, Symbian, Embedded Visual C++ và .Net, J2ME,

Android, iOS, RIM... và chúng ta sẽ đề cập chi tiết ở phần tiếp theo.

1.2. Công nghệ cho lập trình trên mobile

Sau đây chúng ta sẽ xem xét một số nền tảng cho phát triển ứng dụng di động, đặc

biệt là các nền tảng hiện đại.

1.2.1. Nền tảng Symbian

Symbian là hệ điều hành điện thoại di động được thiết kế cho điện thoại

thông minh được phát triển bởi Symbian Ltd nhưng hiện đang được duy trì bởi

Accenture. Các nền tảng Symbian là sự kế thừa cho hệ điều hành Symbian và các

thế hệ Nokia. Điện thoại Symbian đầu tiên trên màn hình cảm ứng là Ericsson R380

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 7

điện thoại thông minh đã được phát hành vào năm 2000 và là thiết bị đầu tiên được

bán trên thị trường như là một "điện thoại thông minh". Nó kết hợp một PDA với

một điện thoại di động.

Trong giữa những năm của thập niên đầu của thế kỷ 21, các điện thoại di

động với nền tảng hệ điều hành Symbian phát triển mạnh mẽ, trong đó hãng

Nokia chiếm thị phần rất lớn. Từ các dòng điện thoại di động có máy ảnh đến

có Wi-Fi, rồi tích hợp các tính năng đa phương ti ện khác như GPS, camera độ

phân giải cao và tự động lấy nét cũng như đèn flash LED, kết nối 3G và Wi-Fi

miễn phí và TV-out.

Hình vẽ sau thể hiện các thành phần trong kiến trúc nền tảng của Symbian.

Kernel: là nhân của hệ điều hành Symbian.

Symbian System Layer: là tầng hệ thống, chiếm phần lớn nhất để quản lý,

điều hành hệ thống.

Symbian Application Engines: là tầng quản lý ứng dụng.

UI Design: tầng dùng cho thiết kế giao diện người dùng đồ họa.

1.2.2. Nền tảng Window

Microsoft Windows CE (bây giờ chính thức được gọi là Windows Embedded

Compact và trước đây còn được gọi là Windows Embedded CE, và đôi khi viết tắt

WinCE) là một hệ điều hành được phát triển bởi Microsoft cho các hệ thống nhúng.

Windows CE là một hệ điều hành riêng biệt và ở dạng lõi, chứ không phải là một

phiên bản cắt giảm từ máy tính để bàn Windows.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 8

Microsoft cấp phép cho Windows CE cho các OEM và các nhà sản xuất thiết

bị. Các OEM và các nhà sản xuất thiết bị có thể thay đổi và tạo ra giao diện người

dùng của riêng mình theo kinh nghiệm, với Windows CE cung cấp các nền tảng kỹ

thuật để làm như vậy.

Hình vẽ sau thể hiện các thành phần trong kiến trúc của Window Phone.

1.2.3. Nền tảng Palm

Palm OS (còn được gọi là Garnet OS) là một hệ điều hành điện thoại di động

đầu tiên được phát triển bởi Palm, Inc, cho thiết bị hỗ trợ cá nhân (PDA) vào năm

1996. Palm OS được thiết kế để dễ sử dụng với người dùng đồ họa dựa trên giao

diện màn hình cảm ứng. Nó được cung cấp với một bộ các ứng dụng cơ bản cho

việc quản lý thông tin cá nhân.

Hệ điều hành này đã được mở rộng để hỗ trợ điện thoại thông minh. Một số

được cấp phép khác đã sản xuất các thiết bị được hỗ trợ bởi hệ điều hành Palm. Đến

nay, Palm OS đã được thực hiện trên một loạt các thiết bị di động, bao gồm cả điện

thoại thông minh, đồng hồ đeo tay, chơi game cầm tay, bàn giao tiếp, đọc mã vạch và các thiết bị GPS.

Các tính năng chính của nền tảng Palm OS Garnet là:

Môi trường đơn giản và đơn nhiệm, cho phép chạy các ứng dụng toàn màn

hình với giao diện người dùng cơ bản, thông dụng.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 9

Màn hình đơn sắc hoặc màu với độ phân giải thấp.

Hệ thống đầu vào nhận dạng chữ viết tay được gọi là Graffiti 2.

Công nghệ HotSync để đồng bộ hóa dữ liệu với máy tính để bàn.

Khả năng ghi âm và phát lại âm thanh.

Mô hình bảo mật đơn giản: thiết bị có thể bị khóa bằng mật khẩu, hồ sơ ứng

dụng tùy ý có thể được thực hiện riêng tư.

Truy cập mạng theo chuẩn TCP / IP.

Cổng nối tiếp / USB, hồng ngoại, Bluetooth và kết nối Wi-Fi.

Mở rộng hỗ trợ thẻ nhớ.

Đã được định nghĩa chuẩn định dạng dữ liệu cho các ứng dụng quản lý thông

tin cá nhân để lưu trữ lịch, địa chỉ, công việc và các mục lưu ý, có thể truy

cập bởi các ứng dụng của bên thứ ba.

Đi kèm hệ điều hành Palm là một bộ các ứng dụng tiêu chuẩn.

Sau đây là hình vẽ thể hiện kiến trúc các thành phần trong nền tảng Palm OS.

1.2.4. Nền tảng BlackBerry

BlackBerry là một dòng thiết bị điện thoại phát triển và thiết kế bởi Research In

Motion (RIM). Hệ điều hành chạy trên dòng thiết bị này cũng được phát triển bởi

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 10

BlackBerry, gọi là BlackBerry OS. Điện thoại thông minh BlackBerry đ ầu

tiên được phát hành vào năm 1999, được thiết kế để hoạt động như thiết bị hỗ

trợ cá nhân, máy nghe nhạc di động, trình duyệ t internet, thiết bị chơi game,

máy ảnh và nhiều hơn nữa. Chúng chủ yếu được biết đến với khả năng của họ

để gửi và nhận được email và tin nhắn tức thời trong khi duy trì một mức độ

cao về bảo mật thông qua mã hóa tin nhắn trên thiết bị. Thiết bị BlackBerry

hỗ trợ một lượng lớn các tính năng nhắn tin tức thời, với việc dịch vụ

Messenger BlackBerry độc quyền phổ biến nhất.

1.2.5. Nền tảng Bada

Bada là một hệ điều hành cho các thiết bị di động như điện thoại thông minh

và máy tính bảng. Nó được phát triển bởi Samsung Electronics. Tên của nó có

nguồn gốc từ bada, có nghĩa là "đại dương" hoặc "biển" trong tiếng Hàn. Nó được

sử dụng trong dòng điện thoại từ tầm trung đến điện thoại thông minh cao cấp.

Bada, như Samsung đã đ ịnh nghĩa nó, không phải là một hệ điều hành

riêng của mình, nhưng một nền tảng với một kiến trúc hạt nhân có thể cấu

hình được. Đó là một hệ thống lõi lai giữa hệ điều hành thời gian thực có bản

quyền và nhân của Linux.

Kiến trúc bada bao gồm bốn lớp sau đây:

Kernel: là lớp hạt nhân, lớp này có chứa một trong hai hệ điều hành thời gian

thực hoặc hạt nhân Linux, tùy thuộc vào cấu hình phần cứng thiết bị.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 11

Device: là lớp thiế t bị, lớp này chứa các chức năng cốt lõi của các nền

tảng thiết bị di động được cung cấp bởi hệ thống thiết bị điều hành, đồ

họa và chức năng đa phương tiện, và các thành phần thông tin liên lạc.

Các chức năng này bao gồm như điện thoại, an ninh, đồ họa, và sự kiện

và quản lý cửa sổ.

Service: là lớp dịch vụ, lớp này chứa các chức năng định hướng dịch vụ được

cung cấp bởi các ứng dụng lõi và các thành phần hỗ trợ. Ứng dụng lõi được

cung cấp bởi lớp dịch vụ bao gồm ứng dụng danh bạ và nhắn tin. Để truy cập

vào các tính năng này có thể thông qua các API (giao diện lập trình ứng dụng)

trên lớp khung.

Framework : là lớp khung, lớp này có C++ và các nền tảng web của bada.

Thành phần C++ bao gồm các nền tảng cho ứng dụng, cũng như các giao

diện và các lớp đối tượng cung cấp quyền truy cập vào các chức năng trên

các lớp phía dưới. Khung ứng dụng cung cấp các tính năng cho ứng dụng

quản lý vòng đời, xử lý sự kiện, và điều khiển ứng dụng. Các giao diện được

cung cấp bởi API mở bao gồm một số giao diện cơ bản cần thiết của tất cả

các ứng dụng để xử lý các loại dữ liệu, tiện ích, tính năng thiết bị cơ bản, và

các trạng thái ứng dụng, và để tạo ra các giao diện người dùng. Thành phần

nền web cung cấp các chuẩn đã được thiết lập và các tính năng, chẳng hạn

như HTML, CSS và JavaScript, cũng như các API dựa trên JavaScript cho

điều khiển giao diện và các sự kiện.

Trong kiến trúc của Bada, tầng thiết bị cung cấp các chức năng cốt lõi như

đồ họa, các giao thức, điện thoại, an ninh.

Các tầng dịch vụ cung cấp thêm nhiều tính năng dịch vụ trung tâm như tin

nhắn SMS, lập bản đồ... Để cung cấp các tính năng dưới dạng như một bada Server.

Tầng trên cùng cung cấp một giao diện lập trình ứng dụng (API) trong C++ cho các

nhà phát triển ứng dụng sử dụng. Bada cung cấp nhiều điều khiển giao diện khác

nhau cho nhà phát triển: Nó cung cấp các loại giao diện người dùng cơ bản điều

khiển như Listbox, chọn màu và Tab, có một điều khiển trình duyệt web dựa trên

mã nguồn mở WebKit, và các tính năng Adobe Flash. Cả WebKit và Flash có thể

được nhúng vào bên trong các ứng dụng Bada. Bada hỗ trợ thư viện đồ họa 3D

OpenGL ES 2.0 và cung cấp đặc tính bản đồ tương tác với các điểm quan tâm (POI)

trên bản đồ, và nó cũng có thể được nhúng vào bên trong các ứng dụng bên thứ 3.

Nó cũng hỗ trợ tính năng co giúm để thu phóng, duyệt web theo từng thẻ và cắt, sao

chép, và dán.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 12

Bada hỗ trợ nhiều cơ chế để tăng cường sự tương tác, có thể được tích hợp vào các

ứng dụng. Chúng bao gồm các cảm biến khác nhau như cảm biến chuyển động,

kiểm soát độ rung, nhận diện khuôn mặt, gia tốc, từ kế, độ nghiêng, hệ thống định

vị toàn cầu (GPS), và cảm ứng đa điểm.

Ứng dụng được phát triển trong C++ với Bada SDK và dựa trên môi trường

phát triển tích hợp (IDE) là Eclipse. Chuỗi công cụ dựa trên GNU được sử dụng để

xây dựng và gỡ lỗi các ứng dụng. IDE cũng có giao diện Builder, mà các nhà phát

triển có thể dễ dàng thiết kế giao diện của ứng dụng của họ bằng cách kéo và thả

giao diện điều khiển vào màn hình. Để kiểm tra và sửa lỗi, IDE có chứa một môi

trường giả lập để chạy thử các ứng dụng.

1.2.6. Nền tảng IOS

iOS (hệ điều hành iPhone trước đây) là một hệ điều hành di động phát triển

và phân phối bởi Apple Inc. Lần đầu được phát hành vào năm 2007 cho iPhone và

iPod Touch, nó đã được mở rộng để hỗ trợ các thiết bị khác của Apple như iPad và

Apple TV. Không giống như Microsoft Windows CE (Windows Phone) và Android

của Google, Apple không cung cấp giấy phép cho iOS để cài đặt trên phần cứng

không phải của Apple. Kho ứng dụng AppStore của Apple có lượng ứng dụng và

người dùng rất lớn (chẳng hạn, năm 2012 đã có hơn 700.000 ứng dụng iOS với số

lượt được tải về hơn 30 tỷ lần).

Giao diện người dùng của iOS dựa trên khái niệm về thao tác trực tiếp, sử

dụng các cử chỉ cảm ứng đa điểm. Yếu tố kiểm soát giao diện bao gồm thanh trượt,

công tắc, và các nút. Đáp ứng cho người sử dụng đầu vào là ngay lập tức và cung

cấp một giao diện lỏng. Tương tác với các hệ điều hành bao gồm các cử chỉ chẳng

hạn như kéo mạnh, vuốt, chạm, tất cả đều có định nghĩa cụ thể trong bối cảnh của

hệ điều hành iOS và giao diện cảm ứng đa điểm của nó. Cảm biến gia tốc được sử

dụng bởi một số ứng dụng để đáp ứng lắc thiết bị (một lệnh hay dùng là lệnh undo)

hoặc xoay nó theo ba hướng (một lệnh hay dùng là chuyển đổi màn hình từ chế độ

dọc sang chế độ ngang).

iOS có nguồn gốc từ OS X, nó được chia sẻ từ nền tảng Darwin, và do đó là

một hệ điều hành Unix. iOS là phiên bản di động của Apple OS X, một hệ điều

hành được sử dụng trên máy tính của Apple.Trong iOS, có bốn tầng trừu tượng như

hình vẽ bên dưới: tầng nhân hệ điều hành (Core OS), tầng dịch vụ lõi (Core

Services), tầng đa phương tiện và dịch vụ ứng dụng (Media), tầng giao diện người

dùng (Cocoa Touch).

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 13

1.2.7. Nền tảng Java ME

Java MicroEdition (ME) là một bộ phận chuyên biệt của nền tảng Java nhằm

cung cấp một tập các Java API để phát triển ứng dụng cho các thiết bị nhỏ và cấu

hình thấp. Do đó nó có thể bao gồm nhiều thiết bị với các công nghệ phần cứng

khác nhau. Java ME được chia thành các thành phần gồm cấu hình (configurations)

và hồ sơ (profiles), nhằm xác định một số phần nhất định của Java API phù hợp

được để chạy trên một thiết bị cụ thể. Các điện thoại di động phải thể hiện CLDC

(Connected Limited Device Configuration) cùng với MIDP (Mobile Information

Device Profile), cả hai chúng định nghĩa API để các lập trình viên có thể sử dụng để

xây dựng các ứng dụng di động.

Tuy nhiên, cả CLDC và MIDP đều tồn tại với các phiên bản khác nhau để

phù hợp cho các điện thoại di động khác nhau. Chẳng hạn, hiện tại, Nokia N95 thực

hiện phiên bản mới nhất của CLDC là 1.1 và MIDP là 2.0. Điều quan trọng là một

phiên bản thứ 3 mới của MIDP hiện đang được phát triển. Máy ảo Java (Java

Virtual Machine) cho các thiết bị di động đã được viết lại và nó không còn là bộ

nhớ nhỏ hơn nhiều so với máy tính như trước đây mà đã được tối ưu đặc biệt cho

các thiết bị nhỏ như điện thoại di động.

Nền tảng phát triển ứng dụng này (Java ME) có thể được dùng để phát triển

ứng dụng chạy trên nhiều hệ điều hành khác nhau với các kiến trúc cấu hình phần

cứng khác nhau. Do vậy đã được nhiều nhà phát triển sử dụng để xây dựng các ứng

dụng trên điện thoại di động.

Sau đây là hình vẽ minh họa kiến trúc các thành phần cơ bản trong nền tảng

Java ME.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 14

1.2.8. Nền tảng Android

Android là một hệ điều hành dựa trên Linux được thiết kế chủ yếu cho màn

hình cảm ứng thiết bị di động như điện thoại thông minh và máy tính bảng, được

phát triển bởi Google cùng với Open Handset Alliance. Ban đầu được phát triển bởi

Android Inc, mà Google hỗ trợ về tài chính và sau đó mua lại vào năm 2005.

Android đã được công bố trong năm 2007 cùng với sự thành lập của Open Handset

Alliance, một tổ hợp 86 phần cứng, phần mềm và các công ty viễn thông dành cho

việc thúc đẩy các tiêu chuẩn mở cho các thiết bị di động.

Google phát hành mã Android là mã nguồn mở, dưới giấy phép Apache. Dự

án Android Open Source (AOSP), dẫn đầu bởi Google, được giao nhiệm vụ duy trì

và phát triển hơn nữa của Android. Ngoài ra, Android có một cộng đồng lớn của các

nhà phát triển viết các ứng dụng mở rộng chức năng của thiết bị. Các nhà phát triển

viết chủ yếu trong một phiên bản tùy biến của Java. Các ứng dụng có thể được tải

về từ cửa hàng trực tuyến như Google Play (trước đây là Android Market), các cửa

hàng ứng dụng do Google, hoặc các trang web của bên thứ ba. Kho ứng dụng trên

nền tảng Android phát triển rất mạnh mẽ, số lượng và chất lượng ứng dụng ngày

càng tăng, số lượng các nhà viết ứng dụng trên nền tảng ngày càng đông. Chẳng hạn

đến tháng tám năm 2012, đã có hơn 600.000 ứng dụng có sẵn cho Android, và số

lượng ước tính của các ứng dụng tải về từ Google Play là 20 tỷ.

Điện thoại đầu tiên hỗ trợ Android được bán ra trong tháng 10 năm 2008, và

đến cuối năm 2010, Android đã trở thành nền tảng điện thoại thông minh hàng đầu

thế giới. Nó có một thị phần điện thoại thông minh trên toàn thế giới là 59% vào

đầu năm 2012.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 15

Kiến trúc Android gồm các thành phần chính được thể hiện trong hình vẽ

dưới đây.

(1) Linux Kernel: là các dịch vụ lõi (bao gồm trình điều khiển phần cứng, xử lý và

quản lý bộ nhớ, bảo mật, mạng và quản lý nguồn năng lượng) được thể hiện bởi hạt

nhân của Linux 2.6. Hạt nhân của Linux cũng cung cấp một tầng trừu tượng giữa

phần cứng và các phần còn lại.

(2) Libraries: là hệ thống thư viện nằm ngay phía trên đầu của hạt nhân, bao gồm

nhiều thư viện lõi khác nhau của C/C++ như là "libc" và "SSL", cũng như:

- Một thư viện đa phương tiện để phát âm thanh và trình chiếu phim.

- Một bộ quản lý giao diện để cung cấp quản lý hiển thị trên màn hình.

- Thư viện đồ họa bao gồm SGL và OpenGL cho đồ họa 2D và 3D.

- SQLite cho việc hỗ trợ quản trị cơ sở dữ liệu cục bộ.

- SSL và WebKit cho việc tích hợp trình duyệt web và bảo mật Internet.

(3) Android Run Time: là môi trường chạy Android, điều làm cho một điện thoại

Android đúng thực sự là chính nó chứ không phải là một điện thoại di động của

Linux. Nó bao gồm các thư viện lõi và máy ảo Dalvik, môi trường chạy Android là

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 16

bộ máy nhằm tăng cường sức mạnh cho các ứng dụng, cùng với các thư viện để làm

cơ sở cho các khung ứng dụng. Trong đó,

- Core libraries: là thư viện lõi. Trong khi phát triển ứng dụng Android được thực

hiện đúng như trong Java thì máy ảo Dalvik không phải là một máy ảo Java. Thư

viện lõi Android cung cấp hầu hết các tính năng có sẵn trong các thư viện lõi Java

cũng như các thư viện chuyên biệt của Android.

- Dalvik Virtual Machine: là máy ảo Dalvik. Dalvik là một máy ảo được đăng ký

làm cơ sở nhằm tối ưu hóa để đảm bảo rằng một thiết bị có thể chạy nhiều thể hiện

của nó hiệu quả. Nó dựa trên nhân của Linux cho việc quản lý bộ nhớ ở mức thấp

và quản lý luồng.

(4) Application Framework: là khung ứng dụng. Khung ứng dụng cung cấp các lớp

đối tượng để tạo ra các ứng dụng Android. Nó cũng cung cấp các lớp trừu tượng

(generic abstraction) để truy cập phần cứng và quản lý giao diện người dùng và tài

nguyên ứng dụng.

(5) Application Layer: là tầng ứng dụng. Tất cả các ứng dụng, gồm cả ứng dụng nội

bộ (Native Apps) và ứng dụng bên thứ ba (Third Party Apps), được xây dựng trên

tầng ứng dụng bằng cách sử dụng chung thư viện API. Tầng ứng dụng thực thi bên

trong môi trường Android và sử dụng các lớp đối tượng và các dịch vụ được cung

cấp từ khung ứng dụng.

1.3. Công nghệ J2ME và cách lập trình

1.3.1. Giới thiệu về công nghệ J2ME

1.3.1.1. Giới thiệu J2ME của ngôn ngữ lập trình Java

Ngôn ngữ lập trình Java bước đầu được phát triển để xây dựng các ứng dụng

ở máy đầu cuối (máy khách) , sau đó được mở rộng và phát triển để xây dựng các

ứng dụng máy chủ. Hiện nay nó có ba phiên bản chính đó là J2SE, J2EE và J2ME.

Mỗi phiên bản cung cấp một môi trường đầy đủ để chạy ứng dụng Java, bao gồm

máy ảo Java (JVM) và các thư viện lớp để lập trình ứng dụng (Java API). Ba phiên

bản trên nhắm vào ứng dụng trên ba loại thiết bị khác nhau, với phiên bản J2ME

cho thiết bị di động cầm tay hoặc thiết bị nhúng.

Minh họa 3 phiên bản của Java như sau :

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 17

Các đặc trưng và quy định trong phiên bản J2ME được định nghĩa thông qua

cộng đồng JCP (Java Community Process), như đã thực hiện với hai phiên bản

J2SE và J2EE. Hiện nay có khoảng 40 bộ phận độc lập để giải quyết cho vấn đề lập

trình phiên bản J2ME, là một chủ đề nóng trong cộng đồng Java, tại địa chỉ

www.jcp.org.

Phiên bản J2ME đòi hỏi có sự hạn chế đối với thiết bị phát triển ứng dụng,

có giới hạn về bộ nhớ, kích thước màn hình nhỏ, phương pháp nhập liệu thay đổi và

tốc độ xử lý thấp. Gồm những thiết bị như điện thoại di động, máy nhắn tin, PDA,...

và hiện nay hầu hết các sản phẩm phần mềm ứng dụng trên điện thoại di động được

phát triển bằng công nghệ J2ME.

Phần lõi của công nghệ J2ME gồm 3 yếu tố sau: cấu hình (configuration),

mô tả (profile) và các gói tùy chọn (optional packages). Chúng xác định các đặc

tính của Java sẽ sử dụng trong J2ME, gồm cả giao diện lập trình ứng dụng (API) và

việc đóng gói một ứng dụng J2ME.

1.3.1.2. Môi trường phát triển của J2ME

Để phát triển ứng dụng theo công nghệ J2ME chúng ta phải sử dụng môi

trường phát triển với các chức năng cơ bản như biên dịch và đóng gói một ứng dụng

J2ME, đặc biệt phải có một bộ Emulator để thử nghiệm ứng dụng J2ME trên môi

trường máy tính như là trên thiết bị di động. Hiện nay có một số môi trường như

j2mepolish-1.2.4, sun java wireless toolkit, netbean,... Ở đây chúng ta sử dụng môi

trường của hãng Sun cung cấp khá dễ dàng và đầy đủ (sử dụng NetBeans).

Các thành phần cơ bản của J2ME:

a) Thành phần cấu hình - Configuration

C

JJJ

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 18

Cấu hình là mộ t bộ đầy đủ môi trường chạy của Java, bao gồm ba thành

phần sau :

Một máy ảo Java (JVM) để thi hành các mã byte của chương trình Java.

Hệ thống mã thực thi làm giao diện với hệ thống thiết bị vật lý

Tập các lớp của thư viện lõi của Java

Để sử dụng một cấu hình, một thiết bị phải chắc chắn đúng với những đòi

hỏi tối thiểu đã định nghĩa trong đó. Mặc dù một cấu hình cung cấp một môi trường

Java hoàn chỉnh, tập các lớp lõi là khá nhỏ nhưng phải được tăng cường thêm các

lớp bởi thành phần profile của J2ME hoặc bởi bộ cấu hình. Thực tế cấu hình không

định nghĩa bất kỳ một lớp giao diện người dùng nào.

J2ME định nghĩa hai loại cấu hình, Connected Limited Device Configuration

(CLDC) và Connected Device Configuration (CDC). CLDC dành cho các thiết bị

có những hạn chế về dung lượng bộ nhớ nhỏ, tốc độ xử lý thấp. Máy ảo Java được

sử dụng ở đây có tên là KVM (Kilobyte Virtual Machine), là một bộ phận con của

JVM và chỉ chạy cho các chương trình nhỏ, nó chứa các lớp lõi cơ bản tối thiểu như

các gói java.lang, java.io, java.util và một số lớp trong gói java.microedition.io. Mặt

khác CDC sử dụng máy ảo Java có tên là CVM và chứa một lượng các lớp lớn hơn

CLDC, vì vậy nó đòi hỏi thiết bị có nhiều bộ nhớ hơn và tốc độ xử lý nhanh hơn.

Hình vẽ sau mô tả mối tương quan giữa hai gói cấu hình CDC và CLDC với

J2SE.

b) Thành phần mô tả - Profile

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 19

Các gói cấu hình đã giúp để phân biệt các loại thiết bị khác nhau. Nhưng vì

có rất nhiều thiết bị khác xung quanh mỗi loại vẫn phải được tiếp tục hoàn thiện bởi

vì một gói cấu hình có thể bao gồm nhiều thiết bị được áp dụng là khác nhau như

điện thoại di động, tủ lạnh, hoặc máy giặt. Điện thoại di động và máy giặt có thể

thuộc về cùng một gói cấu hình nhưng rõ ràng là một ứng dụng điện thoại di động

không phải có cùng chức năng để chạy trên các máy giặt hoặc ngược lại. Như vậy,

J2ME cung cấp các khái niệm về một gói mô tả (profiles) để đạt được tính thích

nghi của môi trường ứng dụng.

Một gói mô tả trong J2ME giải quyết các nhu cầu cụ thể của một số phân

khúc sản phẩm theo chiều dọc (ví dụ như ngân hàng hoặc ứng dụng thanh toán)

hoặc theo chủng loại thiết bị. Theo đó, gói mô tả có thể bao gồm các thư viện được

thêm nhằm làm phù hợp với nhiều thiết bị cụ thể hơn là các thư viện được cung cấp

trong một cấu hình. Gói mô tả được thực hiện trên một cấu hình. Các ứng dụng khi

đó được viết dựa trên một gói mô tả cụ thể, như là gói mô tả được dành cho một cấu

hình cụ thể. Cả gói cấu hình và gói mô tả xác định một tập hợp các lớp Java API

được sử dụng bởi các ứng dụng. Một thiết bị được thiết kế để hỗ trợ một hoặc một

số gói mô tả, chấp nhận để thực thi tất cả các tính năng và lớp Java API được chỉ

định bởi gói mô tả và gói cấu hình tương ứng.

Từ quan điểm triển khai, một gói mô tả như là một bộ sưu tập các Java API

gồm thư viện các lớp đối tượng lưu trú trên một gói cấu hình và cung cấp những

tính năng cụ thể đối với các thiết bị trong một phân khúc sản phẩm cụ thể.

J2ME hiện nay cung cấp một số gói mô tả cơ bản như sau:

- MIDP (Mobile Information Device Profiles): gói mô tả cho các thiết bị

thông tin di động (điện thoại di động). Bằng cách xây dựng dựa trên CLDC, gói mô

tả này sẽ cung cấp một nền tảng tiêu chuẩn cho thiết bị thông tin di động kích thước

nhỏ, có hạn chế về tài nguyên vật lý, dây kết không dây như điện thoại di động,

máy nhắn tin hai chiều. Ngoài việc kết nối không dây, các thiết bị này có màn hình

nhỏ, bộ phận thu đầu vào hạn chế, hạn chế bộ nhớ lưu trữ cục bộ, tuổi thọ pin và

khả năng tính toán xử lý của CPU.

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 20

- Foundation Profiles (FP): Gói mô tả này phục vụ hai mục đích. Thứ nhất,

nó cung cấp một gói mô tả của nền tảng Java thế hệ 2 phù hợp cho các thiết bị cần

được hỗ trợ cho một môi trường Java giàu tính kết nối mạng, nhưng không yêu cầu

một giao diện người dùng đồ họa. Thứ hai, nó sẽ cung cấp một gói mô tả cơ bản

bao gồm các mô tả cần phải xây dựng trên khả năng mà nó có cung cấp bằng cách

thêm vào như giao diện người dùng đồ họa hay các tính năng khác.

- Một số gói mô tả khác như: Personal Profile để chạy trên gói cấu hình CDC,

RMI để chạy trên nền của gói FP và CDC, PDA để chạy trên gói cấu hình CLDC.

c) Thành phần tùy chọn – Optional Packages

Là các gói thư viện cung cấp các tính năng thêm cho môi trường ứng dụng,

như là các thư viện xử lý đa phương tiện, thư viện xử lý đồ họa không gian...

Sau đây là hình vẽ minh họa các thành phần trong công nghệ J2ME và quan

hệ với 2 hướng công nghệ khác là J2SE và J2EE. Thành phần máy ảo java trong

công nghệ J2ME dùng cho gói cấu hình CLDC đó là KVM (Kylôbyte Virtual

Machine).

Các bước chính để phát triển một ứng dụng J2ME như sau:

Bước 1) Xác định cụ thể loại thiết bị sẽ chạy ứng dụng để lập chương trình phù hợp

với thiết bị đó (trình bày ở phần sau).

Bước 2) Lập chương trình bằng ngôn ngữ Java theo công nghệ J2ME để thực hiện

bài toán đặt ra, có thể sử dụng một trong các chương trình soạn thảo bất kỳ nhưng

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 21

phải lưu vào máy dạng text, không có định dạng. Ví dụ như NotePad, WordPad, hay

thậm chí JCreator.

Bước 3) Dịch chương trình và đóng gói thành một ứng dụng J2ME, sử dụng mô-

đun KToolbar của Wireless Toolkit hoặc tích hợp sẵn trong NetBean.

Bước 4) Chạy thử nghiệm ứng dụng trên phần mềm Emulator (trong NetBean được

tích hợp sẵn).

1.3.2. Cách lập trình trong J2ME

a) Khái niệm về midlet và bộ midlet (midlet suit)

Để ứng dụng vào các thiết bị điện thoại di động, chúng ta sử dụng gói thư

viện và cấu hình trong J2ME là MIDP và CLDC. Tất cả các ứng dụng của Java

được chạy trên các thiết bị hỗ trợ MIDP/CLDC đều được coi là các midlet. Một

midlet luôn phải bao gồm ít nhất một lớp được thừa kế từ lớp trừu tượng MIDlet

khai báo trong gói thư viện sau và cần được nạp ngay đầu chương trình bằng lệnh:

import javax.microedition.midlet.*;

Một midlet có thể sử dụng các phương thức của lớp MIDlet để được phục vụ

từ môi trường thực thi JVM, để làm điều này midlet chỉ cần sử dụng các hàm API

đã được định nghĩa trong MIDP.

Một nhóm các midlet có quan hệ và được tập hợp lại được gọi là một bộ

midlet (midlet suite). Tất cả các midlet trong một bộ được đóng gói (packaged)

và cài đặt lên thiết bị như là một đơn thực thể, các MIDlet này có thể cùng bị hủy

cài đặt hoặc loại bỏ khỏi thiết bị cùng một lúc. Các midlet trong một bộ có thể

chia sẻ các thành phần tĩnh và các nguồn tài nguyên của môi trường thực thi:

• Tại thời điểm thực thi, nếu thiết bị phần cứng có yêu cầu nhiều hơn một

midlet được gọi, khi đó các midlet được gọi trong cùng một bộ midlet sẽ thực thi

trên cùng một máy ảo Java. Do các midlet được gói trong cùng một bộ nên nó sẽ

sử dụng chung các khởi tạo của các lớp và các nguồn tài nguyên đã được nạp vào

trong máy ảo JVM. Điều này có nghĩa là dữ liệu có thể được chia sẻ giữa các midlet,

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 22

máy ảo Java sẽ đồng bộ hóa (synchronization) các nguồn tài nguyên này để bảo vệ

các truy nhập từ các midlet hoặc các bộ midlet khác trong quá trình thực thi.

• Dữ liệu lưu trữ trên thiết bị được quản lý theo cấp độ của bộ midlet. Các

midlet trong cùng một bộ có thể truy cập đến các vùng dữ liệu của nhau. Tuy nhiên

một midlet trong bộ này sẽ không được quyền truy cập đến vùng dữ liệu của midlet

nằm trong bộ khác.

b) Vòng đời của midlet

Một midlet gồm tập hợp các pha đóng vai trò là các thành phần của một

vòng đời midlet, các pha này luôn luôn được đặt ở một trong ba trạng thái sau:

• Pause: Một midlet được đặt vào trạng thái dừng ngay sau khi cấu tử

(constructor) được gọi nhưng trước khi bộ quản lý ứng dụng được khởi động.

Khi một midlet được khởi động, nó có thể chuyển sang các trạng thái Pause hoặc

Active nhiều lần trong một vòng đời.

• Active: Trạng thái này cho biết một midlet đang được thực thi.

• Destroy: Một midlet được giải phóng các tài nguyên mà nó chiếm giữ và

được đóng lại bởi trình quản lý ứng dụng.

Lớp MIDlet hỗ trợ một số phương thức cơ bản để giúp chuyển đổi các trạng

thái theo sơ đồ sau:

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 23

Trong đó, phương thức “startApp” thường được ghi đè để thực hiện các hành

động ban đầu khi chương trình chạy mà chúng ta mong muốn. Còn hai phương thức

“pauseApp” và “destroyApp” vẫn được ghi đè nhưng nội dung có thể để trống nếu

không muốn. Lý do cần phải ghi đè cả 3 phương thức trên là chúng đều ở dạng trừu

tượng (abstract) trong lớp cơ sở MIDlet của MIDP/CLDC.

c) Khởi tạo một ứng dụng midlet

Như đã trình bày, một ứng dụng midlet có thể bao gồm nhiều lớp nhưng ít

nhất luôn phải có một lớp được thừa kế từ lớp trừu tượng MIDlet được định nghĩa

trong gói javax.microedition.midlet. Cấu trúc cơ bản của một ứng dụng midlet

được định nghĩa như sau:

import javax.microedition.midlet.*;

public class name_of_class extends MIDlet {

/* ... MỘT SỐ NỘI DUNG KHÁC ...*/

public void startApp(){

/* ... NỘI DUNG KHỞI CHẠY CHƯƠNG TRÌNH ...*/

}

public void pauseApp(){}

public void destroyApp(boolean dk){}

}

Sau đây là bảng các hàm API của lớp MIDlet.

Phương thức Mô tả

Giao tiếp giữa bộ quản lý ứng dụng với MIDlet

abstract void startApp() MIDlet được đặt vào trạng thái kích hoạt

abstract void pauseApp() MIDlet được đặt vào tạng thái tạm dừng

abstract void

destroyApp(boolean dk)

MIDlet được giải phóng

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 24

Giao tiếp giữa MIDlet và bộ quản lý ứng dụng

final void notifyDestroyed() MIDlet yêu cầu được giải phóng

final void notifyPaused() MIDlet yêu cầu được tạm dừng

final void resumeRequest() MIDlet yêu cầu được kích hoạt.

Truy cập thuộc tính của một MIDlet từ bộquản lý ứng dụng

final String getAppProperty

(String key)

Nhận các thuộc tính từcác JAD và JAR files.

Ví dụ 2.1: Lập trình một midlet để hiện thị lên màn hình thông báo các thông tin

cá nhân của một người trong thời gian 15 giây.

Trong ví dụ này sử dụng lớp đối tượng Alert sẽ được trình bày chi tiết ở phần

sau.

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

public class Vidu2_1 extends MIDlet {

public void startApp() {

Alert tb = new Alert("THÔNG TIN CÁ NHÂN",

" Họ tên: Nguyễn Văn An"+

"\n Ns: 10/11/1976"+

"\n Quê quán: Hà Nội",

null, AlertType.INFO);

tb.setTimeout(15000);

Display.getDisplay(this).setCurrent(tb);

}

public void pauseApp() {}

public void destroyApp(boolean t) {}

}

Màn hình kết quả chạy chương trình trên netbean như sau:

Trung tâm Đào tạo E-learning Cơ hội học tập cho mọi người

Lập trình thiết bị di động - Bài 1 Trang 25

Chúc Anh/ Chị học tập tốt!