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

LẬP TRÌNH JAVA TRÊN MOBILE J2ME

37 721 1

Đ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

Định dạng
Số trang 37
Dung lượng 1,41 MB

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

Nội dung

LỜI MỞ ĐẦU 4 CHƯƠNG I: GIỚI THIỆU VỀ JAVA VÀ J2ME 5 1.1. Giới thiệu về Java 5 1.2. Lịch sử của J2ME 5 1.3. Các phiên bản và đặc điểm 6 1.3.1. MIDP 1.0 6 1.3.2. MIDP 2.0 6 1.4. Các đặc điểm khác của J2ME 7 1.5. Ưu điểm và nhược điểm của J2ME 7 1.5.1. Ưu điểm 7 1.5.2. Nhược điểm 8 CHƯƠNG II: KIẾN TRÚC J2ME 9 2.1. Tổng quan kiến trúc J2ME 9 2.2. Các tầng của J2ME 12 2.2.1. Tầng cứng thiết bị (Device Hardware Layer) 12 2.2.2. Tầng máy ảo Java (Java Virtual Machine Layer) 12 2.2.3. Tầng cấu hình 15 2.2.4. Tầng hiện trạng 15 CHƯƠNG III: MIDLET 16 3.1. Bộ khung MIDlet 16 3.2. Chu kỳ sống của MIDlet 18 3.3. Tập tin JAR 18 3.4. Tập tin kê khai và JAD 19 3.5. Bộ MIDlet 20 CHƯƠNG IV: ĐỐI TƯỢNG DISPLAY 21 4.1. Khái niệm và phân loại 21 4.2. Giao diện người dùng cấp cao 21 4.2.1. TextBox 21 4.2.2. List 22 4.2.3. Alert 22 4.2.5. Ticker 24 4.3. Giao diện người dùng cấp thấp 25 4.3.1. Lớp Canvas và kỹ thuật sử lý đồ họa 25 4.3.2. Lớp Graphics 28 CHƯƠNG V: LẬP TRÌNH MẠNG 32 5.1. Khung mạng CLDC tổng quát 32 5.2. Các giao diện kết nối 33 5.3. Kết nối HTTP 34 5.4. Client Request và Sever Response 35 5.4.1. Client request 35 5.4.2. Sever Response 35 KẾT LUẬN 37 TÀI LIỆU THAM KHẢO 38   LỜI MỞ ĐẦU Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi điện thoại di động như một vật không thể thiếu trong cuộc sống hằng ngày. Cùng với sự gia tăng số lượng người dùng thì các tính năng dành cho điện thoại cũng tăng theo tương ứng. Hàng loạt các tính năng cao cấp được giới thiệu như chụp hình số, nghe nhạc và đặc biệt nhất là có thể sử dụng các chương trình không phải do nhà sản xuất điện thọai cung cấp. Đây có thể được coi là một cuộc cách mạng trong lĩnh vực di động, nó biến chiếc điện thọai nhỏ bé của bạn thành một chiếc máy tính thu nhỏ, với những chủng loại điện thoại này bạn có thể đọc báo, tiểu thuyết, tra từ điển, bản đồ và nhất là mang thế giới giải trí đến bên cạnh, những bản nhạc hay, những games hay sẽ luôn sẵn sàng mỗi khi bạn cần đến. Đặc biệt hơn, với sự hỗ trợ của nền tảng phần mềm sử dụng cho thiết bị di động, nhà thiết kế còn có thể biến những đồ vật dùng trong gia đình thành những “cỗ máy biết suy nghĩ” như lò vi sóng, hộp điều khiển tivi, hệ thống xem DVD, VCD, các máy PDA dùng cho cá nhân và trên xe hơi… Để góp phần cho sự phát triển đó ngoài yếu tố phần cứng thì nền tảng phần mềm là nhân tố quyết định vì chúng ta đã biết, có hàng chục hãng sản xuất điện thoại khác nhau và sử dụng công nghệ khác nhau. Làm sao để các thiết bị phần cứng khác nhau có thể sử dụng chung một nền tảng phần mềm? Đây là nội dung chúng ta sẽ tìm hiểu trong bài viết hôm nay, đó là nền tảng J2ME Java 2 Platform, Micro Edition. CHƯƠNG I: GIỚI THIỆU VỀ JAVA VÀ J2ME 1.1. Giới thiệu về Java Java là một công nghệ được hãng Sun Microsystems xây dựng từ cuối năm 1990 với cái tên Oak và hiện nay đang phát triển vượt bậc với sự đóng góp của hàng vạn lập trình viên trên thế giới. Ban đầu, Oak được kỹ sư James Gosling và các cộng sự xây dựng với mục đích lập trình cho các mặt hàng điện dân dụng với mục tiêu nhỏ gọn và tương thích được với nhiều loại thiết bị phần cứng khác nhau. Sau đó Oak được sử dụng trong nhiều dự án như dự án Xanh (Blue Project), dự án Phim theo yêu cầu (Video on demand Project). Sau một chuyến du lịch tới đảo Java của Indonesia, nhóm phát triển Oak đã đổi tên Oak thành Java. Java mà tiền thân là Oak được xây dựng chủ yếu dựa trên bộ công cụ phát triển (Java Development Kit JDK) như là bộ thư viện chuẩn trong đó chưa trình biên dịch, trình thông dịch, trình đóng gói, tài liệu,… Đây chính là nền tằng cho việc phát triển các ứng dụng Java. Hiện nay, cộng đồng Java trên thế giới mà đi đầu là hãng Sun Microsystems đã xây dựng nhiều nhánh mới cho Java như: JavaMail (thư điện tử), Java TAPI (viễn thông), Java3D (đồ họa 3 chiều), J2ME (ứng dụng cho thiết bị di động),… Hiện nay Java có các phiên bản sau: J2SETM (Java 2 Platform, Standart Edition): Phiên bản chuẩn gồm bộ công cụ thông dụng dùng để chạy trên các máy PC hoặc các mạng máy tính nhỏ. J2EETM (Java 2 Platform, Enterprise Edition): Phiên bản dành cho các máy chủ với bộ nhớ lớn. Bao gồm các kiến trúc nâng cao như Web, EJB, Transaction,… dùng để xây dựng các ứng dụng có quy mô lớn. J2METM (Java 2 Platform, Micro Edition): Bao gồm môi trường và thư viện Java dùng để phát triển các ứng dụng trên các thiết bị có bộ nhớ nhỏ như điện thoại di động, PDA, các đồ gia dụng,… 1.2. Lịch sử của J2ME J2ME (Java 2 Micro Edition) được phát triển từ kiến trúc Java Card, Embeded Java và Personal Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay thế Personal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME. Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ, gọn (Micro có nghĩa là ‘nhỏ’ trong tiếng Anh) Hình 1.2. Lịch sử J2ME 1.3. Các phiên bản và đặc điểm Có 2 phiên bản MIDP (Mobile Information Device Profile) chính trong ngôn ngữ J2ME. 1.3.1. MIDP 1.0 Phiên bản này xuất hiện đầu tiên vào năm 2001, và phổ biến rộng rãi ở Mĩ (lần đầu là Motorola). Với thế hệ ban đầu này các chương trình chỉ được hỗ trợ cơ bản như giao diện chương trình, giao thức HTTP và các tính năng hỗ trợ âm thanh hay khả năng viết game chưa được hỗ trợ.  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, Vecto 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ợ From và các giao diện người dùng.  Hỗ trợ Timer và Alet.  Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ dữ liệu. 1.3.2. MIDP 2.0 Phiên bản MIDP 2.0 được Sun hỗ trợ đầy đủ, cộng với các API (Application Program Interface) chính quy. Các tính năng về gửi SMS, kết nối với các tập tin âm thanh, hình ảnh được hỗ trợ tốt. Ngoài ra, lập trình viên còn có thể viết các ứng dụng kết nối bluetooth hay viết game trên thiết bị di động với J2ME. 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).  Mở rộng các tính năng của forrm. Nhiều cải tiến đã được đưa vào APIjavax.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: Với MIDP 1.0 thì 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 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 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à một tập hợp các layer (lớp). Với game API nhà phát triển còn 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. 1.4. Các đặc điểm khác của J2

