xây dựng ứng dụng và tìm kiếm trên bản đồ cho điện thoại di động hỗ trợ java

76 417 0
xây dựng ứng dụng và tìm kiếm trên bản đồ cho điện thoại di động hỗ trợ java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Lời mở đầu Sau một thời gian tìm hiểu và thực hiện, luận văn “Xây dựng bản đồ cho di động kết hợp định vị” đã cơ bản hoàn thành. Để đạt được kết quả này chúng tôi đã rất cố gắng đồng thời cũng nhận được rất nhiều sự giúp đỡ của các thầy cô, và bạn bè. Xin cảm ơn các thầy cô trong khoa Công nghệ thông tin, đặc biệt là thầy Trần Minh Văn đã tận tình hướng dẫn em thực hiện luận văn này. Luận văn hoàn thành với một số kết quả nhất định, tuy nhiên vẫn không tránh khỏi sai sót. Rất mong nhận được ý kiến đóng góp từ các thầy cô và các bạn để chương trình có thể hoàn thiện hơn. Nha Trang, tháng 6 năm 2010. Chương 1: GIỚI THIỆU 1.1. Sơ lược về tình hình viễn thông di động ở Việt Nam: Mặc dù chịu ảnh hưởng của cuộc suy thoái kinh tế thế giới nhưng trong 6 tháng đầu năm 2010, thị trường viễn thông di động của Việt Nam vẫn hết sức náo nhiệt. Đầu tiên là sự xuất hiện của công nghệ 3G với nhiều tính năng nổi trội đã mở ra 1 trào lưu di động mới: nhanh hơn, mạnh hơn và đa dạng hơn. Các dòng sản phẩm hỗ trợ công nghệ này được các nhà sản xuất đưa ra đều đặn với mức giá ngày càng cạnh tranh. Trên thực tế, 3G tuy chưa làm khách hàng hài lòng nhưng theo các chuyên gia, thị phần của nhóm thiết bị này sẽ tiếp tục tăng trong thời gian tới. Cũng trong năm nay, chiếc điện thoại đình đám iPhone chính thức được cung cấp tại Việt Nam sau đó là sự xuất hiện của một loạt các hệ điều hành mới như iPhone 4.0, Android, Window mobile 7 cùng với một số lượng sản phẩm hỗ trợ không nhỏ làm cho thị trường theo đó cũng nóng lên từng ngày một. Trước làn sóng sôi động đó, người tiêu dùng Việt Nam thật khó có thể đứng yên. Tỷ lệ người sử dụng điện thoại ở Việt Nam còn cao hơn cả Trung Quốc và Ấn Độ (theo báo cáo của công ty nghiên cứu thị trường Nielsen năm 2009), đa phần trong độ tuổi thanh thiếu niên. Tuy nhiên, trong năm 2010, thị trường đang dần bão hòa. Theo ước tính, số người còn có thể sử dụng điện thoại ở Việt Nam vào khoảng 15 – 20 triệu khách hàng và “miếng bánh” này không đủ cho cả 6 nhà cung cấp. Họ không còn chạy đua để tăng số lượng thuê bao mà chuyển sang chiến lược giữ chân khách hàng bằng chất lượng dịch vụ. 1.2. Nhu cầu phát triễn phần mềm trên thiết bị di động: 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ễn ra khá mạnh mẽ. Theo dự báo, doanh thu phần mềm cho điện thoại sẽ đạt 16,6 tỷ USD vào năm 2013. Các hãng điện thoại, các nhà cung cấp ngày càng tập trung nhiều vào phát triễn kho ứng dụng của họ: OviStore(Nokia), Apple App Store, Microsoft MarketPlace, Fstore(FPT), Mstore(Vietel)…Việc đầu tư này góp phần làm tăng tính cạnh tranh của họ trên thị trường điện thoại thông minh được đánh giá là rất khả quan trong thời gian tới. Thực tế cho thấy, sự thành công của iPhone ngoài vấn đề công nghệ và thời trang còn có sự hỗ trợ mạnh của một kho ứng dụng cực lớn với hơn 100000 ứng dụng. Người sử dụng sẽ chọn nền tảng có nhiều ứng dụng nhất mặc dù họ chỉ sử dụng một phần nhỏ trong số đó. Ngày nay, mọi chuyện đã dễ dàng hơn với một chiếc điện thoại. 1.3. Mục tiêu của đề tài: Bản đồ cho di động là đề tài không mới, tuy nhiên các ứng dụng tương đương trên thị trường chủ yếu phải kết nối Internet và chỉ hỗ trợ ở một số thành phố lớn. Nhận thấy việc xây dựng một bản đồ số cho một thành phố du lịch như Nha Trang cũng hết sức cần thiết nên em chọn thực hiện đề tài này. Đề tài nhằm xây dựng ứng dụng bản đồ dùng cho điện thoại có hỗ trợ J2ME với một số chức năng chính như: - Xem, di chuyển , phóng to, thu nhỏ bản đồ. - Tìm đường theo tên. - Tìm một địa điểm trên bản đồ. - Xác định lộ trình ngắn nhất giữa hai điểm. - Định vị người dùng. Chương 2: TỔNG QUAN VỀ LẬP TRÌNH DI ĐỘNG Được giới thiệu lần đầu vào năm 1995, ngày nay mục iêu Java nhắm đến cũng đã thay đổi khá nhiều. Java hiện nay không chỉ nhắm đến họ máy tính để bàn đơn thuần. Hai năm sau ngày đầu được ra mắt, một phiên bản Java mới là J2EE (Java 2 Enterprise Edition) đã được giới thiệu nhắm tới việc phát triển các ứng dụng có qui mô lớn hơn. Phiên bản mới nhất được thêm vào dòng ngôn ngữ Java là J2ME (Java 2 Micro Edition). J2ME nhắm đến việc phát triễn ứng dụng cho các thiết bị “nhỏ” có bộ nhớ, khả năng hiển thị và xử lý hạn chế như:đầu giải mã kỹ thuật số TV set-top boxes, điện thoại di động… 6.1. Các thành phần của J2me: Hình 1. 1 T ổ ng quan 6.1.1. Configuration: Để đáp ứng cho nhiề u ch Configuration. Khái niệ m Configuration có m chính xác hơn, mộ t Configuration qui đ của ngôn ngữ Java mà máy Việ c phân chia thành nh bộ nhớ, năng lục hiển thị, năng l Như chúng ta biết, các thiế t b phần cúng. Với những thiế t b trợ vào máy ảo trên thiết b ị những thiết bị có khả năng cao hơn, chúng ta s máy ảo giúp cho công việ c l thành nhiề u Configuration là Configuration khác nhau: - CDC (Connected Device Configuration) Hình 1. 2 Các thành phần của J2me u ch ủng loại thiết bị khác nhau, Sun đã đưa ra khái ni m Configuration có m ối liên hệ chặt chẽ vớ i máy t Configuration qui đ ịnh những thành phần và nh ữ Java mà máy ảo phải hỗ trợ cho configuration đó. c phân chia thành nh ững Configuration khác nhau chủ yế u d , năng lực xử lý và khả năng kết nối mạ ng c t b ị di động rất khác nhau về nguồ n tài nguyên, v t b ị có năng lực hạn chế, nế u ta đưa quá nhi ị đó sẽ gây chậm hệ thống và dư thừ a không c năng cao hơn, chúng ta s ẽ đưa thêm nhiề u thư vi c l ập trình của các nhà phát triể n. Do đó , nhu c u Configuration là việc cần thiết. Hiện nay Sun đ ã CDC (Connected Device Configuration) đưa ra khái ni ệm i máy ảo Java. Nói ữ ng thư viện gốc u d ựa vào khả năng ng c ủa các thiết bị. n tài nguyên, v ề khả năng u ta đưa quá nhi ều thư viện hỗ a không c ần thiết. Với u thư vi ện hỗ trợ vào n. Do đó , nhu c ầu phân chia ã đưa ra 2 loại § 512 kb (minimum) bộ nhớ để chạy Java § 256 kb (minimum) bộ nhớ cấp phát động. § Kết nối mạng liên tục, băng thông rộng. - CLDC (Connected Limited Device Configuration) : § 128 kb (minimum) bộ nhớ để chạy Java § 32 kb (minimum) bộ nhớ cấp phát động. § Giao diện người dùng hạn chế. § Năng lượng tiêu tốn it (chủ yếu dùng pin). § Kết nối mạng Wireless, chậm. Việc phân chia này thực chất cũng chỉ mang tính tương đối. Công nghệ hiện nay đang phát triễn khá nhanh và điều này càng làm cho ranh giới giữa các loại Configuration trở nên không rõ ràng. 6.1.2. Profile: Configuration thực ra chỉ cung cấp 1 số rất ít các lớp và người phát triển ứng dụng hầu như không thể chỉ làm việc đơn thuần với các Configuration này. Vì lý do này Sun đã linh hoạt và đưa thêm một khái niệm mới nằm ở tầng trên của Configuration, đó là Profile. Ta có thể xem Profile là mộ mở rộng của khái niệm Configuration. Profile định nghĩa các thư viện giúp lập trình viên phát triển ứng dụng cho một dạng thiết bị nào đó. Ví dụ Mobile Information Device Profile (MIDP) định nghĩa các hàm API cho các thành phần giao diện nhập liệu và xử lý sự kiện, lưu trữ, kết nối mạng và xử lý thời gian,… phù hợp với màn hình hiển thị và khả năng xử lý của các thiết bị di động. Profile MIDP được định nghĩa trên nền tảng của CLDC. Ngoài ra chúng ta còn một số Profile tiêu biểu khác như: - PDA Profile: tương tự như MIDP, nhưng với thị trường là các máy PDA với màn hình và bộ nhớ lớn hơn. - Foundation Profile: cho phép mở rộng các tính năng của CDC với phần lớn các thư viện của bộ Core Java2 1.3. - Ngoài ra còn có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile. Báo cáo chỉ đề cập đến Profile MIDP và các thư viện liên quan để phục vụ cho việc viết ứng dụng trên điện thoại di động. 6.1.3. Máy ảo java: Như chúng ta đã biết, một chương trình Java sẽ được biên dịch thành mã trung gian sau đó chính máy ảo Java sẽ biên dịch phần mã này sang mã máy để thực thi. Máy ảo Java sẽ chịu trách nhiệm việc cung cấp tính năng bảo mật, cấp phát và thu hồi bộ nhớ và quản lý việc điều phối các tiến trình. Với CDC, máy ảo Java có cùng các đặc tính như J2SE. Tuy nhiên, với CLDC, Sun đã phát triển riêng một dạng máy ảo chuyên biệt được gọi là K Virtual Machine, gọi tắt là KVM. Chính những hạn chế về tài nguyên của các thiết bị di động đã đề ra nhu cầu về sự ra đời của KVM: - Chỉ cần 40-80 kb bộ nhớ - Chỉ đòi hỏi 20-40 kb bộ nhớ động (heap) - Có thể chạy với bộ vi xử lý 16-bit và xung nhịp 25MHz 6.2. CLDC và MIDP: 6.2.1. CLDC: 6.2.1.1. Yêu cầu phần cứng: - 128 kilobytes để chạy JVM và các thư viện của CLDC. Không phân biệt loại bộ nhớ sử dụng (Rom, Flash,…), bộ nhớ của thiết bị phải bảo lưu được nội dung lâu dài, ngay cả khi ngắt điện. Bộ nhớ này thường được gọi là nonvolatile memory. - 32 kilobytes bộ nhớ trống để cấp phát các đối tượng (objects). Bộ nhớ này thường được gọi là volatile memory (hay là “heap”). 6.2.1.2. Yêu cầu phần mềm: CLDC có yêu cầu tối thiểu về mặt phần mềm. Hệ điều hành phải tương thích với JVM và có chức năng quản lý các ứng dụng Java, bao gồm: - Cho phép chọn và kích hoạt ứng dụng. - Cho phép gỡ bỏ ứng dụng khỏi thiết bị. 6.2.2. MIDP: 6.2.2.1. Yêu cầu phần cứng: - Màn hình ít nhất phải có 96 x 54 pixels. - Có ít nhất một thiết bị nhập liệu: bàn phím hoặc màn hình cảm ứng. - Có ít nhất 128 kilobytes bộ nhớ non-volatile để chạy các thành phần của MID. - Có ít nhất 8 kilobytes bộ nhớ non-volatile để lưu các cấu hình chương trình và dữ liệu. - Có ít nhất 32 kilobytes để chạy Java. - Có kết nối không dây (wireless network). 6.2.2.2. Yêu cầu phần mêm: - Mặc dù hệ điều hành của từng thiết bị có thể khác nhau nhưng phải đáp ứng được các yêu cầu tối thiểu sau: - Hệ điều hành phải hỗ trợ việc xử lý ngắt, xử lý exception và hỗ trợ xử lý đồ họa bitmap để xuất dữ liệu ra màn hình - Hệ điều hành phải nhận được tín hiệu nhập liệu (input) và chuyển dữ liệu đó cho máy ảo Java - Hệ điều hành phải hỗ trợ việc đọc/ghi vào bộ nhớ non-volatile. Không đòi hỏi hệ điều hành phải định nghĩa file system nhưng phải cho phép ghi dữ liệu dạng persistent (không bị mất đi khi tắt máy, ngắt điện). - Phải hỗ trợ truy xuất mạng, đặc biệt phải có tính năng đọc/ghi dữ liệu thông qua mạng không dây (wireless network). 6.2.3. MIDlet Suite: Ta gọi chương trình Java chạy trên thiết bị di động là một MIDlet. MIDlet sẽ sử dụng các lớp cung cấp bởi CLDC và MIDP. Mộ MIDlet Suite (một bộ MIDlet) chứa một hay nhiều ứng dụng MIDlet được nên chung trong một file JAR (Java Archive). Hình 2. 3 Jar file & Jad file 6.2.3.1. File JAR: Ngoài các file class và resource, trong file JAR còn có một tập tin được gọi là manifest. Đây là tập tin mô tả nội dung toàn file JAR. Tập tin này có tên manifest.mf và bản thân nó cũng được nén trong file JAR. Manifest.mf có các thuộc tính quan trọng sau: Thuộc tính Ý nghĩa Bắt buộc MIDlet-Name Tên của bộ MIDlet Có MIDlet-Version Số phiên bản Có MIDlet-Vendor Tác giả Có MIDlet-<n> Tham chiếu đến từng MIDlet trong file JAR, mỗi MIDlet cần một mẫu tin này Có MicroEdition-Profile Tên profile cần để chạy MIDlet này, thường là MIDP 1.0 hoặc MIDP 2.0 Có MicroEdition Cnfiguration Configuration cần để chạy MIDlet (thường là CLDC 1.0) Có MIDlet-Icon File icon (.pgn) của bộ MIDlet Không MIDlet-Description Mô tả bộ MIDlet Không MIDlet-Info-URL Địa chỉ trang web nhà phát triễn MIDlet Không Một ví dụ đơn giản của file Manifest: - MIDlet-1: HelloMIDlet, , hello.HelloMIDlet - MIDlet-Vendor: Vendor - MIDlet-Name: MobileApplication1 - MIDlet-Version: 1.0 - MicroEdition-Configuration: CLDC-1.1 - MicroEdition-Profile: MIDP-2.1 6.2.3.2. File JAD: [...]... nhãn cho Item void itemStateChanged (Item item) Được gọi khi giá trị item thay đổi Chương 4: ĐỊNH VỊ TRÊN DI ĐỘNG 4.1 Giới thiệu: Điện thoại di động và PDA là các thiết bị có tính cá nhân rất cao Không như máy tính cá nhân, điện thoại di động có thể được đem theo ở khắp mọi nơi, cho phép chúng ta sử dụng các dịch vụ ngay cả khi đang di chuyển Từ đó, các loại hình dịch vụ ngày ngay không còn gói gọn trên. .. được bản đồ số khắc phục Lợi thế hơn, bản đồ số có thể tích hợp trong các thiết bị di động nhỏ gọn và mang theo bất cứ đâu 7.2 Phân tích và thiết kế: Ứng dụng sẽ được mô hình hóa bằng phương pháp UML 7.2.1 Mô hình Use case(UC): Hình 5 1 Mô hình UC Mô hình UC mô tả các chức năng của ứng dụng: - View map: đây là chức năng quan trọng nhất Cho phép người dùng xem bản đồ, di chuyển, phóng to, thu nhỏ và điều... vĩ độ và độ cao) Một khi vị trí người dùng đã tính được thì máy thu GPS có thể tính các thông tin khác, như tốc độ, hướng chuyển động, bám sát di chuyển, khoảng hành trình… 4.3.2.3 Location API cho J2me (JSR 179): Java Specification Request (JSR) được hiểu như các API được thêm vào nhằm bổ sung thêm tính năng cho ngôn ngữ Java JSR 179 đặc tả các lớp sử dụng cho việc định vị trên di động Một ứng dụng. .. cụ thể và có giá trị - Một thành phần định vị - Người sử dụng thiết bị di động Theo luật, LBS phải cung cấp dựa trên sự cho phép Điều này có nghĩa là người dùng phải lựa chọn vào dịch vụ và sử dụng nó Trong phần lớn các trường hợp người dùng phải cài đặt ứng dụng LBS và đồng ý cho dịch vụ biết được vị trí của thiết bị 4.3 Các công nghệ: 4.3.1 Cell-ID(Cell site Identification): Cell-ID được sử dụng trong... sử dụng một số các công nghệ xác định vị trí, sau đó sử dụng vị trí này và một số các thông tin khác để cung cấp các ứng dụng và các dịch vụ đến cá nhân từng người dùng Ví dụ: - Dịch vụ gọi khẩn cấp 911 xác định vị trí người gọi một cách tự động nếu cuộc gọi được thực hiện bằng điện thoại di động Một dịch vụ rất hữu ích cho những người không thạo về địa phương họ đang ở - Dịch vụ tư vấn giao thông và. .. túng cho những du khách lần đầu tiên đến đây do đó việc có một tấm bản đồ là hết sức cần thiết Mặt khác, đối với các cơ sở du lịch, các khu nghỉ mát môi trường bản đồ sẽ là một nơi quản bá lý tưởng để du khách biết đến họ Lúc này, bản đồ giấy đã bộc lộ những hạn chế của nó: cồng kềnh, lượng thông tin cung cấp hạn chế và các chức năng hỗ trợ cho du khách là hầu như không thể Các nhược điểm của bản đồ. .. Cho biết thiết bị có hỗ trợ màu hay không int numColor () Có bao nhiêu màu được hỗ trợ Một MIDlet sẽ có một và chỉ một đối tượng Display để điều khiển việc thể hiện dữ liệu Đối tượng Display không có phương thức khởi tạo mà được khởi tạo trực tiếp từ phương thức static của lớp public class HelloMIDlet extends MIDlet { private Display display; // đối tượng display cho MIDlet public HelloMIDlet() { display... vào trạng thái thực thi (active); khi ta tạm ngưng ứng dụng và có nhu cầu kích hoạt trở lại hàm này cũng được gọi 3.4.2 Quá trình thoát: - User chọn thoát chương trình - Hàm destroyApp() được gọi, hàm này phải bảo đảm việc giải phóng tài nguyên - Hàm notifyDestroyed() được gọi để báo cho application manager ứng dụng đã giải phóng hết tài nguyên và sẵn sàng bị tắt 3.5 Display và Displayable: 3.5.1 Display:... lớp hiển thị - Search streets: Tìm kiếm và di chuyển nhanh đến một con đường - Search places: Tìm một địa điểm trên bản đồ - Shortest way: Xác định đường đi ngắn nhất giữa 2 điểm - Locate yourself: Xác định vị trí hiện tại của người dùng 7.2.2 Mô hình lớp: Dưới đây là mô hình lớp của ứng dụng và mối quan hệ giữa chúng Hình 5 2 Mô hình lớp Chi tiết về các thuộc tính và phương thức của các lớp: Hình... bộ ứng dụng MIDlet còn có thêm file JAD (.jad) để cung cấp thông tin về các MIDlet trong file JAR Việc đặt ra file JAD có một só mục đích sau: - Cung cấp thông tin về nội dung file Jar Từ thông tin này, bộ quản lý ứng dụng trên thiết bị mới quyết định ứng dụng này có thích hợp để chạy trên thiết bị hay không - Cung cấp các tham số dùng cho MIDlet để tránh thay đổi file JAR File JAR chứa mã ứng dụng . việc xây dựng một bản đồ số cho một thành phố du lịch như Nha Trang cũng hết sức cần thiết nên em chọn thực hiện đề tài này. Đề tài nhằm xây dựng ứng dụng bản đồ dùng cho điện thoại có hỗ trợ. một chiếc điện thoại. 1.3. Mục tiêu của đề tài: Bản đồ cho di động là đề tài không mới, tuy nhiên các ứng dụng tương đương trên thị trường chủ yếu phải kết nối Internet và chỉ hỗ trợ ở một. phần mềm trên thiết bị di động: 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 n ra khá mạnh mẽ. Theo dự báo, doanh thu phần mềm cho điện thoại sẽ đạt 16,6 tỷ USD vào năm

Ngày đăng: 31/08/2014, 07:51

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan