1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình java cho thiết bị di động

45 562 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Giới thiệu về lập trình cho điện thoại di động và công cụ J2ME Wireless Toolkit
Trường học Đại Học Công Nghệ Thông Tin và Truyền Thông
Chuyên ngành Lập trình Java cho thiết bị di động
Thể loại Bài tập hướng dẫn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 45
Dung lượng 761,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình java cho thiết bị di động

Trang 1

BÀI 1: GI ỚI THIỆU VỀ LẬP TRÌNH CHO ĐIỆN THOẠI DI ĐỘNG VÀ

Bài viết này giúp bạn làm quen với việc lập trình trên điện thoại di động Khi sử dụng chiếc điện thoại hàng ngày, có thể bạn vẫn nghĩ lập trình cho chiếc điện thoại của mình là một việc không dễ dàng và chỉ có những chuyên gia mới làm được Loạt bài viết về lập trình trên điện thoại di động sắp tới sẽ hướng dẫn

bạn từng bước cách “vọc” để tự viết những ứng dụng và trò chơi đơn giản cho mình

Khi đi vào thế giới của lập trình cho ĐTDĐ, bạn sẽ bắt gặp những thuật ngữ

mới như J2ME, CLDC, Configuration, Profile, Những thuật ngữ này có thể lạ

với bạn nhưng chúng ta sẽ từ từ làm quen với chúng Còn bi giờ hãy sắn tay áo cài đặt phần mềm trước đã

Trang 2

http://www.jedit.org Bạn chú ý là các chương trình có định dạng văn bản

như Microsoft Word không thể dùng để soạn thảo mã nguồn được

Cài đặt bộ công cụ phát triển của Java:

Đây là bộ công cụ dùng để phát triển các ứng dụng Java Bạn cần chương trình này

vì bộ J2ME Wireless Toolkit cần nó để có thể chạy được Ngoài ra nó còn cung

cấp các công cụ để bạn biên dịch các tập tin mã nguồn của bạn Nếu bạn download phiên bản JDK 1.4.2_02 thì tên tập tin cài đặt là j2sdk-1_4_2_02-windows-i586-p.exe (Phiên bản 1.4.x mới nhất là 1.4.2_09) Bạn cài đặt và chấp nhận các giá trị

mặc định Sau khi cài đặt với các tuỳ chọn mặc định thì trên máy bạn sẽ có thư

Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_02-b03)

Java HotSpot(TM) Client VM (build 1.4.2_02-b03, mixed mode)

Nghĩa là bạn đã cài đặt thành công (xem hình dưới)

Trang 3

Cài đặt bộ công cụ phát triển trên điện thoại (J2ME Wireless Toolkit)

Bước kế tiếp bạn sẽ cài đặt bộ J2ME Wireless Toolkit, là một bộ công cụ giúp bạn biên dịch và chạy các ứng dụng trên điện thoại (thường được gọi là ứng dụng MIDP)

Bạn chạy chương trình j2me_wireless_toolkit-2_2-windows.exe mà bạn đã

tải về ở bước trên để cài đặt Chương trình cài đặt này sẽ tìm kiếm bộ J2SE SDK

mà bạn vừa cài đặt ở trên (nếu trong trường hợp không tìm ra bộ J2SE SDK, bạnhãy chọn đường dẫn mà bạn đã cài đặt ở bước trước) Chương trình cài đặt mặc định sẽ cài vào thư mục c:\WTK22 và nó sẽ tạo thêm một số shortcut trong thực đơn Start của Windows Bạn chọn menu Start -> All Programs -> J2ME Wireless Toolkit 2.2 và bạn sẽ thấy những shortcut như hình sau:

Để chạy bộ công cụ này, bạn chọn KToolbar trong thực đơn ở trên, chương trình KToolbar sẽ chạy lên như hình sau:

Trang 4

Trên thanh công cụ của chương trình, bạn hãy chọn Open Project , bạn sẽ thấy

một cửa sổ Open Project hiện lên:

Bạn hãy chọn Games, và nhấn Open Project, sau đó bạn nhấn Run trên thanh công

cụ để chạy ứng dụng mẫu này, và chương trình giả lập điện thoại sẽ chạy lên:

Trang 7

hãy thử đổi sang chạy giả lập trên một điện thoại khác bằng cách chọn trong

