Các nguyên tắc tối ưu hóa việc sử dụng bộ nhớ

Một phần của tài liệu xây dựng bản đồ trên điện thoại di động có hỗ trợ Java (Trang 128)

- Sử dụng càng ít đối tượng càng tốt và chỉ cấp phát bộ nhớ khi cần thiết.

- Đối với các đối tượng không còn cần được sử dụng nữa, nên gán cho chúng giá trị null để giúp garbage collector nhận diện được vùng nhớ không còn được sử

dụng nữa để thu hồi.

- Bộ nhớ của các thiết bị di động rất hạn chế, do vậy, trong thiết kế chương trình, chúng ta nên tránh việc xây dựng các hàm có nhu cầu được cấp phát khối lượng bộ nhớ lớn.

- Trong J2ME, việc thu hồi bộ nhớ không còn được sử dụng được thực hiện thông qua garbage collector. Tuy nhiên, khi nào việc thu dọn này được thực hiện là do người lập trình tự quyết định. Mặt khác, việc thực thi hàm thu hồi bộ nhớ

giải phóng bộ nhớ nếu không cần sử dụng nữa và chỉ nên gọi chức năng thu hồi bộ

nhớ khi cần thiết.

- Trong ngôn ngữ Java, chúng ta có thể nối nhiều chuỗi ký tự chỉ đơn giản bằng cách thực hiện toán tử “+” như ví dụ sau :

public String indent (String line, int spaces) {

String strOut = “”;

for (int i=0;i<spaces;i++) { strOut += “ ”; } return strOut; }

Tuy nhiên, xét về hiệu suất hoạt động, cách làm như vậy sẽ không tốt bởi vì mỗi khi thực hiện việc nối 2 chuỗi ký tự (kiểu String), Java sẽ tạo một đối tượng kiểu StringBuffer, sau đó gọi thực hiện phương thức append của đối tượng này 2 lần để nối 2 chuỗi ký tự lại và cuối cùng, thực hiện phương thức toString() để tạo

đối tượng kiểu String rồi trả về kết quả. Nếu việc nối chuỗi được thực hiện nhiều lần, đặc biệt là trong một vòng lặp sẽ dẫn đến việc tạo rất nhiều đối tượng kiểu String và StringBuffer. Kết quả là khiến cho chương trình sử dụng và tạo nhiều rác trong bộ nhớ, mặt khác sẽ làm tăng thời gian xử lý của chương trình do phải mất nhiều thời gian khởi tạo các đối tượng. Cải tiến đoạn chương trình trên như sau :

public String indent (String line, int spaces) {

StringBuffer out = new StringBuffer(); for (int i=0;i<spaces;i++)

{

out.append(‘ ’); }

return out.toString(); }

Chương 6 : THỬ NGHIỆM – HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG

6.1. Cách cài đặt chương trình trên máy o :

Quá trình thử nghiệm được thực hiện trên 4 loại máy ảo : máy ảo chuẩn của

Sun, máy ảo Nokia, Sony Ericsson, Samsung và Siemens (xem giới thiệu về các

máy ảo này trong phần phụ lục B).

6.1.1. Trình giả lập Sony Ericsson :

Phiên bản mới nhất được hãng Sony Ericsson cung cấp miễn phí hiện nay là

bản 2.2.0. Tập tin cài đặt semc_j2me_sdk_2_2_0.exe có dung lượng là 53,4 MB.

Việc cài đặt được tiến hành như các chương trình bình thường. Sau khi cài đặt xong, gọi thực thi chương trình như sau :

Start Menu\Sony Ericsson\WTK2\Run MIDP Application

Trên hộp thoại hiện ra, chọn đường dẫn đến tập tin HoChiMinhCity_Map.jad

Hình 6-1 : Thử nghiệm ứng dụng trên trình giả lập Sony Ericsson

Hình 6-2 : Màn hình giao diện trình giả lập Sony Ericsson

6.1.2. Trình giả lập Nokia :

