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

XÂY DỰNG BẢN ĐỒ TRÊN ĐIỆN THOẠI DI ĐỘNG CÓ HỖ TRỢ JAVA - 2 ppt

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 (603.42 KB, 17 trang )









Chương 1 : Tổng quan về lập trình trên điện thoại di động

1
Chương 1 : TỔNG QUAN VỀ LẬP TRÌNH TRÊN ĐIỆN THOẠI DI ĐỘNG
1.1. Đôi nét về thị trường điện thoại di động Việt Nam :
1.1.1. Sự phát triển của thị trường thông tin di động :

Thị trường thông tin di động Việt Nam là một trong những thị trường phát
triển nhanh nhất khu vực Đông Nam Á. Theo đánh giá của BMI - Tập đoàn xuất
bản chuyên nghiên cứu và đánh giá thị trường viễn thông thế giới, năm 2003, thị
trường thông tin di động Việt Nam đạt tốc độ tăng trưởng 43% và năm 2004 là
65%.
Tại Hội nghị quốc tế về thông tin di động lần 2 (2nd Mobiles Vietnam) diễn
ra tại TP.HCM ngày 11 và 12/5 nă
m 2005, các chuyên gia dự báo trong năm 2005,
tổng số thuê bao di động tại Việt Nam sẽ đạt 7,3 triệu và năm 2008 sẽ lên đến mức
21,2 triệu. Tuy nhiên, Việt Nam vẫn là một trong những quốc gia có mật độ điện
thoại di động thấp nhất ở khu vực châu Á - Thái Bình Dương, do vậy đây sẽ là địa
điểm hấp dẫn để các doanh nghiệp trong nước cũng như các đối tác nước ngoài khai
thác và tìm kiếm cơ hội kinh doanh.
Hiện nay, Việt Nam có 6 nhà khai thác, cung cấp dịch vụ thông tin di động
thuộc 5 doanh nghiệp là : VNPT (Vinafone, Mobifone), Công ty Viễn thông quân
đội (Viettel), Công ty cổ phần viễn thông Sài Gòn (Saigon Postel), Công ty cổ phần


viễn thông Hà Nội (Hanoi Telecom) và Công ty Viễn thông Điện lực (VP Telecom).
Trong đó Hanoi Telecom và VP Telecom dự kiến khai trương mạng vào đầu năm
2006.

Tiềm năng của thị trường thông tin di động Việt Nam là điều được khẳng
định, nhưng vẫn là một ẩn số đối với các nhà phân tích thị trường bởi nhu cầu sử
dụng của người tiêu dùng cũng như khả năng cung cấp của các nhà khai thác vẫn
đang ở mức khám phá ban đầu.
Việt Nam được coi là thị trường rất hấp dẫn trong lĩnh vực thông tin di động.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

2
1.1.2. Nhu cầu phát triển phần mềm cho điện thoại di động :

Điện thoại di động đầu tiên ra đời với chức năng như một chiếc điện thoại
thông thường, đó là gọi và nhận cuộc gọi. Sự phát triển mạnh mẽ của nền kinh tế
ngày càng khẳng định vai trò của thông tin liên lạc đến khả năng thành bại của việc
cạnh tranh trong kinh doanh. Ngoài ra, nhu cầu trao đổi thông tin, giải trí của con
người cũng ngày càng được nâng cao và nhờ vào sự
tiến bộ về mặt kỹ thuật, chiếc
điện thoại di động ngày càng có thêm nhiều tính năng mới, đa dạng hơn, tiến bộ hơn
và hiện đại hơn. Màn hình từ đơn sắc chuyển sang màn hình màu, từ hỗ trợ tin nhắn