combobox Device như hình sau Ở đây tôi chọn QwertyDevice

Sau đó bạn cũng nhấn nút Run để chạy lại, bạn sẽ thấy điện thoại giả lập khác chạy

ra với cùng ứng dụng trò chơi như ở trên:

Vậy là bạn đã biết cách dùng công cụ Wireless Toolkit để chạy các ứng dụng mẫu,

Trang 8

trong bài sau bạn sẽ làm quen nhiều hơn với bộ công cụ này cũng như viết ứng

dụng đơn giản đầu tiên Hẹn gặp lại bạn trong số báo sau

Trang 9

cũng có trong bộ công cụ Wireless Toolkit Trong bài viết thứ hai này trong loạt bài viết về viết ứng dụng và game trên điện thoại di động, bạn sẽ được làm quen

với cách sử dụng chương trình KToolbar trong bộ Wireless Toolkit để viết một ứng dụng Hello World

Chắc bạn cũng còn nhớ là trong bài trước, các bạn đã sử dụng chương trình KToolbar để mở một dự án (project) có sẵn và chạy chúng Hôm nay bạn sẽ học cách tự tạo một dự án của riêng bạn và tự viết một ứng dụng nổi tiếng nhất thế

giới Đúng vậy, ứng dụng nổi tiếng nhất thế giới chính là ứng dụng Hello World Đầu tiên, bạn cần mở chương trình KToolbar bằng cách chọn menu Start -> All Programs -> J2ME Wireless Toolkit 2.2 -> KToolbar , và chương trình sẽ hiện lên

như sau:

Trang 10

Trên thanh công cụ, bạn hãy chọn nút New Project , một cửa sổ New Project sẽ

hiện lên, trong ô Project Name, bạn nhập vào HelloSuite và trong ô MIDlet Class Name, bạn nhập vào HelloMIDlet (xem hình dưới) Kế tiếp, bạn nhấn vào nút Create Project

Một cửa sổ cho phép bạn cấu hình dự án của bạn sẽ được hiện lên như hình sau:

Trang 11

Đây là một hộp hội thoại cho phép bạn thay đổi các thông số của dự án Bạn cũng

chưa cần quan tâm đến các tham số cấu hình này vào thời điểm hiện nay Các thông số mặc định này đã thích hợp với đa số các dự án nhỏ, bạn chỉ cần nhấn OK

và bạn đã có trong tay một dự án của riêng mình

Trên cửa sổ của KToolbar bạn sẽ thấy các thông tin sau:

Creating project "HelloSuite"

Place Java source files in "C:\soft\WTK22\apps\HelloSuite\src"

Place application resource files in "C:\soft\WTK22\apps\HelloSuite\res"

Place application library files in "C:\soft\WTK22\apps\HelloSuite\lib"

Settings updated

Project settings saved

Trang 12

Các bạn chú ý là trên máy của tôi thì bộ Wireless Toolkit được cài vào thư mục C:\soft\WTK22 , còn trên máy bạn thì thông tin hiển thị có thể sẽ khác đi tuỳ vào

thư mục bạn cài đặt bộ Wireless Toolkit Bạn hãy dùng Windows Explorer để xem

cấu trúc thư mục cũng như các tập tin mà KToolbar vừa tạo ra cho bạn (xem hình

dưới)

Các bạn sẽ thấy là tất cả các dự án do KToolbar sinh ra đều nằm trong một thư

mục con của thư mục apps, và tên của thư mục con trong apps thì giống với tên dự

án mà bạn tạo ra Bạn cũng sẽ thấy trong dự án HelloSuite của chúng ta vừa tạo ra

có 4 thư mục con là bin, lib, res và src.

Thư mục bin chứa bộ chương trình MIDlet đã được biên dịch (tập tin jar) và tập tin mô tả chương trình MIDlet (tập tin jad) Thư mục lib là thư mục bạn có thể bổsung các thư viện (tập tin jar) mà ứng dụng của bạn cần đến Thư mục res chứa các tập tin tài nguyên của chương trình, ví dụ như các tập tin văn bản hay hình ảnh cho ứng dụng của bạn Cuối cùng, thư mục src là thư mục sẽ lưu các tập tin mã nguồn (tập tin java) của bạn Các bạn chú ý là quy tắc chuẩn của Java về tên gói

Trang 13