Trang 1

ĐỀ TÀILẬP TRÌNH JAVA TRÊN MOBILE - J2ME

Môn học: NGUYÊN LÝ HỆ ĐIỀU HÀNH

Nhóm thực hiện:

Hà Nội, 9/2014

MỤC LỤC

Trang 3

LỜI MỞ ĐẦU

Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi điệnthoại di động như một vật không thể thiếu trong cuộc sống hằng ngày Cùng với sựgia tăng số lượng người dùng thì các tính năng dành cho điện thoại cũng tăng theotương ứng Hàng loạt các tính năng cao cấp được giới thiệu như chụp hình số, nghenhạc và đặc biệt nhất là có thể sử dụng các chương trình không phải do nhà sản xuấtđiện thọai cung cấp Đây có thể được coi là một cuộc cách mạng trong lĩnh vực diđộng, nó biến chiếc điện thọai nhỏ bé của bạn thành một chiếc máy tính thu nhỏ, vớinhững chủng loại điện thoại này bạn có thể đọc báo, tiểu thuyết, tra từ điển, bản đồ vànhất là mang thế giới giải trí đến bên cạnh, những bản nhạc hay, những games hay sẽluôn sẵn sàng mỗi khi bạn cần đến

Đặc biệt hơn, với sự hỗ trợ của nền tảng phần mềm sử dụng cho thiết bị di động,nhà thiết kế còn có thể biến những đồ vật dùng trong gia đình thành những “cỗ máybiết suy nghĩ” như lò vi sóng, hộp điều khiển ti-vi, hệ thống xem DVD, VCD, cácmáy PDA dùng cho cá nhân và trên xe hơi… Để góp phần cho sự phát triển đó ngoàiyếu tố phần cứng thì nền tảng phần mềm là nhân tố quyết định vì chúng ta đã biết, cóhàng chục hãng sản xuất điện thoại khác nhau và sử dụng công nghệ khác nhau Làmsao để các thiết bị phần cứng khác nhau có thể sử dụng chung một nền tảng phầnmềm? Đây là nội dung chúng ta sẽ tìm hiểu trong bài viết hôm nay, đó là nền tảng