dạng văn bản (SMS) chuyển sang hỗ trợ tin nhắn có hình ảnh, âm thanh (MMS), hỗ
trợ quay phim, xem phim, chụp ảnh, nghe nhạc…
Năng lực xử lý và lưu trữ của điện thoại di động cũng liên tục được cải tiến.
Các hãng sản xuất đã làm cho chiếc điện thoại trở nên linh động hơn, giúp cho
người sử dụng có thể dễ dàng cấu hình giao diện và các ứng dụng. Đặc biệt, bằng
cách cho phép lập trình viên viết thêm các chương trình ứng dụng, trò chơi cho điện
thoại, chiếc điện thoại di động hiện nay thự
c sự là một công cụ làm việc, học tập,
vui chơi và giải trí hữu ích đối với mọi người.
Trong vài năm gần đây, hoạt động sản xuất phần mềm cho điện thoại di động
phát triển khá mạnh mẽ. Rất nhiều sản phẩm phần mềm đã ra đời để phục vụ tốt hơn
cho người sử dụng, trong đó, số lượng ph
ần mềm nhiều nhất là các trò chơi, từ điển,
truy cập Internet, trình diệt virus, soạn thảo văn bản và các tiện ích khác. Trong năm
2004, giá trị sản xuất phần mềm cho điện thoại di động trên thế giới đạt 3,1 tỉ USD
và dự đoán sẽ đạt 18,5 tỉ USD vào năm 2009. Doanh thu sản xuất phần mềm cho
điện thoại di động năm 2004 được phân bố như sau :








Chương 1 : Tổng quan về lập trình trên điện thoại di động

3

Hình 1-1 : Doanh thu sản xuất phần mềm cho điện thoại di động năm 2004

Tại châu Á, chỉ riêng Nhật và Hàn Quốc đã chiếm 1,3 tỉ USD, còn lại là
Trung Quốc và Ấn Độ. Tại Việt Nam, doanh thu không đáng kể. Hầu hết các phần
mềm ứng dụng được phát triển dành cho điện thoại di động đều là phần mềm miễn
phí và do các công ty, các trường đại học và nhiều cá nhân thực hiện chủ yếu nhằm
mục đích phục vụ cho lợi ích của cộng đồng. Tuy nhiên, chúng ta v
ẫn có thể hi
vọng vào tương lai của một thị trường đầy tiềm năng và trong quá trình hội nhập
kinh tế quốc tế, người Việt Nam sẽ có thói quen tôn trọng quyền sở hữu trí tuệ nói
chung và bản quyền phần mềm nói riêng.









Chương 1 : Tổng quan về lập trình trên điện thoại di động

4
1.2. Lập trình trên điện thoại di động :
1.2.1. Quá trình phát triển ứng dụng J2ME :

Thông thường, việc phát triển ứng dụng J2ME được tiến hành qua các giai
đoạn như sau :
a) Viết mã nguồn Java
b) Biên dịch
c) Obfuscate (tùy chọn) :
Obfuscate sẽ loại bỏ các thông tin không cần thiết trong class, chẳng hạn như

tên của các biến cục bộ. Các lớp, phương thức, interface, cũng được đổi tên để
làm cho chúng ngắn gọn hơn. Một gói đã được obfuscate sẽ bảo vệ các tập tin class
kh
ỏi việc dịch ngược (decompile) và reverse engineering. Ngoài việc bảo vệ mã
nguồn, obfuscate còn giảm kích thước của các tập tin class, làm cho kích thước của
tập tin JAR cũng giảm đi. Việc giảm kích thước rất có ý nghĩa bởi vì các thiết bị
MIDP thường có bộ nhớ bị giới hạn.
d) Pre-verify (tiền kiểm tra).
Bộ kiểm tra (verify) trong J2SE tốn ít nhất là 50 KB, không kể việc tiêu tốn
vùng nhớ heap và thời gian xử lý. Để giảm việ
c tiêu tốn này cho J2ME, việc kiểm
tra tập tin class sẽ được chia thành hai giai đoạn. Quá trình tiền kiểm tra trước khi
triển khai sẽ thêm các tập tin class các tham số phụ để tăng tốc quá trình kiểm tra
lúc thực thi. Thiết bị sẽ thực hiện quá trình kiểm tra sơ lược bằng cách sử dụng các
tham số phụ được phát sinh trong quá trình tiền kiểm tra.
e) Tạo tập tin JAR
f) Tạo tập tin JAD
g) Thực thi trên trình giả lập thích hợp
h) Triển khai trên thiết bị di động








Chương 1 : Tổng quan về lập trình trên điện thoại di động

5

1.2.2. Các J2ME IDE :