chương trình soạn thảo văn bản nào khác Bạn nhập vào nội dung sau và lưu tập tin

với tên HelloMIDlet.java trong thư mục src của dự án Trong máy của tôi thì tập tin này được lưu tại C:\soft\WTK22\apps\HelloSuite\src\HelloMIDlet.java

mMainForm = new Form("HelloMIDlet");

mMainForm.append(new StringItem(null, "Hello World!"));

mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {

notifyDestroyed();

Trang 14

}

}

Tạm thời hiện nay bạn chưa cần hiểu nội dung của đoạn mã nguồn này Trong bài

kế tiếp chúng ta sẽ tìm hiểu nội dung của chương trình này một cách toàn diện và chi tiết

Trên thanh công cụ của KToolbar, bạn hãy nhấn nút Build để biên dịch và đóng gói toàn bộ dự án của bạn Quá trình build này sẽ hoàn tất và bạn sẽ thấy thông tin sau trong cửa sổ của KToolbar:

Project settings saved

Trang 15

Bây giờ bạn có thể đóng trình giả lập lại và thử chạy bằng cách chọn những Device khác (xem lại hướng dẫn của bài đầu tiên)

Cuối cùng, bạn hãy mở Windows Explorer để xem lại các thư mục và tập tin trong

dự án của bạn, và bạn sẽ thấy 3 thư mục mới là classes, tmpclasses và tmplib Đây

là những thư mục tạm do KToolbar sinh ra để phục vụ quá trình biên dịch và đóng gói ứng dụng của bạn Nói chung là bạn không cần quan tâm đến 3 thư mục này

Trang 16

Như vậy trong bài này bạn đã biết cách dùng công cụ KToolbar để tạo mới một dự

án, dùng một trình soạn thảo văn bản để soạn mã nguồn và dùng KToolbar để biên

dịch ứng dụng cũng như chạy ứng dụng Hello World trong bộ giả lập điện thoại Tuy nhiên trong bài này bạn chưa hiểu rõ nội dung mã nguồn ứng dụng Hello World, và trong số sau chúng ta sẽ cùng mổ xẻ ứng dụng Hello World này để các

bạn hiểu rõ cấu trúc của một ứng dụng đơn giản nhất chạy trên điện thoại di động

Hẹn gặp lại các bạn trong bài 3 với nhiều thông tin lý thú hơn nữa

Trang 17

TIÊN C ỦA BẠN

Trong bài trước bạn đã biết cách sử dụng bộ công cụ Wireless Toolkit để tạo một

dự án mới của riêng bạn, đó là ứng dụng Hello World, tuy nhiên các bạn vẫn chưa tìm hiểu về mã nguồn của chương trình đầu tiên này Trong bài này chúng ta sẽcùng phân tích cấu trúc đơn giản nhất của một ứng dụng Java trên điện thoại di động cũng như giải thích một số khái niệm cơ bản về công nghệ lập trình thời

thượng này

Chắc bạn cũng còn nhớ là trong bài trước bạn đã sử dụng chương trình KToolbar

để tạo một dự án, biên dịch và chạy chúng Các bạn có thể xem lại bài trước một

lần nữa trước khi chúng ta bắt đầu vọc mã nguồn của ứng dụng Hello World Tuy nhiên đầu tiên ta cần tìm hiểu những khái niệm cơ bản trước đã

Gi ới thiệu về J2ME

Khi nghe nói về Java, các bạn hay gặp những thuật ngữ như J2SE, J2EE và J2ME J2SE viết tắt của Java 2 Standard Edition, là bản Java dùng để viết các chương trình chạy trên desktop Còn J2EE là Java 2 Enterprise Edition, một phiên bảnchuyên dùng để viết các ứng dụng web cũng như các dịch vụ web chạy trên các hệ

thống máy chủ Thế còn J2ME là gì? J2ME (Java 2 Micro Edition) là công nghệ

cũng như nền tảng để viết các ứng dụng chạy trên các thiết bị nhỏ như điện thoại di động hay các máy trợ giúp cá nhân PDA Với nền tảng J2ME, các bạn sẽ có được

một tập các giao diện lập trình ứng dụng (API) được thiết kế đặc thù cho các thiết

bị nhỏ Vì các thiết bị nhỏ có khả năng xử lý cũng như bộ nhớ rất hạn chế nên các thiết bị này không thể chạy các máy ảo Java (Java Virtual Machine) của J2SE được Và vì lý do này nên một phiên bản máy ảo Java nhỏ gọn được định nghĩa ra