J2ME - Java 2 Platform, Micro Edition.

Trang 4

CHƯƠNG I: GIỚI THIỆU VỀ JAVA VÀ J2ME

1.1 Giới thiệu về Java

Java là một công nghệ được hãng Sun Microsystems xây dựng từ cuối năm 1990với cái tên Oak và hiện nay đang phát triển vượt bậc với sự đóng góp của hàng vạnlập trình viên trên thế giới Ban đầu, Oak được kỹ sư James Gosling và các cộng sựxây dựng với mục đích lập trình cho các mặt hàng điện dân dụng với mục tiêu nhỏgọn và tương thích được với nhiều loại thiết bị phần cứng khác nhau Sau đó Oakđược sử dụng trong nhiều dự án như dự án Xanh (Blue Project), dự án Phim theo yêucầu (Video on demand Project) Sau một chuyến du lịch tới đảo Java của Indonesia,nhóm phát triển Oak đã đổi tên Oak thành Java

Java mà tiền thân là Oak được xây dựng chủ yếu dựa trên bộ công cụ phát triển(Java Development Kit - JDK) như là bộ thư viện chuẩn trong đó chưa trình biêndịch, trình thông dịch, trình đóng gói, tài liệu,… Đây chính là nền tằng cho việc pháttriển các ứng dụng Java Hiện nay, cộng đồng Java trên thế giới mà đi đầu là hãngSun Microsystems đã xây dựng nhiều nhánh mới cho Java như: JavaMail (thư điệntử), Java TAPI (viễn thông), Java3D (đồ họa 3 chiều), J2ME (ứng dụng cho thiết bị diđộng),…

Hiện nay Java có các phiên bản sau:

- J2SETM (Java 2 Platform, Standart Edition): Phiên bản chuẩn gồm bộ công cụthông dụng dùng để chạy trên các máy PC hoặc các mạng máy tính nhỏ

- J2EETM (Java 2 Platform, Enterprise Edition): Phiên bản dành cho các máychủ với bộ nhớ lớn Bao gồm các kiến trúc nâng cao như Web, EJB, Transaction,…dùng để xây dựng các ứng dụng có quy mô lớn

