Bộ Giáo Dục và Đào Tạo
Trường Đại Học Mở Tp.HCM
Khoa Công Nghệ Thông Tin
KHÓA LUẬN TỐT NGHIỆP
Đề tài:
Xây Dựng Ứng Dụng MobileGIS.
GVHD : TS. Phan Đạt Phúc
SVTH
: Cao Xuân Bảo Lộc
MSSV : 10400071
TP.HCM – Năm 2009
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
Lời cám ơn
Em xin cám ơn quý thầy cô trong khoa Công nghệ thông tin trường Đại học
Mở đã tận tình dạy bảo em nhiều kiến thức bổ ích trong suốt thời gian học tập tại
trường. Kính chúc thầy cô luôn dồi dào sức khỏe và thành công trong cuộc sống.
Đặc biệt, em xin chần thành cám ơn đến thầy Phan Đạt Phúc, và công ty
Dolsoft trong thời gian vừa qua đã tận tình hướng dẫn chúng em trong suốt thời
gian thực hiện đề tài này. Đã hỗ trợ tạo cho em điều kiện, cơ hội và tích lũy nhiều
kiến thức suốt trong thời gian thực hiện đề tài, cũng như đóng góp nhiều ý kiến
quý báu, qua đó, để em có thể hòan thành được tốt đề tài nay.
Mặc dù đã hòan thành đề tài, nhưng chắc chắn đề tài vẫn còn nhiều thiếu
điều thiếu sót. Em mong nhận được sự góp ý của quý thầy cô, anh chị và các bạn.
Một lần nửa, em xin chân thành cám ơn!
TP Hồ chí minh, tháng 1 năm 2009
Người thực hiện
Cao Xuân Bảo Lộc
i
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
Mục lục
CHƯƠNG 1: ................................................................................ GIỚI THIỆU
1
1.1.
Khái quát về công nghệ di động:.............................................................................................. 1
1.2.
Giới thiệu đề tài: ......................................................................................................................... 1
1.3.
Đối tượng và phạm vi nghiên cứu chính: ................................................................................ 3
CHƯƠNG 2: ......................................................... TÌM HIỂU VỀ CHUẨN J2ME
5
2.1.
Giới thiệu về java........................................................................................................................ 5
2.1.
Kiến trúc j2me. ............................................................................................................................ 6
2.2.
Các thành phần chính trong j2me. ........................................................................................... 8
2.2.1.
Confiuration........................................................................................................................ 8
2.2.2.
Profiler. .............................................................................................................................. 10
2.2.3.
Optional package. ............................................................................................................ 10
2.3.
Mobile Information Device Profile (MIDP).......................................................................... 11
2.3.1.
Định nghĩa:........................................................................................................................ 11
2.3.2.
Yêu cầu phần cứng: .......................................................................................................... 11
2.3.3.
Yêu cầu phần mềm: .......................................................................................................... 11
2.3.4.
Những hạn chế. ................................................................................................................. 11
2.3.5.
Những tính năng MIDP cung cấp. ................................................................................. 12
CHƯƠNG 3: ............................................. LẬP TRÌNH ĐIỆN THOẠI VỚI MIDP
14
3.1.
MIDP là gì?................................................................................................................................ 14
3.1.1.
Định nghĩa......................................................................................................................... 14
3.1.2.
Thành phần cơ bản. .......................................................................................................... 14
3.1.3.
Chu kì sống. ...................................................................................................................... 15
3.1.4.
Đóng gói chương trình..................................................................................................... 15
3.2.
Giao diện. .................................................................................................................................. 16
3.2.1.
Đồ họa mức cao................................................................................................................. 17
3.2.2.
Đồ học mức thấp. .............................................................................................................. 17
3.3.
Âm thanh................................................................................................................................... 18
3.4.
MIDP là gì?................................................................................................................................ 18
3.4.1.
Sự kiện hành động............................................................................................................ 18
3.4.2.
Sự kiện phím. .................................................................................................................... 18
ii
Khóa luận tốt nghiệp
3.5.
Xây dựng ứng dụng MobileGis
Lưu trử dữ liệu. ......................................................................................................................... 19
3.5.1.
Record Management System. ......................................................................................... 19
3.5.2.
Hạn chế. ............................................................................................................................. 20
3.5.3.
Tốc độ truy xuất................................................................................................................ 21
3.5.4.
Cơ chế luồng...................................................................................................................... 21
CHƯƠNG 4: ...................................................................... LẬP TRÌNH MẠNG
22
4.1.
Khái quát. .................................................................................................................................. 22
4.2.
Khái quát về dịch vụ Web (Webservice), Soap và WSDL................................................... 23
4.2.1.
Webservice. ....................................................................................................................... 23
4.2.2.
SOAP và WSDL. ............................................................................................................... 23
4.3.
Webservice và Soap. ................................................................................................................ 23
CHƯƠNG 5: ........................................................ ĐỊNH VỊ THIẾT BỊ DI ĐỘNG
25
5.1.
Mạng điện thoại GSM. ............................................................................................................. 25
5.2.
Thiết bị định vị GPS. ................................................................................................................ 26
5.2.1.
Thiết bị tích hợp GPS. ...................................................................................................... 26
5.2.2.
Thiết bị dùng kèm với BT-GPS. ...................................................................................... 27
Khái quát..................................................................................................................................... 27
Hiện thực. ................................................................................................................................... 27
CHƯƠNG 6: .............................................. PHÂN TÍCH THIẾT KẾ ỨNG DỤNG
30
6.1.
Khảo sát hiện trạng................................................................................................................... 30
6.2.
Phân tích và xác định yêu cầu. ............................................................................................... 30
6.3.
Thiết kế ứng dụng..................................................................................................................... 31
6.3.1.
Vẽ bản đồ. .......................................................................................................................... 31
6.3.2.
Di chuyển bản đồ.............................................................................................................. 32
6.3.3.
Phóng to, thu nhỏ. ............................................................................................................ 33
6.3.4.
Tìm đường đi ngắn nhất giữa hai điểm. ........................................................................ 33
6.3.5.
Hướng dẫn đường đi. ....................................................................................................... 35
6.3.6.
Tìm địa điểm xung quanh............................................................................................... 36
6.3.7.
Kết nối với thiết bị GPS.................................................................................................... 37
6.3.8.
Chọn đối tượng trên bản đồ............................................................................................. 38
6.3.9.
Thêm địa điểm cá nhân trên bản đồ. ............................................................................. 38
iii
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
6.3.10.
Hướng dẫn sử dụng. ......................................................................................................... 39
6.3.11.
Lưu thông tin làmviệc...................................................................................................... 39
6.3.12.
Nạp thông tin làm việc củ................................................................................................ 40
6.3.13.
Sơ đồ giao diện thiết kế chính của màn hình. ............................................................... 41
6.1.
Đặc tả các gói lớp trong ứng dụng.......................................................................................... 43
6.1.1.
Data Package..................................................................................................................... 43
6.1.2.
GPRS Package................................................................................................................... 47
6.1.3.
GPS Package. .................................................................................................................... 48
6.1.4.
Library Package................................................................................................................ 51
6.1.5.
Sound Package.................................................................................................................. 52
6.1.6.
MobileGIS Package. ......................................................................................................... 52
CHƯƠNG 7: ........................................................... CẢI TIẾN VÀ TỐI ƯU HÓA
59
7.1.
Nội dung.................................................................................................................................... 59
7.2.
Tối ưu hóa kích thước chương trình. ...................................................................................... 59
7.2.1.
Nguyên tắc. ....................................................................................................................... 60
7.2.2.
Obfuscator. ........................................................................................................................ 61
7.3.
Tối ưu hóa tốc độ. ..................................................................................................................... 62
7.3.1.
Khái quát. .......................................................................................................................... 62
7.3.2.
Nguyên tắc. ....................................................................................................................... 62
7.3.3.
Công cụ hổ trợ. .................................................................................................................. 63
7.4.
Tối ưu hóa việc sử dụng bộ nhớ. ............................................................................................. 64
7.4.1.
Nguyên tắc. ....................................................................................................................... 64
7.4.2.
Công cụ hổ trợ. .................................................................................................................. 65
CHƯƠNG 8: ................................................................ TỔNG KẾT ĐÁNH GIÁ
66
8.1.
Kết quả đạt được. ...................................................................................................................... 66
8.1.1.
Kiến thức đạt được............................................................................................................ 66
8.1.2.
Chương trình..................................................................................................................... 66
8.2.
Đánh giá chương trình............................................................................................................. 66
8.2.1.
Ưu điểm. ............................................................................................................................ 66
8.2.2.
Khuyết điểm...................................................................................................................... 67
8.3.
Hướng phát triển. ..................................................................................................................... 67
iv
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
CHƯƠNG 1: GIỚI THIỆU
1.1. Khái quát về công nghệ di động:
Công nghệ thông tin ngày nay, đóng vai trò quan trọng trong đời sống hằng
ngày của chúng ta. Việc ứng dụng công nghệ thông tin vào các lĩnh vực vào
trong đời sống giúp cho công việc được tiến hành một cách thuận lợi, nhanh
chóng và hiểu quả hơn. Cùng với phát triển của công nghệ thông tin, nhiều công
nghệ mới ra đời như BlueTooth, ADSL, Wireless, Mobile, WAP … làm cho
công nghệ thông tin càng trở nên gần gũi thân thiết với con người. Và một trong
chúng, là công nghệ di động.
Ở thời điểm hiện nay, trên thế giới cũng như ở Việt Nam, khi thị trường điện
thoại di động đang trở nên sôi động hơn bao giờ hết. Ta có thể thấy, không giống
như những chiếc điện thọai trước đây chỉ đơn giản nhiệm vụ là thoại, mà chiếc
điện thoại ngày nay còn thực hiện nhiều chức năng khác như: gửi nhận mail, truy
cập Internet, xem phim, nghe nhạc, chơi game, … qua đó, chiếc điện thoại dần
trở nên quen thuộc với con người và trở thành một phần không thể thiếu trong
cuộc sống hiện đại của chúng ta ngày nay.
Mặt khác, do các nhà sản xuất điện thoại di động nắm bắt được nhu cầu của
giới trẻ là ưu chuộng sản phẩm công nghệ cao, luôn cho ra đời những loại sản
phẩm điện thoại di động hiện đại với những tính năng đa dạng và nổi trội hơn
trước. Song hành với sự phát triển của phần cứng, là nhu cầu phát triển phần
mềm ứng dụng trên điện thoại di động, nhằm phục vụ tốt hơn cho người sử dụng
điện thoại. Phần mềm cho các thiết bị di động cũng rất đa dạng, từ những ứng
dụng mang tính giải trí như game, xem phim, chat đến nhưng ứng dụng làm việc
như từ điển, word, diệt virus, gửi nhận mail … Vì vậy, ngày càng có nhiều sinh
viên các trường đại học, tham gia nghiên cứu tìm hiểu công nghệ di động với
mong muốn tìm được cho mình một cơ hội việc làm tốt sau này.
1.2. Giới thiệu đề tài:
Trong những năm gần đây, khi mà hoạt động sản xuất phần mềm trên điện
thoại di động phát triển khá mạnh mẽ, với sự ra đời của nhiều phầm mềm hữu ích
trên điện thoại di động . Mà trong đó phải kể đến là phần mềm bản đồ trên điện
thoại đi động đã và đang thu hút nhiều người sử dụng với những tiện ích thiết
thực mà nó mang đến.
1
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
Tuy nhiên, đề tài về phát triển một ứng dụng bản đồ trên điện thoại di động có
thể nói là không mới mẽ gì. Vì trong mấy năm qua, đã có nhiều khóa luận của
các sinh viên ngành CNTT nghiên cứu, tìm hiểu về đề tài này. Là những đề tài
xây dựng bản đồ dạng Vector, thường bị hạn chế về mặt dữ liệu, chỉ thể hiện bản
đồ của một thành phố nào đó, do dữ liệu chính thường đi kèm với chương trình,
nằm trực tiếp trên điện thọai. Do đó, khi muốn cập nhật thêm thông tin dữ liệu
trên bản đồ, người dùng phải tải về phiển bản mới về và cài đặt.
Để tránh tình trạng này, ta xây dựng phần mềm hoạt động theo cơ chế ClientServer. Ở đó chương trình thành 2 phần cơ bản:
- Phần dữ liệu nằm ở phía Server.
- Phần chương trình nằm ở phía Client.
Đây là một phương pháp được sử dụng khá phổ biến, khi dữ liệu của chương
trình có kích thước lớn, mang tính toàn cầu. Ví dụ như chương trình goolge map
của hảng google, sử dụng ảnh vệ tinh để hiển thị bản đồ.
Tuy nhiên, đấy là chương trình do người nước ngoài làm, Vì vậy, với nguyện
vọng xây dựng một chương trình thuần việt do người Việt làm em chọn đề tài
“Xây dựng ứng dựng MobileGIS”. Mục tiêu là xây dựng một phần mềm trên
điện thọai thể hiển bản đồ chi tiết của từng vùng miền Việt Nam, và tài nguyên
được lấy trực tiếp trên mạng do công ty Việt bản đồ cung cấp ( Webservices ).
Chương trình hoàn chỉnh sẽ có thể chạy
trên nhiều loại điện thoại khác nhau, và thực
hiện những chức năng cơ bản như sau:
¾ Xem bản đồ.
¾ Xác định vị trí hiện tại của người dùng
trên bản đồ.
¾ Tìm đường đi ngắn nhất giửa hai điểm.
¾ Hướng dẫn đường đi.
¾ Tìm kiếm các địa điểm xung quanh như
chợ, trường học, khách sạn.
Chương trình này nếu được thực hiện tốt sẽ
trở thành một ứng dụng hữa ích, thiết thực và tiện dụng đối với nhiều người, đặc
biệt là các bạn trẻ trong việc đi lại.
2
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
1.3. Đối tượng và phạm vi nghiên cứu chính:
Hiện nay có rất nhiều lựa chọn để viết ứng dụng cho điện thoại di động, có thể
kể đến 5 môi trường phát triển phổ biến nhất: Java 2 Platform Micro Edition
(J2ME), BREW, Sysmbian OS, Openwave và Microsoft Windows CE 3.0. Xem
hình sau.
Trong đó phải kể đến đầu tiên J2ME, được cho là nền tảng phát triển ứng dụng
phổ biến nhất. Vì ban đầu Java được thiết kế để chạy trên các thiết bị có bộ nhớ
hạn chế và thách thức về năng lực xử lý. Ngoài ra, J2ME còn có khả năng kết hợp
với các “đối thủ” BREW, Symbian OS và Openwave. Mặt khác, thách thức lớn
nhất của J2ME và cũng chính là ưu điểm, là sự nhất quán cho nhiều loại thiết bị.
Hầu hết các hãng sản xuất ĐTDĐ hàng đầu đều ủng hộ Java, và Java còn nhận
được sự ủng hộ rộng rãi của các nhà cung cấp dịch vụ di động.
Nói đến lập trình trên điện thoại di động, chúng ta có thể hình dung được
những trở ngại lớn trong quá trình phát triển ứng dụng là:
- Năng lực của bộ vi xử lý trên điện thoại là rất yếu.
- Dung lượng bộ nhớ là rất nhỏ.
- Tốc độ đường truyền mạng ( GPRS ) rất hạn chế.
Và để thực hiện những yêu cầu chính được nêu trong phần giới thiệu, trong
luận văn này, em sẽ tập trung tìm hiểu những vấn đề chính sau:
¾ Công nghệ Java, mà trọng tâm chính là nghiên cứu, tìm hiểu về J2ME.
3
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
¾ Các kỹ thuật lập trình trên điện thọai với J2ME.
¾ Các vần đề liên quan đến mạng trong J2ME( truy cập Webservices, tải
ảnh trên mạng).
¾ Cách xác định vị trí của điện thoại.
¾ Cách tối ưu hóa kích thước và tốc độ của chương trình.
4
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
CHƯƠNG 2: TÌM HIỂU VỀ CHUẨN J2ME
2.1. Giới thiệu về java.
Vào những năm 1990, java được ra đời từ dự án xanh ( Green Project ) và ban
đầu được xây dựng để kiểm soát các thíết bị dân dụng như TV, VCR, đèn, điện
thoại và một số thiết bị cầm tay, Java được xây dựng chủ yếu dựa trong bộ công cụ
phát triển ( Java Development Kit – JDK ) như là thư viện chuẩn trong đó chứa
trình biên dịch, trình thông dịch, giúp đở, tài liệu, … Đây chính là nền tảng cho
việc phát triển ứng dụng Java.
Tuy nhiên, ngày nay Sun nhận ra rằng việc tạo ra một nền tảng chung để chạy
trên tất cả môi trường là điều không thể thực hiện được,do đó công ty đã quyết
định chia công nghệ java của mình thành 3 phiên bản, mỗi phiên bản được ứng
dụng trong một lĩnh vực riêng biệt, các phiên bản đó là:
¾ Java 2 Platform, Enterprise Edition (J2EETM) phục vụ cho các nhu cầu
về thương mại phục vụ khách hàng, các vấn đề phân phối, các vấn đề về
nhân sự. Phiên bản này dành cho các máy chủ lớn ( server ) với sức mạng
xử lý và dung lượng bộ nhớ lớn.
¾ Java 2 Platform, Standard Edition (J2SETM) được cung cấp cho các thị
trường máy tính để bàn, máy tính gia đình hay máy tính văn phòng. Các
máy tính này, mặc dù không mạnh bằng các máy chủ nhưng vẫn mạnh hơn
nhiều so với các thiết bị di động.
¾ Java 2 Platform, Micro Edition (J2METM) là một phiên bản rút gọn của
java cho các thiết bị di động giới hạn về bộ nhớ và bộ xử lý. J2ME được
chia thành 2 loại: một loại cho các thiết bị cao cấp ( Máy PDA , .. ) và một
loại cho các thiết bị cấp thấp hơn ( điện thọai di động và PDA với khỏang
512 KB bộ nhớ ).
Hình vẽ sau minh họa các phiên bản hiện có của java và lĩnh vực ứng dụng của
chúng, bắt đầu từ bên trái là các nền tảng cao cấp sang bên phải là các nền tảng
cấp thấp hơn.
5
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
Kiến trúc java
2.1. Kiến trúc j2me.
Mục tiêu của J2ME là cho phép người lập trình viết các ứng dụng độc lập với
thiết bị di động, không cần quan tâm đến phần cứng thật sự. Để đạt được mục tiêu
này, J2ME được xây dựng bằng các tầng (layer) khác nhau để giấu đi việc thực
hiện phần cứng khỏi nhà phát triển. Sau đây là các tầng của J2ME được xây dựng
trên CLDC
Kiến trúc j2me
Mỗi tầng ở trên tầng hardware là tầng trừu tượng hơn cung cấp cho lập trình
viên nhiều giao diện lập trình ứng dụng (API-Application Program Interface) thân
thiện hơn.
¾ Tầng phần cứng thiết bị ( Device Hardware Layer ): Đây chính là thiết
bị di động thật sự với cấu hình phần cứng của nó về bộ nhớ và tốc độ xử lý.
Dĩ nhiên thật ra nó không phải là một phần của J2ME nhưng nó là nơi xuất
6
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
phát. Các thiết bị di động khác nhau có thể có các bộ vi xử lý khác nhau với
các tập mã lệnh khác nhau. Mục tiêu của J2ME là cung cấp một chuẩn cho
tất cả các loại thiết bị di động khác nhau.
¾ Tầng máy ảo Java ( Java Virtual Machine Layer ):
Khi mã nguồn Java được biên dịch nó được chuyển đổi thành mã
bytecode. Mã bytecode này sau đó được chuyển thành mã ngôn ngữ máy
của thiết bị di động. Tầng máy ảo Java bao gồm KVM (K Virtual Machine)
là bộ biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode của chương
trình Java thành ngôn ngữ máy để chạy trên thiết bị di động. Tầng này cung
cấp một sự chuẩn hóa cho các thiết bị di động để ứng dụng J2ME sau khi
đã biên dịch có thể hoạt động trên bất kỳ thiết bị di động nào có KVM. Vai
trò của máy ảo Java hay KVM là dịch mã bytecode được sinh ra từ chương
trình Java đã biên dịch sang ngôn ngữ máy. Chính KVM sẽ chuẩn hóa
output của các chương trình Java cho các thiết bị di động khác nhau có thể
có bộ vi xử lý và tập lệnh khác nhau. Không có KVM, các chương trình
Java phải được biên dịch thành tập lệnh cho mỗi thiết bị di động. Như vậy
lập trình viên phải xây dựng nhiều đích cho mỗi loại thiết bị di động.
¾ Tầng cấu hình ( Configuration Layer ): Tầng cấu hình của CLDC định
nghĩa giao diện ngôn ngữ Java (Java language interface) cơ bản cho phép
chương trình Java chạy trên thiết bị di động. Cung cấp các hàm API cơ bản
là nhân của J2ME. Lập trình viên có thể sử dụng các lớp và phương thức
của các API này tuy nhiên tập các API hữu dụng hơn được chứa trong tầng
hiện trạng (profile layer).
¾ Tầng hiện trạng ( Profile Layer ):Tầng hiện trạng hay MIDP (Hiện trạng
thiết bị thông tin di động-Mobile Information Device Profile) cung cấp tập
các API hữu dụng hơn cho lập trình viên. Mục đích của hiện trạng là xây
dựng trên lớp cấu hình và cung cấp nhiều thư viện ứng dụng hơn.
MIDP định nghĩa các API riêng biệt cho thiết bị di động. Cũng có thể có các
hiện trạng và các API khác ngoài MIDP được dùng cho ứng dụng. Ví dụ, có thể có
hiện trạng PDA định nghĩa các lớp và phương thức hữu dụng cho việc tạo các ứng
dụng PDA (lịch, sổ hẹn, sổ địa chỉ,…). Cũng có thể có một hiện trạng định nghĩa
các API cho việc tạo các ứng dụng Bluetooth. Thực tế, các hiện trạng kể trên và
tập các API đang được xây dựng. Chuẩn hiện trạng PDA là đặc tả JSR - 75 và
7
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
chuẩn bluetooth API là đặc tả JSR - 82 với JSR là viết tắt của Java Specification
Request.
2.2. Các thành phần chính trong j2me.
2.2.1. Confiuration.
Trong môi trường J2ME, một ứng dụng được viết cho một profile riêng
biệt nào đó. Profile này lại được mở rộng từ một configuration. Vì thế tất cả
các đặc điểm của một configuration sẽ được giữ lại trong profile có thể
được sử dụng bởi ứng dụng viết cho profile này.
Một configuraion định nghĩa một nền Java cho các thiết bị có các đặc
tính tương tự nhau( như số lượng bộ nhớ, tốc độ xử lý, kiểu kết nối mạng).
Một configuration sẽ xác định.
- Các tính năng của ngôn ngữ Java được hổ trợ.
- Các tính năng của máy ảo Java được hổ trợ.
- Thư viện chuẩn và các API.
Do đây là đặc tả nên các nhà sản xuất thiết bị như Samsung, Nokia…
bắt buộc phải thực thi đầy đủ các đặc tả do Sun quy định để các lập trình
viên có thể dựa vào môi trường lập trình nhất quán và thông qua sự nhất
quán này, các ứng dụng được tạo ra có thể mang tính độc lập thiết bị cao
nhất có thể. Ví dụ như một lập trình viên viết chương trình game cho điện
thoại Samsung thì có thể sửa đổi chương trình của mình một cách tối thiểu
nhất để có thể chạy trên điện thọai Nokia. Qua đây ta thấy khẩu hiệu “Write
Once, Run Everywhere” của Java đã không còn đúng nữa, nhưng ta cũng
phải đánh giá cao sự nổ lực của Sun trong việc tạo ra một môi trường phần
mềm chung cho vô số chủng loại thiết bị di động có trên thị trường. Hiện
nay Sun đã đưa ra 2 dạng Configuration.
CLDC - Connected Limited Device Configuration.
CLDC được thiết kế để nhắm vào thị trường các thiết bị cấp thấp
(low-end), các thiết bị này thông thường là máy điện thọai di động
và PDA với khoảng 512 KB bộ nhớ. Vì tài nguyên bộ nhớ hạn chế
nên CLDC được gắn với Java không dây (Java Wireless ), dạng như
cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như
là Midlet
8
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
CDC - Connected Device Configuration.
CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn
dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để
bàn sử dụng J2SE. Những thiết bị này có nhiều bộ nhớ hơn (thông
thường là trên 2Mb) và có bộ xử lý mạnh hơn. Các sản phẩm này có
thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị
gia dụng trong gia đình.
Cả hai dạng cấu hình trên đều chứa máy ảo Java ( Java Virtual
Machine) và tập hợp các lớp ( class ) Java cơ bản để cung cấp một môi
trường cho các ứng dụng J2ME. Tuy nhiên, chú ý rằng đối với các thiết bị
cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử lý nên không thể
yêu cầu máy ảo hổ trợ các tính năng giống máy ảo của J2SE. Ví dụ, các
thiết bị thuộc CLDC không có phần cứng hổ trợ các phép tính toán dấu
phẩy động, nên máy ảo thuộc CLDC không được hổ trợ kiểu float và
double.
CLDC
CDC
Ram
>=32K, <=512K
>=256K
Rom
>=128k, <=512k
>=512k
Nguồn Năng Lượng Có Giới hạn (nguồn pin)
Không giới hạn
Network
Nhanh
Chậm
Bảng so sánh CLDC và CDC
Hình vẽ sau minh họa quan hệ giữa CLDC, CDC và Java 2 Standard
Edition ( J2SE ). Theo đó chúng ta thấy một phần lớn các chức năng trong
CLDC và CDC có được do kế thừa J2SE. Mỗi lớp được kế thừa từ J2SE
phải giống hoặc gần giống với lớp tương ứng trong J2SE. Thêm vào đó,
CLDC và CDC có một số đặc tính khác được thiết kế cho các thiết bị nhúng
mà J2SE không có ( như các thành phần giao diện ).
9
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
Quan hệ giửa J2ME và J2SE
Sự khác nhau giữa ngôn ngữ Java trên CLDC với Java thông thường.
- Khả năng xử lý số thực: Các phép toán trên số thực thường cần nhiều
thời gian xử lý hơn. Ngoài ra, phần lớn các thiết bị không có phần cứng
hổ trợ cho việc tính toán số thực, do đó CLDC không hổ trợ số thực.
- Finalization: trong các lớp được viết bằng J2SE, chúng ta thường định
nghĩa một phương thức có tên là finalize(). Phương thức này sẽ được
gọi trước khi bộ thu gom rác ( garbage collector ) thu gom đối tượng.
Phương thức này là nơi chúng ta đặt các mã lệnh để giải phóng tài
nguyên đã sử dụng. Tuy nhiên, CLDC không hổ trợ phương thức
finalize().
- Các lớp kế thừa từ J2SE: CLDC yêu cầu khoảng 160 KB để chạy máy
ảo java và các thư viện cơ bản. Do đó, chỉ có một số lớp trong J2SE là
được giữ lại trong CLDC.
2.2.2. Profiler.
Là mở rộng Configuration bằng cách thêm vào các class để bổ trợ các
tính năng cho từng thiết bị chuyên biệt. Cả 2 Configuration đều có những
profile liên quan và từ những profile này có thể dùng các class lẫn nhau.
Đến đây ta có thể nhận thấy do mỗi profile định nghĩa một tập hợp các
class khác nhau, nên thường ta không thể chuyển một ứng dụng Java viết
cho một profile này và chạy trên một máy hỗ trợ một profile khác. Cũng
với lý do đó, bạn không thể lấy một ứng dụng viết trên J2SE hay J2EE và
chạy trên các máy hỗ trợ J2ME.
2.2.3. Optional package.
Là các API có thể sử dụng trong nhiều thiết bị hay một họ các thiết bị.
Một J2me option package là một tập các API nằm trên một profile. Một
10
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
optional package thường chứa các chức năng độc lập với các thiết bị. Mục
đính chính của các optional package này là cho phép bổ sung các API trên
các profiles. Một thiết bị có thể hổ trợ nhiều optional package khác nhau.
2.3. Mobile Information Device Profile (MIDP).
2.3.1. Định nghĩa:
Là Profile được định nghĩa dành riêng cho các thiết bị di động và là
thành phần chính trong J2ME. MIDP cung cấp các chức năng cơ bản cho
hầu hết các dòng thiêt bị di động phổ biến nhất như các máy điện thoạI di
động và các máy PDA. Tuy nhiên MIDP không phải là cây đũa thần cho
mọi lập trình viên vì như chúng ta đã biết, MIDP được thiết kế cho các máy
di động có cấu hình rất thấp. Có thể nói MIDP là profile nổi tiếng nhất bởi
vì nó là kiến thức cơ bản cho lập trình Java trên các máy di động (Wireless
Java).
2.3.2. Yêu cầu phần cứng:
- Màn hình có kích thước tổi thiểu là 96 x 54 pixel.
- Có ít nhất một trong các thiết bị nhập sau: bàn phím, màn hình cảm ứng.
- Ít nhất 128 KB để chạy các thành phần của MIDP.
- Ít nhất 8 KB để chạy các ứng dụng chứa dữ liệu.
- Ít nhất 32 KB để chạy Java.
- Kết nối mạng không dây.
2.3.3. Yêu cầu phần mềm:
Do hệ điều hành thay đổi tùy theo mỗi loại thiết bị, nên MIDP không qua
khắc khe trong các yêu cầu phần mềm.
- Hệ điều hành trên thiết bị cung cấp khả năng xử lý ngọai lệ, xứ lý ngắt,
và phải chạy được máy ảo Java.
- Hổ trợ vẽ ảnh Bitmap.
- Hổ trợ đọc và ghi dữ liệu từ bộ nhớ.
2.3.4. Những hạn chế.
- Phép tính dấu phẩy động (floating point): Phép tính này đòi hỏi rất nhiều
tài nguyên CPU và phần lớn các CPU cho các thiết bị di động không hỗ
trợ phép tính này, do đó MIDP cũng không có.
- Bộ nạp lớp (Class Loader).
11
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
- Hỗ trợ từ khóa finalize() như trong J2SE: Việc “dọn dẹp“ tài nguyên
trước khi nó bị xóa được đẩy về phía các lập trình viên.
- Hỗ trợ hạn chế thao tác bắt lỗi.
- Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được
trong MIDP.
- Không hỗ trợ các tính năng quản lý file và thư mục: Đây có thể làm bạn
ngạc nhiên nhưng thực tế là các thiết bị J2ME không có hỗ trợ các thiết
bị lưu trữ thông thường như ổ cứng v.v. Tuy nhiên, điều đó không có
nghĩa là bạn phải mất đi mọi dữ liệu quan trọng mỗi khi tắt máy, Sun đã
cung cấp một chức năng khác tương đương gọi là Record Management
system (RMS) để cung cấp khả năng lưu trữ cho các thiết bị này.
2.3.5. Những tính năng MIDP cung cấp.
- Các lớp và kiểu dữ liệu: Phần lớn các lớp mà các lập trình viên Java quen
thuộc vẫn còn được giữ lại ví dụ như các lớp trong gói java.util như
Stack, Vector và Hastable cũng như Enumeration.
- Hỗ trợ đối tượng Display: Đúng như tên gọi một chương trình MIDP sẽ
hỗ trợ duy nhất một đối tượng Display là đối tượng quản lý việc hiển thị
dữ liệu trên màn hình điện thoại.
- Hỗ trợ Form và các giao diện người dùng.
- Hỗ trợ Timer và Alert.
- Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ
dữ liệu.
Ngoài ra vào tháng 11 năm 2003 Sun đã tung ra MIDP 2.0 với hàng
loạt tính năng khác được cung cấp thêm so với bản 1.0. Những cải tiến nổi
bật so với MIDP 1.0.
- Nâng cấp các tính năng bảo mật như: Download qua mạng an toàn hơn
qua việc hỗ trợ giao thức HTTPS. Kiểm soát việc kết nối giữa máy di
động và server: ví dụ như các chương trình không thể kết nối tới server
nếu thiếu sự chấp thuận của người sử dụng.
- Thêm các API hỗ trợ Multimedia. Một trong nhưng cải tiến hấp dẫn nhất
của MIDP 2.0 là tập các API media của nó. Các API này là một tập con
chỉ hỗ trợ âm thanh của Mobile Media API (MMAPI).
12
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
- Mở rộng các tính năng của Form. Nhiều cải tiến đã được đưa vào API
javax.microedition.lcdui trong MIDP 2.0, nhưng các thay đổi lớn nhất
(ngoài API cho game) là trong Form và Item.
- Hỗ trợ các lập trình viên Game bằng cách tung ra Game API: Có lẽ Sun
đã kịp nhận ra thị trường đầy tiềm năng của các thiết bị di động trong
lĩnh vực Game. Với MIDP 1.0 thì các lập trình viên phải tự mình viết
code để quản lý các hành động của nhân vật cũng như quản lý đồ họa.
Việc này sẽ làm tăng kích thước file của sản phẩm cũng như việc xuất
hiện các đoạn mã bị lỗi. Được hưởng lợi nhất từ Game API trong MIDP
2.0 không chỉ là các lập trình viên Game mà còn là các lập trình viên cần
sử dụng các tính năng đồ họa cao cấp. Ý tưởng cơ bản của Game API là
việc giả định rằng một màn hình game là tập hợp các layer (lớp). Ví dụ
như: trong một game đua xe thì màn hình nền là một layer, con đường là
một layer và chiếc xe được xem như đang nằm trên layer khác. Với
Game API nhà phát triển còn được cung cấp các tính năng như quản lý
các thao tác bàn phím.
- Hỗ trợ kiểu ảnh RGB: một trong những cải tiến hấp dẫn cho các nhà phát
triển MIDP là việc biểu diễn hình ảnh dưới dạng các mảng số nguyên,
cho phép MIDlet thao tác với dữ liệu hình ảnh một cách trực tiếp.
13
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
CHƯƠNG 3: LẬP TRÌNH ĐIỆN THOẠI VỚI MIDP
3.1. MIDP là gì?
3.1.1. Định nghĩa.
Các ứng dụng J2ME được gọi là MIDlet( Mobile Information Device
Applet). Các MIDlet được tạo ra dựa trên của tập các lớp MIDlet cơ bản
javax.microedition.midlet.MIDlet nên nó được điều khiển bởi trình quản lý
ứng dụng của MIDP.
3.1.2. Thành phần cơ bản.
1) Phát biểu import được dùng để include các lớp cần thiết từ các thư viện
CLDC và MIDP.
2) Phần chính MIDlet được định nghĩa như là lớp mở rộng của lớp MIDlet.
3) Hàm khởi tạo, được thực thi một lần khi MIDlet khởi tạo lần đầu tiên,
hàm khởi tạo chỉ được gọi lại khi MIDlet thoát ra và khởi động lại
chương trình.
4) startApp(): được bộ quản lý ứng dụng gọi khi MIDlet được khởi tạo hay
trờ về trang thái tạm dừng.
5) pauseApp(): được bộ quản lý ứng dụng gọi khi ứng dụng tạm dừng.
6) destroyApp(): được bộ quản lý ứng dụng gọi khi thoát MIDlet.
14
Khóa luận tốt nghiệp
Xây dựng ứng dụng MobileGis
3.1.3. Chu kì sống.
Chu kì sống của một MIDlet
Khi người dùng yêu cầu khởi động ứng dụng MIDlet, bộ quản lý ứng
dụng sẽ thực thi MIDlet (thông qua lớp MIDlet). Khi ứng dụng thực thi, nó
sẽ được xem là đang ở trạng thái tạm dừng. Bộ quản lý ứng dụng gọi hàm
tạo và hàm startApp(). Hàm startApp() có thể được gọi nhiều lần trong suốt
chu kỳ sống của ứng dụng. Hàm destroyApp() chỉ có thể gọi từ trạng thái
hoạt động hay tạm dừng.
3.1.4. Đóng gói chương trình.
Các lớp đã biên dịch của ứng dụng MIDlet được đóng gói trong một tập
tin JAR (Java Archive File). Đây chính là tập tin JAR được download
xuống điện thoại di động.
Tập tin JAR chứa tất cả các tập tin class từ một hay nhiều MIDlet, cũng
như các tài nguyên cần thiết. Hiện tại, MIDP chỉ hỗ trợ định dạng hình .png
(Portable Network Graphics). Tập tin JAR cũng chứa tập tin kê khai
(manifest file) mô tả nội dung của MIDlet cho bộ quản lý ứng dụng. Nó
cũng phải chứa các tập tin dữ liệu mà MIDlet cần. Do đó tập tin JAR là toàn
bộ ứng dụng MIDlet, MIDlet có thể load và gọi các phương thức từ bất kỳ
lớp nào trong tập tin JAR, trong MIDP, hay CLDC và không thể truy xuất
các lớp không phải là bộ phận của tập tin JAR hay vùng dùng chung của
thiết bị di động.
Tập tin kê khai (manifest.mf) và tập tin JAD (Java Application
Descriptor) mô tả các đặc điểm của MIDlet. Sự khác biệt của hai tập tin này
là tập tin kê khai là một phần của tập tin JAR còn tập tin JAD không thuộc
tập tin JAR. Ưu điểm của tập tin JAD là các đặc điểm của MIDlet có thể
15
- Xem thêm -