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