- J2METM (Java 2 Platform, Micro Edition): Bao gồm môi trường và thư việnJava dùng để phát triển các ứng dụng trên các thiết bị có bộ nhớ nhỏ như điện thoại diđộng, PDA, các đồ gia dụng,…

1.2 Lịch sử của J2ME

J2ME (Java 2 Micro Edition) được phát triển từ kiến trúc Java Card, EmbededJava và Personal Java của phiên bản Java 1.1 Đến sự ra đời của Java 2 thì Sun quyếtđịnh thay thế Personal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viếttắt là J2ME Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ, gọn(Micro có nghĩa là ‘nhỏ’ trong tiếng Anh)

Trang 5

 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ẫncòn được giữ lại (ví dụ như các lớp trong gói java.util như Stack, Vecto và Hastablecũ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ợ duynhấ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ợ From và các giao diện người dùng

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ôngthể 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 MIDP2.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ủaMobile Media API (MMAPI)

Trang 6

 Mở rộng các tính năng của forrm Nhiều cải tiến đã được đưa vàoAPIjavax.microedition.lcdui trong MIDP 2.0, nhưng các thay đổi lớn nhất (ngoài APIcho 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: Với MIDP 1.0 thì lậptrì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 làm tăng kích thước file của sản phẩm cũng như việc xuấthiệ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 tính năng đồ họacao 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àmột tập hợp các layer (lớp) Với game API nhà phát triển còn cung cấp các tính năngnhư 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ácvới dữ liệu hình ảnh một cách trực tiếp

1.4 Các đặc điểm khác của J2ME

Về bản chất J2ME là ngôn ngữ kế thừa và tinh lược của J2SE

Bên cạnh đó, MIDP vì được viết cho thiết bị có cấu hình lẫn bộ nhớ thấp nên nókhông hỗ trợ:

 Phép tính đấu phẩy động (floating point): phép tính đò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 vậyMIDP cũng không có

 Bộ nạp class (Class Loader)

 Hỗ trơ từ khóa finalize như trong J2SE: việc “dọn dẹp” tài nguyên trước khi bi 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 (Abstract Window ToolKit) 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

1.5 Ưu điểm và nhược điểm của J2ME

Trang 7

1.5.2 Nhược điểm

• Ứng dụng Midlet sẽ không tác động được lên các ứng dụng khác trên cùng 1 thiết bịhoặc hệ điều hành của nó

• Không giống như J2SE, J2ME không có command-prompt

• Một ứng dụng Midlet được kiểm soát bởi Application Management Software(AMS)

• AMS tương tác với các hoạt động của một ứng dụng Midlet và kiểm soát vòng đờicủa nó Nó có trách nhiệm bắt đầu, xử lý, dừng và hủy các midlets của ứng dụng khichạy

• Nó có bộ nhớ rất hạn chế, vì vậy tốc độ xử lý tương đối chậm

• Ứng dụng J2SE sử dụng cấu trúc Data Persistence, J2ME lưu dữ liệu thông qua hệthống quản lý các bản ghi RMS, thao tác duy nhất trên các mảng byte

• Thiết bị J2ME không hỗ trợ bàn phím đầy đủ cho các phím ký tự đặc biết và số

• Đồ họa không được đẹp, trải nghiệm người dùng kém

• Thời gian, chi phí thiết kế giao diện khá tốn kém

Core API(s) đã cũ so với chuẩn của các công nghệ hiện tại

Trang 8

CHƯƠNG II: KIẾN TRÚC J2ME

Hình 2.1a Kiến trúc J2ME

2.1 Tổng quan kiến trúc J2ME

Configuration (Cấu hình): là đặc tả định nghĩa một môi trường phần mềm cho

một dòng các thiết bị được phân loại bởi tập hợp các đặc tính, ví dụ như:

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ếtchương trình game cho điện thoại Samsung thì có thể có thể sửa đổi chương trình củamình một cách tối thiểu nhất để có thể chạy trên điện thoại Nokia Qua đây ta thấykhẩu hiệu “Write Once, Run Everywhere” của Java đã không còn đúng nữa, nhưng tacũ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ềmchung 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 - Cấu hình thiết bị kết nối giớihạn): đượ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 (JavaWireless), 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

Trang 9

 CDC (Connected Device Configuration - Cấu hình thiết bị kết nối): CDC được đưa ranhắ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ẫnyế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ả 2 dạng cấu hình kể trên đều chứa máy ảo Java – JMV (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ụngJ2ME Tuy nhiên, bạn chú ý rằng đối với các thiết bị cấp thấp, do hạn chế về tàinguyên như bộ nhớ và bộ xử lý nên không thể yêu cầu máy ảo hỗ trợ tất cả các tínhnăng như với máy ảo của J2SE, ví dụ các thiết bị thuộc CLDC không có phần cứngyêu cầu các phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không được yêucầu hỗ trợ kiểu float và double

Hình 2.1b Phân khúc dòng thiết bị với các ngôn ngữ Java

Bảng so sánh các thông số kỹ thuật của CDC và CLDC Profile: Profile 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

Trang 10

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 takhô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ênJ2SE hay J2EE và chạy trên các máy hỗ trợ J2ME

Sau đây là các profile tiêu biểu:

 Mobile Information Device Profile (MIDP): Profile này sẽ bổ sung các tính năng như

hỗ trợ kết nối, các thành phần hỗ trợ giao diện người dùng… vào CLDC Profile nàyđược thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính là màn hình hiểnthị hạn chế, dung lượng chứa có hạn Do đó MIDP sẽ cung cấp một giao diện ngườidùng đơn giản và các tính năng mạng đơn giản dựa trên HTTP 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)

 PDA Profile: Tương tự MIDP, nhưng với thị trường là các máy PDA với màn hình và

Trang 11

thực sự Các tầng của J2ME được xây dựng trên CLDC (Connected Limited DeviceConfiguration).

Hình 2.2 Các tầng 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ênnhiều giao diện lập trình ứng dụng (API – Application Program Interface) thân thiệnhơn

2.2.1 Tầng cứng thiết bị (Device Hardware Layer)

Đây chính là cấu hình thực sự của thiết bị di dộng với cấu hình phần cứng như

bộ nhớ hay cấu hình của nó Đây độc lập với J2ME nhưng nó là nơi xuất phát Mỗithiết bị di động và các nhà sản xuất khác nhau thì thường có các bộ vi xử lý khácnhau cùng 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ẩnchung cho tất cả các thiết bị di động khác nhau này

2.2.2 Tầng máy ảo Java (Java Virtual Machine Layer)

Vai trò của máy ảo Java hay KVM (K Virtual Machine) 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ảixây dựng nhiều đích cho mỗi loại thiết bị di động Hình dưới đây biểu diễn tiến trìnhxây dựng ứng dụng MIDlet hoàn chỉnh và vai trò của KVM

Trang 12

Hình 2.2.2 Tiến trình xây dựng MIDlet

Quá trình phát triển ứng dụng MIDlet vói IDE (Intergrated DevelopmentEnvironment)

Lập trình viên: Bước đầu tiên là lập trình viên phải tạo mã nguồn Java, có thể

có nhiều tập tin (*.java)

Tr

ê n IDE:

Bộ biên dịch Java (Java Compiler): Biên dịch mã nguồn thành mã bytecode Mã

bytecode này sẽ được KVM dịch thành mã máy Mã bytecode đã biên dịch sẽ đượclưu trong các tập tin *.class và sẽ có một tập tin *.class sinh ra cho mỗi lớp Java

Bộ tiền kiểm tra (Preverifier): Kiểm tra tính hợp lệ của mã bytecode Một trong

những yêu cầu an toàn của J2ME là bảo đảm mã bytecode chuyển cho KVM là hợp

lệ và không truy xuất các lớp hay bộ nhớ ngoài giới hạn của chúng Do đó tất cả cáclớp đều phải được tiền kiểm tra trước khi chúng có thể được download về thiết bị diđộng Việc tiền kiểm tra được xem là một phần của môi trường phát triển làm choKVM có thể được thu nhỏ hơn Bộ tiền kiểm tra sẽ gán nhãn lớp bằng một thuộc tính(attribute) đặc biệt chỉ rằng lớp đó đã được tiền kiểm tra Thuộc tính này tăng thêmkhoảng 5% kích thước của lớp và sẽ được kiểm tra bởi bộ kiểm tra trên thiết bị diđộng

Trên IDE: Tạo tập tin JAR IDE sẽ tạo một tập tin JAR chứa:

 Tất cả các tập tin *.class

 Các hình ảnh của ứng dụng Hiện tại chỉ hỗ trợ tập tin *.png

 Các tập tin dữ liệu có thể được yêu cầu bởi ứng dụng

Trang 13

 Một tập tin kê khai (manifest.mf) cung cấp mô tả về ứng dụng cho bộquản lý ứng dụng (application manager) trên thiết bị di động.

 Tập tin JAR được bán hoặc được phân phối đến người dùng đầu cuối

Sau khi đã gỡ rối và kiểm tra mã lệnh trên trình giả lập (simulator), mã lệnh đãsẵn sàng được kiểm tra trên điện thoại di động và sau đó được phân phối cho ngườidùng

Ngưòi dùng: Download ứng dụng về thiết bị di động Người dùng sau đó

download tập tin JAR chứa ứng dụng về thiết bị di động Trong hầu hết các điện thoại

di động, có ba cách để download ứng dụng:

• Kết nối cáp dừ liệu từ PC sang cổng dữ liệu của điện thoại di động: Việc này yêu cầungười dùng phải có tập tin JAR thật sự và phần mềm truyền thông để download ứngdụng sang thiết bị thông qua cáp dừ liệu

• Cổng hồng ngoại IR (Infra Red) Port: Việc này yêu cầu người dùng phải có tập tinJAR thật sự và phần mềm truyền thông để download ứng dụng sang thiết bị thôngqua cổng hồng ngoại

• OTA (Over the Air): Sử dụng phương thức này, người dùng phải biết địa chỉ URL chỉđến tập tin JAR

Tr

ê n thiết bi di đông:

Bộ tiền kiểm tra: Kiểm tra mã bytecode.

Bộ tiền kiểm tra kiểm tra tất cả các lớp đều có một thuộc tính hợp lệ đã đượcthêm vào bởi bộ tiền kiểm tra trên trạm phát triển ứng dụng Nếu tiến trình tiền kiểmtra thất bại thì ứng dụng sẽ không được download về thiết bị di động

Bộ quản lý ứng dụng: Lưu trữ chương trình.

Bộ quản lý ứng dụng trên thiết bị di động sẽ lưu trữ chương trình trên thiết bị diđộng Bộ quản lý ứng dụng cũng điều khiển trạng thái của ứng dụng trong thời gianthực thi và có thể tạm dừng ứng dụng khi có cuộc gọi hoặc tin nhắn đến

Ngưòi dùng: Thực thi ứng dụng.

Bộ quản lý ứng dụng sẽ chuyển ứng dụng cho KVM để chạy trên thiết bị diđộng

KVM: Thực thi mã bytecode khi chương trình chạy.

KVM dịch mã bytecode sang ngôn ngữ máy của thiết bị di động để chạy

2.2.3 Tầng cấu hình

Tầng J2ME kế trên tầng KVM là CLDC hay cấu hình thiết bị kết nối giới hạn.Mục đích của tầng này là cung cấp một tập tối thiểu các thư viện cho phép một ứngdụng Java chạy trên thiết bị di động Nó cung cấp cơ sở cho tầng Hiện trạng, tầng này

sẽ chứa nhiều API chuyên biệt hơn

Trang 14

CLDC - Connected Limited Device Configuration:

Phạm vi: Định nghĩa các thư viện tối thiểu và các API

 Giao diện ứng dụng và người dùng

Các lớp lỗi Java cơ bản, input/output, mạng, và bảo mật được định nghĩa trongCLDC Các API hữu dụng hơn như giao diện người dùng và quản lý sự kiện đượcdành cho hiện trạng MIDP

2.2.4 Tầng hiện trạng

Tầng J2ME cao nhất là tầng hiện trạng và mục đích của nó là định nghĩa các APIcho các thiết bị di động Một thiết bị di động có thể hỗ trợ nhiều hiện trạng Một hiệntrạng có thể áp đặt thêm các giới hạn trên các loại thiết bị di động (như nhiều bộ nhớhơn hay độ phân giải màn hình cao hơn) Hiện trạng là tập các API hữu dụng hơn chocác ứng dụng cụ thể Lập trình viên có thể viết một ứng dụng cho một hiện trạng cụthể và không cần quan tâm đến nó chạy trên thiết bị nào

Trang 15

CHƯƠNG III: MIDLET

Các ứng dụng J2ME được gọi là MIDlet (Mobile Information Device Applet)

Hình 3.1a MIDlet

Thông báo import dùng để truy xuất các lớp của CLDC và MIDP

Lớp chính của ứng dụng được định nghĩa là lớp kế thừa lớp MIDlet của MIDP

Có thể chỉ có một lớp trong ứng dụng kế thừa lớp này Lớp MIDlet được trình quản

lý ứng dụng trên điện thoại di động dùng để khởi động, dừng, và tạm dừng MIDlet(ví dụ, trong trường hợp có cuộc gọi đến)

3.1 Bộ khung MIDlet

Một MIDlet là một lớp Java kế thừa (extend) của lớp trừu tượngjava.microedition.midlet.MIDlet và thực thi (implement) các phương thức startAppO,pauseAppO, và destroyApp()

Hình 3.1b Bộ khung yêu cầu tối thiểu cho một ứng dụng MIDlet

Trang 16

Hàm tạo chỉ được thực thi một lần khi MIDlet được khởi tạo lần đầu tiên Hàmtạo sẽ không được gọi lại trừ phi MIDlet thoát và sau đó khởi động lại.

6) destroyApp()

