Đăng ký Đăng nhập
Trang chủ Đồ án tốt nghiệp khoa công nghệ thông tin xây dựng ứng dụng mobilegis...

Tài liệu Đồ án tốt nghiệp khoa công nghệ thông tin xây dựng ứng dụng mobilegis

.PDF
80
410
131

Mô tả:

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 -

Tài liệu liên quan