Bộ công cụ phát triển ứng dụng cho Nokia mới nhất hiện nay có tên là Nokia Developer’s Suite for Java™ 2 Platform, Micro Edition, Version 2.2 for Windows. Tập tin cài đặt có kích thước 49 MB, việc cài đặt cũng tương tự như các chương trình bình thường.

Sau khi cài đặt, thực thi bằng cách chọn trên Start Menu, mục Nokia

Hình 6-3 : Thử nghiệm ứng dụng trên trình giả lập Nokia

Chọn tab Start Emulators, sau đó chọn đường dẫn đến tập tin

HoChiMinhCity_Map.jad, chọn loại điện thoại cần giả lập, sau đó nhấn Emulate. Kết quả như sau :

Hình 6-4 : Kết quả thử nghiệm trên trình giả lập Nokia

6.1.3. Trình giả lập Siemens :

Để phát triển và thử nghiệm ứng dụng cho điện thoại di động Siemens, chúng ta phải cài đặt 2 modules : Siemens Mobility Toolkit (phiên bản mới nhất là 3.0) và ít nhất là 1 điện thoại ảo. Hiện nay Siemens cho phép download miễn phí 4 máy ảo là SL 65, SK 65, CX 65.

Sau khi cài đặt bộ công cụ và trình giả lập vào máy tính, chúng ta có 2 cách

để chạy thử nghiệm chương trình. Dưới đây mô tả việc cài đặt trên điện thoại Siemens SK 65 :

™ Cách 1 :

ƒ Bước 1 :

Các ứng dụng cũng như các tập tin tài nguyên (skin, theme, hình ảnh, âm thanh) được chứa trong thư mục “filesystem\0\” của mỗi trình giả lập. Chúng ta tạo trong thư mục này một thư mục con chứa 2 tập tin HoChiMinhCity_Map.jad, HoChiMinhCity_Map.jar (tên thư mục không yêu cầu trùng với tên ứng dụng). Ví dụ : c:\Siemens\SMTK_3.X\emulators\SK65\Filesystem\0\HCMCMM\HoChiMinh City_Map.jad c:\Siemens\SMTK_3.X\emulators\SK65\Filesystem\0\HCMCMM\HoChiMinh City_Map.jar ƒ Bước 2 :

Gọi trình giả lập từ bằng cách chọn Start Menu Æ Siemens Mobility Toolkit

3.00 Æ SMTK 3.0 Emulator Launcher

Chọn trình giả lập Siemens SK65

ƒ Bước 3 :

Chọn mục Extras trong menu chính, sau đó chọn File system. Chọn thư mục vừa tạo.

Hình 6-5 : Cài đặt ứng dụng trên điện thoại Siemens SK 65

Trong thư mục được chọn sẽ xuất hiện 2 tập tin JAR và JAD của chương trình. Chọn tập tin có kích thước nhỏ hơn (file JAD). Chương trình sẽ yêu cầu chúng ta chọn vị trí để đặt ứng dụng. Có 2 thư mục có thể chuyển đến, đó là Games và Applications. Chúng ta chọn Applications.

Hình 6-6 : Khởi động ứng dụng trên Siemens SK 65

ƒ Bước 4 :

Chương trình đã được cài đặt vào mục Applications của máy. Kết quả thực hiện tương tự như sau :

™ Cách 2 : Sử dụng dòng lệnh :

Chạy ứng dụng trên trình giả lập bằng dòng lệnh rất đơn giải chỉ bằng cách thực hiện dòng lệnh sau trong Command Prompt :

C:\siemens\SMTK_3.X\bin\emulator.exe -Xdevice:SK65 -Xdescriptor:"C:\ HCMCMM\HoChiMinhCity_Map.jad"

6.1.4. Trình giả lập Samsung :

Cài đặt bộ Samsung Wireless Toolkit vào máy tính bằng tập tin

Samsung_wtk_2-0-0.exe. Việc cài đặt tương tự như các ứng dụng khác. Sau khi cài

đặt xong, thực thi chương trình bằng cách chọn Start Menu Æ Samsung Æ Run MIDP Application.

Trong hộp thoại hiện ra, chọn đường dẫn đến file JAD, kết quả thực hiện tương tự như sau :