Môi trường phát triển tích hợp (IDE) cải thiện năng suất của lập trình viên
bằng cách cung cấp một tập các công cụ lập trình tích hợp thông qua giao diện đồ
họa (GUI), hỗ trợ công cụ soạn thảo, quản lý project, biên dịch và gỡ rối
(debugger).
Thành viên mới nhất trong gia đình Java là J2ME. Khi nhiều chuyên gia dự
đoán về sự phát triển lớn mạnh của thị trường phát triển các ứng dụng J2ME, các
nhà phát triển IDE đã
đưa ra các bản mở rộng cho các sản phẩm IDE của họ để hỗ
trợ thêm J2ME. Ngoài ra, các nhà cung cấp chuyên nghiệp khác cũng đã phát triển
các IDE đơn dành riêng cho J2ME.
Một IDE cho J2ME cần phải cung cấp các tiện ích sau :
a) Quản lý project :
Quản lý các tập tin nguồn và các thông số MIDlet.
b) Trình soạn thảo :
Soạn thảo mã nguồn và các tài nguyên.
c) Build :
Biên dịch, obfuscate và pre-verify mã nguồn.
d) Đóng gói (package) :
Đóng gói các MIDlet thành các tập tin JAR và JAD.
e) Giả lập (emulation) :
Thực thi các MIDlet v
ới một trình giả lập.
f) Gỡ rối (debugger)









Chương 1 : Tổng quan về lập trình trên điện thoại di động

6
1.3. Giới thiệu một số công cụ hỗ trợ lập trình cho J2ME :
1.3.1. J2ME Wireless Toolkit (WTK) :

J2ME Wireless Toolkit (WTK) là một bộ công cụ phát triển J2ME cung cấp
cho các lập trình viên môi trường giả lập, công cụ, tài liệu và các ví dụ cần thiết để
phát triển các ứng dụng MIDP. WTK không phải là một IDE hoàn chỉnh, bởi vì nó
đã bỏ các tính năng soạn thảo và gỡ rối vốn được xem là bắt buộc phải có trong một
IDE. Tuy nhiên, KToolbar, được cung cấp trong bộ WTK là một môi trường phát
triển tối thiểu cung cấp một GUI dành cho việc biên dịch,
đóng gói và thực thi các
ứng dụng MIDP.
WTK 2.2 cũng cung cấp các bộ giả lập đã được cải tiến với các tính năng giả
lập, monitor và debug mới. Ngoài ra, WTK cũng có một cơ chế được thêm vào tiến
trình build của KToolbar để cho phép việc tích hợp và thực thi bộ obfuscate Java
bytecode khi đóng gói MIDlet suite.
WTK 2.2 được cải thiện tốc độ và hỗ trợ các API mới, gồm :
 Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)
 Mobile Information Device Profile (MIDP) 2.0 (JSR 118)
 Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185)
 Wireless Messaging API (WMA) 2.0 (JSR 205)

Mobile Media API (MMAPI) 1.1 (JSR 135)
 PDA Optional Packages for the J2ME Platform (JSR 75)
 Java APIs for Bluetooth (JSR 82)

 J2ME Web Services Specification (JSR 172)
 Mobile 3D Graphics API for J2ME (JSR 184)
Mỗi project có một thư mục dành riêng trong thư mục apps. Thư mực apps
nằm bên trong thư mục chính của WTK.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

7

Các thư viện của hãng thứ ba có thể được cấu
hình bên trong KToolbar. Ngoài ra, các thư viện cần
thiết cho từng project có thể được chép thủ công vào thư
mục lib bên trong thư mục project. Nếu một thư viện cần
cho tất cả project, nó có thể được chép vào thư mục
apps/lib.
Khi KToolbar project được tạo ra, cấu trúc thư
mục project sẽ được thiết lập. Ngoài ra các tập tin JAD
va manifest cũng được phát sinh dựa vào các thông số
c
ủa MIDlet suite đã được xác định. Tuy nhiên, không có
tập tin nguồn nào được phát sinh cho MIDlet. Lập trình
viên phải viết các tập tin nguồn này từ đầu. KToolbar
không hỗ trợ nạp nhiều project trong một GUI. Trình