để có thể chạy được trên các thiết bị di động này

Một cách ngắn gọn dễ hiểu thì bạn có thể coi J2ME bao gồm một máy ảo Java thu

gọn và một tập các thư viện lập trình thiết kế riêng cho các thiết bi di động

Trang 18

Các bạn cũng chú ý là các bạn không cần cài đặt J2ME lên chiếc điện thoại của

bạn, bởi vì các nhà sản xuất đã cài đặt sẵn cho bạn rồi Nếu điện thoại của bạn có ghi là hỗ trợ Java thì có nghĩa là nhà sản xuất đã tích hợp sẵn J2ME vào điện thoại

Hầu hết các đời điện thoại có giá trên 2 triệu đều có hỗ trợ J2ME Mặc dù để lậptrình thì bạn chỉ cần môi trường giả lập thông qua bộ công cụ Wireless Toolkit mà

ta đã biết, các bạn cũng nên có một chiếc điện thoại để thử các sản phẩm của bạn xem chúng chạy ra sao trên điện thoại thật Trong các bài sau tôi sẽ trình bày cách cài đặt các chương trình chúng ta viết vào điện thoại thật như thế nào

J2ME được chia thành 3 thành phần là Cấu Hình (Configuration), Profile và các

thư viện tuỳ chọn bổ sung Cấu Hình chứa máy ảo Java thu gọn và một số hàm thư

viện nền tảng Profile bổ sung thêm một tập các thư viện nữa nhằm phục vụ cho

một số dòng thiết bị di động Còn các thư viện bổ sung cung cấp thêm các chức

năng mở rộng, ví dụ như khả năng nhắn SMS hoặc điều khiển bluetooth

Có lẽ Cấu Hình và Profile nổi tiếng nhất chính là CLDC (Connected Limited Device Configuration) và MIDP (Mobile Information Device Profile) CLDC nghĩa là Cấu hình của các thiết bị nhỏ có kết nối, ví dụ như các điện thoại có từ128KB đến 512KB bộ nhớ cho các ứng dụng Java Vì khả năng của các thiết bịnày rất hạn chế nên máy ảo Java chạy trên nó rất nhỏ và được gọi là KVM (viết tắt

Trang 19

của Kilobyte Virtual Machine) Một Cấu Hình khác dành cho các thiết bị có ít nhất 2MB bộ nhớ được gọi là CDC (Connected Device Configuration), thường có trong các máy trợ giúp số cá nhân PDA

Profile MIDP bổ sung cho Cấu Hình CLDC bởi vì nó cung cấp thư viện được thiết

kế đặc biệt để có thể chạy được trên các thiết bị rất nhỏ với tài nguyên CPU và bộ

nhớ rất hạn chế Ví dụ là MIDP có gói javax.microedition.lcdui cho phép chúng ta

lập trình giao diện người dùng (GUI) trên thiết bị có màn hình rất nhỏ Với các thiết bị mạnh hơn và màn hình lớn hơn như PDA thì các profile thường gặp trên đó

có tên là Foundation và Personal Trong loạt bài viết này tôi sẽ không trình bày vềCDC và Foundation/Personal mà chỉ tập trung vào CLDC và MIDP, là nền tảng trong các điện thoại di động hiện nay

CLDC có 2 phiên bản là 1.0 và 1.1, trong đó phiên bản 1.0 là phổ biến nhất trong các điện thoại hỗ trợ Java MIDP cũng có 2 phiên bản là 1.0 và 2.0 Hầu hết các máy điện thoại đời mới hiện nay trên thị trường đã hỗ trợ MIDP 2.0

Tìm hi ểu về mã nguồn ứng dụng Hello World

Như vậy là bạn đã nắm được những khái niệm cơ bản nhất về nền tảng J2ME trên các thiết bị di động Với những kiến thức nền tảng này chúng ta sẽ tiếp tục bằng cách phân tích mã nguồn ứng dụng Hello World

mMainForm = new Form("HelloMIDlet");

mMainForm.append(new StringItem(null, "Hello World!"));

Trang 20

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {

notifyDestroyed();

}

}

Để hiểu được ví dụ này, các bạn cần có một ít kiến thức về ngôn ngữ lập trình