Hình 6-8 : Kết quả thử nghiệm trên trình giả lập Samsung

6.1.5. Trình giả lập chuẩn (Sun Microsystems) :

Cách cài đặt và sử dụng trình giả lập này tương tự như đối với trình giả lập Samsung.

C:\j2mewtk2.0\bin\emulator.exe -Xdevice:UnicodeColorPhone -Xdescriptor:"C:\ HoChiMinhCity_Map\HoChiMinhCity_Map.jad"

Hình 6-9 : Kết quả thử nghiệm trên J2ME SDK Lưu ý :

Xin xem phần tiếp theo để cấu hình cho trình giả lập hiển thị được font chữ

6.2. Vn đề h tr tiếng Vit có du :

6.2.1. Hiển thị tiếng Việt trên máy ảo :

Đa số các trình giả lập điện thoại di động hiện nay không hỗ trợ hiển thị

tiếng Việt có dấu (bảng mã Unicode). Cụ thể, trong các trình giả lập được đề tài thử

nghiệm như trên, chỉ có trình giả lập của hãng Siemens là hiển thị tốt Unicode còn các trình giả lập khác (Nokia, Sony Ericsson, Samsung) không hỗ trợ.

Đối với trình giả lập chuẩn của Sun Microsystems (Sun Wireless Toolkit), các điện thoại ảo được cung cấp mặc định không hỗ trợ Unicode. Tuy nhiên, chúng ta có thể cấu hình để tạo một điện thoại ảo khác hiển thị đúng font chữ tiếng Việt nhằm sử dụng cho quá trình phát triển ứng dụng bằng cách sau :

1. Vào thư mục cài đặt bộ công cụ, di chuyển đến thư mục j2mewtk2.0\ wtklib \devices\

2. Chép thư mục DefaultColorPhone và đổi tên thành UnicodeColorPhone.

3. Trong thư mục UnicodeColorPhone vừa tạo, đổi tên tập tin

DefaultColorPhone.properties thành UnicodeColorPhone.properties. 4. Dùng trình soạn thảo văn bản (Notepad) mở tập tin

UnicodeColorPhone.properties, thay thế từ “SansSerif” thành “Arial” trong

tất cả các dòng định nghĩa font chữ.

6.2.2. Hiển thị tiếng Việt trên thiết bị thật :

Việc có hiển thị được tiếng Việt trên điện thoại di động hay không là do nhà sản xuất quyết định. May mắn là đa số các điện thoại di động trên thị trường Việt Nam hiện nay đều hiển thị tốt tiếng Việt Unicode (mặc dù trên thiết bị giả lập không hiển thịđúng).

Tuy nhiên, riêng đối với các điện thoại Nokia series 60 sử dụng hệđiều hành Symbian thì chúng ta phải tự cài đặt font tiếng Việt cho thiết bị này. Việc cài đặt cũng khá đơn giản qua 2 bước sau :

1. Chép tập tin “tahoma.gdr” vào thư mục “C:\Systems\Font” 2. Khởi động lại máy.

6.3 Hướng dn s dng chương trình :

6.3.1. Chức năng duyệt bản đồ

Di chuyn bn đồ :

Để di chuyển bản đồ, chúng ta sử dụng các phím theo sơđồ sau :

Ù

Hình 6-10 : Các phím di chuyển bản đồ

ƒ Phím 1 : di chuyển bản đồ lên góc trên bên trái

ƒ Phím 2 : di chuyển bản đồ lên trên

ƒ Phím 3 : di chuyển bản đồ lên góc trên bên phải

ƒ Phím 4 : di chuyển bản đồ sang trái

ƒ Phím 6 : di chuyển bản đồ sang phải

ƒ Phím 7 : di chuyển bản đồ xuống góc dưới bên trái

ƒ Phím 8 : di chuyển bản đồ xuống dưới

ƒ Phím 9 : di chuyển bản đồ xuống góc dưới bên phải

Phóng to – thu nh bn đồ :

ƒ Phím * : phóng to

ƒ Phím # : thu nhỏ

6.3.2. Chức năng tra cứu địa điểm, tên đường :