soạn thảo WTK không cung cấp một trình soạn thảo tích
hợp nào. Thay vào đó, lập trình viên phải sử dụng một
trình soạn thảo của hãng thứ ba.
 Tạo lập và đóng gói :
KToolBar cung cấp hỗ trợ cho việc biên dịch một dự
án. Một dự án được
dịch và tiền kiểm tra chỉ trong một bước thực hiện. Một chức năng khác được dùng
để đóng gói dự án. Gói được tạo ra sẽ chứa tập tin JAR và JAD của MIDlet suite.
WTK được tích hợp công cụ obfuscator là RetroGuard. Công cụ này không được
cung cấp kèm với WTK mà có thể được download miễn phí từ trang web
www.retrologic.com. Để cài đặt, chúng ta chỉ cần chép tập tin retroguard.jar vào thư
mục bin của thư mục cài đặt WTK.
 Trình gi
ả lập :
WTK cung cấp các giả lập để thực thi ứng dụng MIDP. Các thiết bị giả lập
được hỗ trợ :
 DefaultColorPhone : điện thoại mặc định với màn hình màu.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

8
 DefaultGrayPhone : điện thoại với màn hình xám.
 Motorola_i85s : điện thoại Motorola.

 PalmOS_Device : máy hỗ trợ các nhân kỹ thuật số.

 Nhận xét :
WTK là một môi trường cơ bản cho việc phát triển các ứng dụng trên thiết bị
không dây. Tuy nhiên, do thiếu một trình soạn thảo và chức năng gỡ rối, rõ ràng
công cụ này không thể nào cạnh tranh được với các công cụ thương mại khác. Tuy
nhiên, với những ai m
ới bắt đầu tìm hiểu về J2ME thì đây vẫn là một công cụ có
ích. Bằng việc tạo lập sẵn một cấu trúc thư mục, nó cho phép lập trình viên có thể
xây dựng ngay ứng dụng mà không cần quan tâm về việc tổ chức các tập tin, tài
nguyên trong dự án. Khi một lập trình viên đã trở nên thành thạo với việc phát triển
ứng dụng J2ME thì có thể chuyển sang sử dụng một công cụ khác.









Chương 1 : Tổng quan về lập trình trên điện thoại di động

9
1.3.2. Borland Jbuilder :

Môi trường làm việc của JBuilder cho J2ME hoàn toàn giống như môi
trường phát triển các ứng dụng Java bình thường nhưng có thêm các tabs và options
trong các hộp thoại để hỗ trợ J2ME và hai wizards mới : MIDP MIDlet wizard và
MIDP Displayable wizard. Trong phiên bản JBuilder Professional và Enterprise.

Trình Archive Builder có thể tạo ra một MIDlet suite với các tập tin manifest và
JAD tương ứng. JBuilder 2005 cũng cài đặt WTK 2.1 được sử dụng như một môi
trường giả lập. Ngoài ra, JBuilder còn cung cấp các hướng dẫn cho việc tích hợp
thêm các J2ME JDK khác, chẳng hạn như Nokia Developer Suite for J2ME và
Siemens Mobility Toolkit (SMTK).
Ngoài các tính năng chính củ
a JBuilder, khi lập trình cho J2ME chúng ta
được thêm các tính năng sau :
 Code completion cho các lớp CLDC/MIDP
 Duyệt class/package cho các lớp CLDC/MIDP
 Chuyển đổi JDK
 Các MIDP wizards
 Bộ thiết kế trực quan (visual designer) cho các thành phần giao diện
MIDP
 Công cụ gỡ rối MIDlet
 Đóng gói file JAD và JAR
 Nạp dữ liệu thông qua OTA (Over The Air Provisioning)

 Quản lý dự án :
Tập tin project chứa một danh sách các tập tin trong dự án và các thuộc tính
của dự án đó. JBuilder sử dụng thông tin này khi thực hi
ện nạp, lưu, biên dịch hay
chạy một project. Tập tin project bị thay đổi khi JBuilder thêm hay xóa tập tin, thiết
lập hay thay đổi các thuộc tính của project. Khi tạo một dự án J2ME, dự án phải
được liên kết với một J2ME JDK. Khi tạo mới một project, một wizard sẽ phát sinh
nội dung cơ bản của tập tin, tạo thư mục cho các thành phần trong project.