hướng đối tượng nói chung và Java nói riêng Nếu các bạn chưa từng lập trình, các

bạn nên tìm xem một vài chương đầu của bất kỳ cuốn sách lập trình Java nào Đầu tiên ứng dụng của chúng ta “import” hay tham khảo 2 gói chính của J2ME cho việc lập trình ứng dụng cho điện thoại, đó là 2 gói javax.microedition.lcdui (bao gồm các lớp định nghĩa các thành phần giao diện đồ hoạ) và

javax.microedition.midlet (bao gồm lớp MIDlet) Kế đến ta định nghĩa lớp ứng

dụng tên HelloMIDlet bằng cách mở rộng lớp MIDlet và sử dụng giao tiếp

CommandListener để nhận sự kiện về các lệnh do người dùng điều kiển thông qua các phím bấm

Ứng dụng của chúng ta cần một biểu mẫu (form) để thể hiện giao diện trên màn hình, vì vậy ứng dụng của chúng ta khai báo một biến có kiểu là Form với tên là mMainForm và biểu mẫu này sẽ dùng để chứa chuỗi ký tự “Hello World!”

Kế đến chúng ta định nghĩa phương thức khởi tạo (constructor) và trong đó ta tạo

mới một đối tượng biểu mẫu, sau đó tạo mới đối tượng StringItem và thêm đối

tượng StringItem này vào đối tượng Form Kế đến ta định nghĩa một lệnh với kiểu

Trang 21

là Command dùng cho việc kết thúc chương trình Một lệnh được đặt vào trong

biểu mẫu thông qua phương thức addCommand() Sau đó ta chỉ định chính lớp này

sẽ là lớp xử lý các lệnh thông qua phương thức setCommandListener()

Mỗi ứng dụng viết cho điện thoại bằng MIDP đều phải kế thừa lớp trừu tượng MIDlet và phải định nghĩa đủ 3 phương thức là startApp(), pauseApp() và

destroyApp() Chắc các bạn cũng đoán ra được, startApp() được gọi khi khởi tạo ứng dụng, pauseApp() được gọi khi ứng dụng cần được tạm dừng, ví dụ như khi

cần nhận một cuộc gọi đến Còn phương thức destroyApp() được gọi khi thoát ứng

dụng, thường là thông qua một lệnh thoát (Exit) Trong ví dụ Hello World này thì

ta chỉ sử dụng phương thức startApp() để lấy đối tượng Display (màn hình) và đặt

biểu mẫu mMainForm thành biểu mẫu hiện hành cho màn hình điện thoại Vì

phương thức này được gọi nên chúng ta sẽ thấy được chuỗi Hello World hiện trên màn hình điện thoại Các bạn cũng chú ý là mặc dù ta không cần xử lý gì cho 2

phương thức còn lại là pauseApp() và destroyApp() nhưng ta vẫn phải khai báo thành phương thức rỗng vì đây là yêu cầu bắc buộc của một ứng dụng MIDlet

Phương thức cuối cùng, commandAction() sẽ được gọi khi có lệnh nhấn từ người dùng Ở đây ta chỉ đơn giản gọi phương thức notifyDestroyed() để kết thúc ứng

dụng

Bây giờ các bạn có thể thử Việt hoá ứng dụng này bằng cách thay thế 3 chuỗi nhưsau và thử biên dịch, chạy lại ứng dụng của mình

Ti ếng Anh Ti ếng Việt không dấu

"HelloMIDlet" Ung dung Xin chao

"Hello World!" Xin chao cac ban

Exit" Thoat

Tóm t ắt

Trang 22

Như vậy các bạn đã nắm được những kiến thức cơ bản nhất về J2ME, và vì đây là

những kiến thức nền tảng nhất nên các bạn sẽ còn tiếp tục sử dụng nó trong các bài sau Các bạn cũng hiểu qua được mã nguồn ứng dụng HelloWorld của chúng ta và

thử thay đổi một số chữ từ Anh sang Việt và chạy kiểm tra bản sửa đổi này Trong bài sau chúng ta sẽ học cấu trúc tổng quát của một ứng dụng MIDlet bất kỳ và làm quen thêm một số thuật ngữ mới nữa Hẹn gặp lại các bạn trong bài tới

Ngày đăng: 16/04/2014, 23:21

TỪ KHÓA LIÊN QUAN

w