Tra cu các địa danh – địa đim :

Để tra cứu các địa danh, địa điểm, chúng ta thực hiện theo các bước sau :

ƒ Bước 1 :

ƒ Bước 2 :

Chọn loại địa điểm cần tìm, ví dụ : chợ, bệnh viện, trường học v.v…

ƒ Bước 3 :

Trên màn hình sẽ xuất hiện một danh sách tên các địa điểm. Ở bước này, chúng ta có thể dùng các phím mũi tên để chọn tên địa điểm cần đến. Để nhanh hơn, có thể nhập tên địa điểm cần tìm trong hộp nhập “Tên

địa điểm”, khi đó, trong danh sách sẽ chỉ hiển thị những địa

điểm nào có tên gần giống với chuỗi ký tự vừa được nhập vào.

Lưu ý : chuỗi ký tự được nhập vào là chuỗi tiếng Việt không dấu và không phân biệt chữ hoa hay chữ thường.

ƒ Bước 4 :

Sau khi tìm thấy tên địa điểm cần đến, nhấn phím chọn, màn hình sẽ

Hình 6-11 : Kết quả tìm địa điểm

Tra cu tên đường :

Việc tra cứu tên đường được thực hiện theo các bước sau :

ƒ Bước 1 :

Chọn chức năng tra cứu tên đường (menu “Tìm tên đường”)

ƒ Bước 2 :

Trên màn hình chính sẽ xuất hiện danh sách tất cả các tên đường. Nhập tên đường (hoặc một phần tên đường) cần tìm vào trong textbox “Tên

Hình 6-12 : Màn hình tra cứu tên đường

Lúc này, trong danh sách sẽ hiển thị 10 tên đường đầu tiên thỏa điều kiện cần tìm (hiển thị các tên đường có chứa những từ được nhập vào). Nếu tên đường cần tìm xuất hiện trong danh sách, sang bước 4.

ƒ Bước 3 :

Nếu số đường thỏa điều kiện lọc nhiều hơn 10 (1 trang trong danh sách chỉ

chứa 10 tên đường), chọn menu chính, sau đó chọn “Trang kế” để xem trang tiếp theo hoặc chọn “Trang trước” để xem lại 10 tên đường trước đó.

Khi tên đường cần tìm xuất hiện, chọn tên đường này trong danh sách, sau

đó nhấn nút chọn để trở về màn hình chính. Cung đường đầu tiên của đường này sẽ

xuất hiện trên màn hình.

Hình 6-13 : Kết quả tra cứu tên đường

6.3.3. Chức năng tìm đường đi ngắn nhất giữa 2 điểm :

Việc tìm đường đi ngắn nhất giữa 2 điểm được thực hiện qua 3 bước chính : 1. Chọn vị trí bắt đầu đoạn đường cần tìm

2. Chọn vị trí kết thúc đoạn đường cần tìm (vị trí cần đi đến) 3. Yêu cầu tìm đường.

Con tr - Di chuyn con tr :

Con trỏ được hiển thị trên màn hình dưới dạng một chữ thập (+) màu

đỏ, dùng để xác định một vị trí trên màn hình.

Để di chuyển con trỏ, chúng ta sử dụng cụm phím mũi tên trên điện thoại. Hướng của mũi tên cũng là hướng di chuyển con trỏ.

Chn v trí bt đầu – v trí kết thúc :

Để chọn vị trí bắt đầu (vị trí kết thúc) của đoạn đường cần tìm, đầu tiên, di chuyển con trỏ đến vị trí sẽđược chọn, sau đó chọn menu “Vị trí bắt đầu” (“Vị trí kết thúc”).

Nếu việc đánh dấu vị trí được thực hiện thành công, trên màn hình sẽ xuất hiện một ô vuông màu xanh tương ứng với vị trí bắt đầu hoặc ô vuông màu đỏ

tương ứng với vị trí kết thúc.

Hình 6-14 : Màn hình chọn vị trí

Lưu ý, việc lựa chọn vị trí chỉ hợp lệ khi con trỏ nằm ngay trên cung đường hoặc chỉ lệch một khoảng nhỏ.