Phương thức destroyApp() được gọi khi thoát MIDlet (ví dụ khi nhấn nút exittrong ứng dụng) Nó chỉ đơn thuần là thoát MIDlet Nó không thật sự xóa ứng dụngkhỏi điện thoại di động Phương thức destroyApp() chỉ nhận một tham số Boolean.Nếu tham số này là true, MIDlet được tắt vô điều kiện Nếu tham số là false, MIDlet

có thêm tùy chọn từ chối thoát bằng cách ném ra một ngoại lệMIDletStateChangeException

Tóm tắt các trạng thái khác nhau của MIDlet:

Tạo (Created) => Hàm tạo MIDletExample() được gọi một một lần.

Hoạt động (Active) => Phương thức startApp() được gọi khi chương trình bắt đầu

hay sau khi tạm dừng

Tạm dừng (Paused) => Phương thức pauseApp() được gọi Có thể nhận các sự kiện

timer

Hủy (Destroyed) => Phương thức destroy() được gọi.

Trang 17

3.2 Chu kỳ sống của MIDlet

Hình 3.2 Chu kỳ sống của MIDlet

Chu kỳ sống của 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àmdestroyApp()chỉ có thể gọi từ trạng thái hoạt động hay tạm dừng

Lập trình viên cũng có thể điều khiển trạng thái của MIDlet