Chương 1 : Tổng quan về lập trình trên điện thoại di động

10

Hình 1-2 : Tạo project J2ME bằng Wizard trong JBuilder
Wizard cho phép chúng ta thêm các tập tin vào trong MIDlet bằng cách phát
sinh các tập tin dựa trên các tùy chọn mà chúng ta yêu cầu.
 MIDlet : phát sinh một lớp con của MIDlet và một lớp con của
Displayable (Canvas, Form, List hay TextBox).
 MIDP Displayable : phát sinh một lớp con của lớp Displayable.
Thông thường, chúng ta chọn MIDlet. Khi đó MIDlet wizard sẽ thu thập tất
cả các thông tin cần thiết. Một wizard khác sẽ được gọi để tạo ra các lớp
Displayable sau đó.
JBuilder cung cấp một bộ UI designer cho các ứng dụng MIDP. Bộ MIDP
designer dựa trên bộ Swing UI designer có sẵn trong JBuilder.












Chương 1 : Tổng quan về lập trình trên điện thoại di động

11
 Màn hình duyệt các tập tin, thư mục trong dự án.

 Màn hình duyệt cấu trúc của lớp và gói.

 Cửa sổ soạn thảo mã nguồn :

 Keyboard shortcuts
 Brace matching
 Syntax highlighting
 Customizable editor key mappings








Chương 1 : Tổng quan về lập trình trên điện thoại di động

12
 CodeInsight (code completion, parameter lists, và tool tip expression
evaluation)
 Code templates
 Cho phép soạn thảo nhiều tập tin trong một giao diện hỗ trợ tabs
 Re-factoring


 Tạo và đóng gói :
Khi biên dịch, JBuilder thực hiện các công việc sau :
 Biên dịch MIDlet và tạo ra các tập tin .class.
 Tiền kiểm tra các lớp đã được tạo.
 Tạo tập tin JAD.
JBuilder phiên bản Professional và Enterprise có tích hợp bên trong một
obfuscator. Chức năng này có thể được bật qua tab Build trong cửa sổ
Project
Properties.

Hình 1-3 : JBuilder MIDP Designer









Chương 1 : Tổng quan về lập trình trên điện thoại di động

13
MIDP designer giúp ta làm việc trực quan với các thành phần giao diện
MIDP cơ bản. Ngoài ra, nó còn hỗ trợ việc phát sinh mã tự động.
Các thành phần giao diện MIDP được hỗ trợ :
 ChoiceGroup
 DateField
 Gauge
 ImageItem

 StringItem
 TextField
 Ticker
 Spacer
Các thành phần MIDP screen :
 Alert
 Form
 List
 TextBox
Khi xử lý các thành phần với bộ MIDP designer, JBuilder tự động phát sinh
mã để quản lý giao diện. Mã phát sinh chuyên biệt cho JBuilder, đ
iều này có nghĩa
là MIDP designer sẽ không thể dịch ngược lại các mã nguồn đã được viết tay.
MIDP Designer giúp phát triển nhanh các giao diện mẫu MIDP.
 Trình giả lập :
JBuilder cung cấp các giả lập thiết bị về nguyên tắc cũng tương tự như
WTK, tuy nhiên chúng ta có thể sử dụng các trình giả lập của hãng thứ ba bằng
cách thiết lập các thuộc tính của dự án nếu muốn mà không gây ảnh hưởng gì cho
dự án. Các trình giả
lập này có thể là của Nokia hay của Siemens…
Nếu công cụ của chúng ta có tích hợp nhiều trình giả lập thiết bị, khi đó tab
MIDlet trong cửa sổ Project Properties có thể được dùng để chọn thiết bị khi chạy
hay gỡ rối cho ứng dụng.









Chương 1 : Tổng quan về lập trình trên điện thoại di động

14

 Trình gỡ rối :
Khi bắt đầu gỡ rối, ngoài một màn hình giả lập cho thiết bị, một màn hình
dùng để hiển thị thông tin debug cũng xuất hiện. Chúng ta có thể gỡ rối nhiều ứng
dụng đồng thời qua các tab có trên màn hình này.