Yêu cu tìm đường :

Trước khi yêu cầu chương trình tìm đường đi ngắn nhất, người sử dụng bắt buộc phải lựa chọn đầy đủ cả vị trí bắt đầu và vị trí kết thúc, nếu chưa chọn, chương trình sẽ thông báo lỗi.

Yêu cầu tìm đường ngắn nhất bằng cách chọn menu “Đường ngắn nhất”

Thời gian chờ đợi chương trình tìm giải pháp tối ưu nhất là tương đối ngắn. Tuy nhiên, đối với các điện thoại có cấu hình không cao hoặc khoảng cách giữa 2 vị

trí cần tìm rất xa nhau có thể khiến người sử dụng phải chờ đợi, nếu không cần tìm

Sau khi tìm được đường đi ngắn nhất, chương trình sẽ thông báo kết quả

tương tự như hình bên dưới. Chúng ta có thể dùng các phím mũi tên để xem kết quả. Chọn lệnh “Trở về” để trở về màn hình chính. Trên bản đồ lúc này sẽ xuất hiện một đường màu hồng kẻ từ vị trí bắt đầu đến vị trí kết thúc nhằm mô tả các đoạn

đường đã được tìm thấy.

Hình 6-15 : Kết quả tìm đường đi ngắn nhất

Các chc năng khác :

ƒ Hiển thị lại kết quả tìm đường :

Khi cần xem lại hướng dẫn tìm đường (dòng chữ mô tả kết quả tìm đường), nhấn phím số 5.

Lưu ý :

Mỗi khi người sử dụng chọn lại nút bắt đầu hay nút kết thúc thì kết quả tìm đường cũ sẽ bị xóa.

ƒ Di chuyển đến vị trí bắt đầu, vị trí kết thúc :

Để di chuyển nhanh đến vị trí bắt đầu hoặc vị trí kết thúc

đoạn đường cần tìm, nhấn phím số 0. Nhấn lần thứ nhất sẽ di

chuyển đến vị trí bắt đầu. Nhấn lần thứ hai sẽ di chuyển đến vị trí kết thúc và lần lượt như vậy.

ƒ Xóa kết quả tìm đường :

Để xóa kết quả tìm đường, xóa nút bắt đầu và nút kết thúc, chọn menu “Xóa kết quả.

6.3.4. Chức năng trợ giúp, hướng dẫn sử dụng :

Hướng dn s dng chương trình

Để xem hướng dẫn sử dụng chương trình, chọn menu “Hướng dẫn”.

Trên màn hình xuất hiện danh sách các nội dung được hướng dẫn,

Hình 6-16 : Màn hình hướng dẫn sử dụng

Nhấn nút “Trở về” để quay lại màn hình chính.

Hướng dn s dng chương trình

Để xem thông tin về chương trình, chọn menu “Thông tin”

Hình 6-17 : Màn hình xem thông tin chương trình

Chương 7: TỔNG KẾT – ĐÁNH GIÁ

7.1. Ưu đim :

Nhìn chung, chương trình đã hoàn thành tốt các yêu cầu cơ bản được đặt ra,

đã xây dựng được một phần mềm ứng dụng chạy được trên nhiều điện thoại di động phổ biến trên thị trường. Phần mềm đã hỗ trợ cho người sử dụng xem bản đồ, tra cứu thông tin nhiều loại địa điểm, tra cứu theo tên đường và giúp người sử dụng xác

định lộ trình ngắn nhất giữa hai địa điểm. Hiệu suất của chương trình tương đối khá, việc đọc dữ liệu, vẽ bản đồ được thực hiện nhanh, tốc độ tìm giải pháp xác định lộ

trình ngắn nhất là có thể chấp nhận được, không gây phản cảm cho người sử dụng. Ngoài ra, việc bố trí các phím chức năng, sự liên kết giữa các màn hình và chức

Một phần của tài liệu xây dựng bản đồ trên điện thoại di động có hỗ trợ Java (Trang 128)

Tải bản đầy đủ (PDF)

(164 trang)