Các phương thức dùng để điều khiển các trạng thái của MIDlet:

resumeRequest(): Yêu cầu vào chế độ hoạt động (Ví dụ: Khi MIDlet tạm dừng, và

một sự kiện timer xuất hiện)

notifyPaused(): Cho biết MIDlet tự nguyện chuyển sang trạng thái tạm dừng (Ví dụ:

Khi đợi một sự kiện timer)

notifyDestroyed(): Sẵn sàng để hủy (Ví dụ: Xử lý nút nhấn Exit)

Lập trình viên có thể yêu cầu tạm dừng MIDlet trong khi đợi một sự kiện timerhết hạn Trong trường hợp này, phương thức notifyPaused() sẽ được dùng để yêu cầu

bộ quản lý ứng dụng chuyển ứng dụng sang trạng thái tạm dừng

3.3 Tập tin JAR

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áctài nguyên cần thiết Hiện tại, MIDP chỉ hỗ trợ định dạng hình .png (Portable

Trang 18

Network Graphics) Tập tin JAR cũng chứa tập tin kê khai (manifest file) mô tả nộidung 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 Tập tin JAR là toàn bộ ứng dụng MIDlet MIDlet có thể load và triệu gọicác phương thức từ bất kỳ lớp nào trong tập tin JAR, trong MIDP, hay CLDC Nó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ùngchung của thiết bị di động.