Hình 1-4 : Màn hình gỡ rối của JBuilder.

Các tab nằm bên trái dọc theo cửa sổ cho chúng ta thấy những gì đang diễn
ra bên trong ứng dụng, Qua các tab này chúng ta có thể xem các thông tin :
 Console : thể hiện các kết quả cũng như lỗi của chương trình.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

15
 Thread, call stack và data : thể hiện các nhóm luồng trong chương trình.
Mỗi nhóm luồng có thể được mở ra để xem các luồng bên trong.
 Synchronization monitor : cho phép xem thông tin về sự đồng bộ giữa các
luồng và trạng thái của chúng, thông tin này đặc biệt hữu ích khi kiểm tra deadlock.

 Data watches : thể hiện giá trị hiện thời của dữ liệu.
 Loaded classes and static data : thể hiện các lớp đang được sử dụng bởi
ứng dụng. Chúng ta có thể m
ở một lớp để xem giá trị các thuộc tính của nó.
 Data and code breakpoints : thể hiện tất cả các breakpoints đang được
thiết lập trong ứng dụng và trạng thái hiện tại của nó.
 Classes with tracing disabled : thể hiện danh sách các lớp và gói chưa
được xem xét.
 Nhận xét :
Chức năng thiết kế giao diện của JBuilder là một công cụ hữu ích trong việc
tạo lập giao diện MIDP. Tuy nhiên, chức năng này lại không hỗ trợ đầy đủ các
thành phần giao diện hiện có và trong nhiều trường hợp mã nguồn phát sinh cần
được chỉnh sửa thêm mới hoạt động đúng theo ý muốn.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

16
1.3.3. Sun ONE Studio 5, Mobile Edition

Sun ONE studio 5, Mobile Edition là một phiên bản được thay đổi từ Sun
ONE Studio để hỗ trợ và giúp đỡ các lập trình viên trong việc phát triển các ứng
dụng MIDP. Nó kết hợp các khả năng của Wireless Toolket với Sun ONE Studio
tạo thành một môi trường với các chức năng sau :

 Kết hợp việc biên dịch, tiền kiểm tra, thực thi MIDlet và MIDlet suite.
 Tự động phát sinh tập tin JAD và JAR.
 Tích hợp khả năng gỡ rối (debug) cho MIDlet.
 Code completion

Có thể tích hợp với các trình giả lập hay các bộ JDK của hãng thứ ba nhờ
vào Unified Emulator Interface
 Cung cấp các mẫu cho việc tạo ra các MIDlet và MIDlet suite.
 Tích hợp sẵn một trình giả lập
 Có thể thiết lập trình giả lập riêng cho mỗi dự án J2ME.
 Công cụ AutoUpdate giúp tự động hóa việc cập nhật công cụ.
 Quản lý project :
Một project được tạo bởi Sun ONE Studio khi mới được tạo sẽ là mộ
t project
rỗng. Chúng ta phải tự thêm vào các MIDlet hay MIDlet suite theo nhu cầu của
mình.








Chương 1 : Tổng quan về lập trình trên điện thoại di động

17

Hình 1-5 : Tạo project J2ME bằng Sun ONE Studio 5
Wizard tạo ra các tập tin dựa trên mẫu mà chúng ta chọn, các mẫu sau đây

được hỗ trợ trong công cụ :
 Class : một lớp Java rỗng.
 HelloMIDlet : một lớp có khả năng hiển thị văn bản lên màn hình thiết bị.
 MIDPCanvas : tạo ra một lóp con của lớp Canvas. Canvas cho chúng ta
khả năng thao tác đồ họa cấp thấp.
 MIDlet : các lóp thực thi cơ bản cho một thiết bị không dây.
 MIDlet Suite : tạo ra một MIDlet suite.
Sau khi chọn mẫu, wizard sẽ lấy các thông tin cần thiết. Sau giai đoạn này,
các tập tin sẽ được tạo ra.
Tab Project trên màn hình Explorer cung cấp cho chúng ta một cái nhìn bên
trong project. Từ đây, chúng ta có thể duyệt qua các thông tin chứa đựng trong
MIDlet.

×