- 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. Vấn đề hỗ trợ tiếng Việt có dấu :
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 dẫn sử dụng chương trình :
6.3.1. Chức năng duyệt bản đồ
Di chuyển bản đồ :
Để 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ỏ bản đồ :
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 cứu các địa danh – địa điểm :
Để 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 cứu 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 chuyển 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ỏ.
Chọn vị trí bắt đầ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 cầu 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 chức 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 dẫn sử dụng 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 dẫn sử dụng 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 điểm :
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