3.4 Tập tin kê khai và JAD

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ộtphầ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 tinJAD là các đặc điểm của MIDlet có thể được xác định trước khi download tập tinJAR Nói chung, cần ít thời gian để download một tập tin văn bản nhỏ hơn làdownload một tập tin JAR Như vậy, nếu người dùng muốn download một ứng dụngkhông được thiết bị di động hỗ trợ (ví dụ, MIDP 2.0), thì quá trình download sẽ bịhủy bỏ thay vì phải đợi download hết toàn bộ tập tin JAR

Mô tả nội dung của tập tin JAR:

Các trường yêu cầu

 Manifest-Version//Phiên bản tập tin Manifest

 MIDlet-Name // Tên bộ MIDlet (MIDlet suite)

 MIDlet-Version // Phiên bản bộ MIDlet

 MIDlet-Vendor // Nhà sản xuất MIDlet

 MIDlet-<n> for each MIDlet // Tên của MIDlet

 MicroEdtion-Profile // Phiên bản hiện trạng

 MicroEdtion-Configuration // Phiên bản cấu hình

Ví dụ một tập tin manifest.mf:

MIDlet-Name: CardGames

MIDlet-Version: 1.0.0

MIDlet-Vendor: Sony Ericsson

MIDlet-Description: Set of Card Games

MIDlet-1: Solitaire, /Sol.png, com.semc.Solitaire

MIDlet-2: BlackJack, /Blkjk.png, com.semc.BlackJack

Ngày đăng: 27/03/2015, 18:03

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Lập trình di động với J2ME (Khoa CNTT DHKHTN) Khác
3. Lập trình ứng dụng J2ME Khác
4. Lập trình thiết bị di động với J2ME Khác
5. Tổng quan về J2ME Khác
6. Lập trình di động Khác
7. Tạo chương trình J2ME với Netbean Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Lịch sử J2ME - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 1.2. Lịch sử J2ME (Trang 5)
Hình 2.1a. Kiến trúc J2ME - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 2.1a. Kiến trúc J2ME (Trang 8)
Hình 2.1b. Phân khúc dòng thiết bị với các ngôn ngữ Java - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 2.1b. Phân khúc dòng thiết bị với các ngôn ngữ Java (Trang 9)
Bảng so sánh các thông số kỹ thuật của CDC và CLDC Profile: Profile mở rộng Configuration bằng cách thêm vào các class để bổ trợ - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Bảng so sánh các thông số kỹ thuật của CDC và CLDC Profile: Profile mở rộng Configuration bằng cách thêm vào các class để bổ trợ (Trang 9)
Hình 2.1c. Vị trí các profile trong kiến trúc J2ME - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 2.1c. Vị trí các profile trong kiến trúc J2ME (Trang 10)
Hình 2.2. Các tầng kiến trúc J2ME - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 2.2. Các tầng kiến trúc J2ME (Trang 11)
Hình 2.2.2. Tiến trình xây dựng MIDlet - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 2.2.2. Tiến trình xây dựng MIDlet (Trang 12)
Hình 3.2. Chu kỳ sống của MIDlet - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 3.2. Chu kỳ sống của MIDlet (Trang 17)
Hình 3.5. Hai bộ MIDlet - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 3.5. Hai bộ MIDlet (Trang 19)
Hình 4.1. Phân cấp đối tượng dùng để thể hiện giao diện người dùng MIDP - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 4.1. Phân cấp đối tượng dùng để thể hiện giao diện người dùng MIDP (Trang 20)
Hình 5.1.  Khung mạng CLDC tổng quát - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 5.1. Khung mạng CLDC tổng quát (Trang 31)
Hình 5.3.  Các trạng thái kết nối của HTTP - LẬP TRÌNH JAVA TRÊN MOBILE  J2ME
Hình 5.3. Các trạng thái kết nối của HTTP (Trang 33)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w