Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 84 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
84
Dung lượng
23,83 MB
Nội dung
MỤC LỤC MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU VỀ JAVA VÀ ỨNG DỤNG LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 1.1 Giới thiệu Java 1.2 Giới thiệu J2ME ứng dụng lập trình cho điện thoại di động 1.2.1 Giới thiệu J2ME 1.2.2 Lý chọn J2ME .10 1.3 Giới thiệu MIDP 13 1.3.1 Cấu trúc MIDP 15 1.3.2 MIDlet .16 1.3.3 Chu kỳ sống MIDlet 17 1.3.4 Phát triển ứng dụng MIDlet .17 1.3.5 Tập tin JAR 18 1.3.6 Tập tin kê khai (manifest) tập tin JAD 18 CHƯƠNG 2: CÁC KỸ THUẬT XỬ LÝ 20 2.1 Xử lý hình ảnh đồ họa 20 2.1.1 Các đối tượng đồ họa .20 2.1.2 Các thành phần đồ họa mức cao 20 2.1.3 Các thành phần đồ họa mức thấp .23 2.2 Xử lý thao tác bàn phím 40 2.3 Xử lý kiện 41 2.3.1 CommandListener 42 2.3.2 ItemStateListener .43 2.3.3 RecordListener 44 2.3.4 Kết hợp Listener với đối tượng 45 2.4 Xử lý lưu trữ liệu 45 2.4.1 Hệ thống lưu trữ liệu điện thoại di động .45 2.4.2 Định dạng, thêm, xóa record 46 CHƯƠNG 3: TRÒ CHƠI ĐỐI KHÁNG VÀ CÁC PHƯƠNG PHÁP TÌM KIẾM 50 3.1 Sơ lược lịch sử chương trình chơi cờ 50 3.2 Dạng trò chơi 52 3.3 Cây trò chơi chiến lược tìm kiếm trò chơi 53 3.4 Các chiến lược tìm kiếm 54 3.4.1 Vét cạn .54 3.4.2 Thủ tục Minimax 56 3.4.3 Thủ tục AlphaBeta 61 3.4.4 Hướng cải thiện việc tỉa nhánh thuật toán AlphaBeta 68 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH CHƠI CỜ CARO TRÊN ĐIỆN THOẠI DI ĐỘNG 69 4.1 Giới thiệu trò chơi cờ Caro 69 4.2.1 Đặt vấn đề 69 4.2.2 Giải vấn đề .70 4.3 Thiết kế cài đặt chương trình 72 4.3.1 Thiết kế chương trình 72 4.3.2 Cài đặt chương trình 73 4.4 Kết thử nghiệm chương trình 76 KẾT LUẬN 79 TÀI LIỆU THAM KHẢO 80 PHỤ LỤC 81 MỞ ĐẦU Số lượng thiết bị di động ngày tăng Việt Nam, nhiều người coi điện thọai di động vật thiếu sống ngày Cùng với gia tăng số lượng người dùng tính dành cho điện thoại tăng theo tương ứng Hàng loạt tính cao cấp giới thiệu chụp hình số, nghe nhạc đặc biệt sử dụng chương trình nhà sản xuất điện thọai cung cấp Đây coi cách mạng lĩnh vực di động, biến điện thọai nhỏ bé bạn thành máy tính thu nhỏ, với chủng loại điện thoại bạn gửi/nhận mail, truy cập Internet, tra từ điển, đồ… mang giới giải trí đến bên cạnh, nhạc hay, games hay sẵn sàng bạn cần đến Công nghệ Java công nghệ tiên phong việc xâm nhập vào lĩnh vực di động Nếu bạn có điện thoại di động hỗ trợ Java, bạn chơi game, chạy ứng dụng viết Java nơi đâu lúc Hai hướng phát triển ứng dụng điện thoại di động phổ biến sử dụng ngôn ngữ C++ hệ điều hành Symbian J2ME Các ứng dụng viết Symbian có ưu truy cập trực tiếp tài nguyên điện thoại hỗ trợ hệ thống tập tin, thư mục… máy tính cá nhân hỗ trợ trực tiếp hệ điều hành Tuy nhiên hệ điều hành Symbian lại có kích thước lớn nên có hệ điện thoại tương đối cao cấp, xây dựng ứng dụng dùng Symbian API phức tạp Đối lập với Symbian API công nghệ J2ME với kích thước nhỏ gọn, tiện dụng, hỗ trợ hầu hết hệ điện thoại đời, kể điện thoại có hệ điều hành Symbian J2ME ngôn ngữ hướng đến thiết bị di động mà ngôn ngữ để lập trình thiết bị gia dụng, thẻ tín dụng điện tử thiết bị thông minh khác Chúng ta nói đối tượng ngôn ngữ J2ME rộng nhiều so với C++ Symbian Tại thời điểm tại, ngôn ngữ J2ME không hỗ trợ nhiều tính C++ Symbian lại có ưu điểm trội J2ME ngôn ngữ nhỏ, gọn chặt chẽ dễ nắm bắt, với lập trình viên có kinh nghiệm với Java việc lập trình với J2ME trở nên dễ dàng Những điện thoại di động hỗ trợ mạnh âm thanh, hình ảnh, đồ họa Để góp phần làm tăng tính giải trí điện thoại di động đồng thời tìm hiểu việc xây dựng ứng dụng điện thoại di động, em chọn đề tài là: “Tìm hiểu ngôn ngữ J2ME ứng dụng xây dựng chương trình chơi cờ CARO điện thoại di động” nhằm khai thác tính mạnh điện thoại di động Mục tiêu đồ án cần giải vấn đề sau: - Tìm hiểu ngôn ngữ J2ME: thành phần kiến trúc J2ME, kỹ thuật xử lý - Các chiến lược tìm kiếm kinh nghiệm trò chơi đối kháng - Xây dựng chương trình chơi cờ Caro người máy ngôn ngữ J2ME Trên sở đó, nội dung đồ án bao gồm chương sau: Chương 1: Giới thiệu Java ứng dụng lập trình thiết bị di động Chương 2: Các kỹ thuật xử lý Chương 3: Trò chơi đối kháng phương pháp tìm kiếm Chương 4: Xây dựng chương trình chơi cờ Caro điện thoại di động Qua đồ án em cố gắng nắm bắt ứng dụng kỹ thuật lập trình thiết bị di động ngôn ngữ J2ME Tuy nhiên chắn không tránh khỏi thiếu sót, mong đóng góp ý kiến thầy cô bạn để đồ án hoàn thiện CHƯƠNG GIỚI THIỆU VỀ JAVA VÀ ỨNG DỤNG LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 1.1 Giới thiệu Java Vào năm 1990, Java đời từ dự án xanh (Green Project) ban đầu xây dựng để kiểm soát thiết bị dân dụng TV, VCR, đèn, điện thoại số thiết bị cầm tay Java xây dựng chủ yếu dựa công cụ phát triển (Java Development Kit – JDK) thư viện chuẩn chứa trình biên dịch, trình thông dịch, giúp đỡ, tài liệu, Đây tảng cho việc phát triển ứng dụng Java Với phát triển Java nay, nhà phát triển xây dựng nhiều nhánh cho Java như: JavaMail (thư điện tử), Java TAPI (viễn thông), Java3D (đồ họa chiều), J2ME (ứng dụng cho thiết bị di động) Java có phiên sau: J2EETM (Java Platform, Enterprise Edition): phiên dành cho máy chủ lớn với sức mạnh xử lý dung lượng nhớ lớn J2SETM (Java Platform, Standard Edition): phiên chuẩn chạy máy PC laptop với số MB nhớ Các máy tính không mạnh máy chủ mạnh nhiều so với thiết bị di động J2METM (Java Platform, Micro Edition): phiên rút gọn Java cho thiết bị di động giới hạn nhớ xử lý 1.2 Giới thiệu J2ME ứng dụng lập trình cho điện thoại di động 1.2.1 Giới thiệu J2ME J2ME phát triển từ kiến trúc Java Card, Embeded Java Personal Java phiên Java 1.1 Đến đời Java Sun định thay Personal Java đươc gọi với tên Java Micro Edition, hay viết tắt J2ME Đúng với tên gọi, J2ME tảng cho thiết bị có tính chất nhỏ, gọn Mục tiêu J2ME cho phép người lập trình viết ứng dụng độc lập với thiết bị di động, không cần quan tâm đến phần cứng thật Để đạt mục tiêu này, J2ME xây dựng tầng (Layer) khác để giấu việc thực phần cứng khỏi nhà phát triển Hình bên thể tầng J2ME xây dựng CLDC: Mỗi tầng tầng phần cứng tầng trừu tượng, cung cấp cho lập trình viên nhiều giao diện lập trình ứng dụng (API - Application Program Interface) thân thiện Tầng phần cứng thiết bị (Device Hardware Layer) Đây thiết bị di động thật với cấu hình phần cứng nhớ tốc độ xử lý Dĩ nhiên thật phần J2ME nơi xuất phát Các thiết bị di động khác có vi xử lý khác với tập mã lệnh khác Mục tiêu J2ME cung cấp chuẩn cho tất loại thiết bị di động khác Tầng máy ảo Java (Java Virtual Machine Layer) Khi mã nguồn Java biên dịch chuyển đổi thành mã bytecode Mã bytecode sau chuyển thành mã ngôn ngữ máy thiết bị di động Tầng máy ảo Java bao gồm KVM (K Virtual Machine) biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode chương trình Java thành ngôn ngữ máy để chạy thiết bị di động Tầng cung cấp chuẩn hóa cho thiết bị di động để ứng dụng J2ME sau biên dịch hoạt động thiết bị di động có J2ME KVM Tầng cấu hình (Configuration Layer) Tầng cấu hình CLDC định nghĩa giao diện ngôn ngữ Java (Java language interface) phép chương trình Java chạy thiết bị di động Đây tập API định nghĩa lõi ngôn ngữ J2ME Lập trình viên sử dụng lớp phương thức API nhiên tập API hữu dụng chứa tầng trạng (profile layer) Tầng trạng (Profile Layer): Tầng trạng hay MIDP (Hiện trạng thiết bị thông tin di động - Mobile Information Device Profile) cung cấp tập API hữu dụng cho lập trình viên Mục đích trạng xây dựng lớp cấu hình cung cấp nhiều thư viện ứng dụng MIDP định nghĩa API riêng biệt cho thiết bị di động Bảng bên mô tả số thiết bị sử dụng J2ME: 1.2.2 Lý chọn J2ME Java ban đầu thiết kế dành cho máy với tài nguyên nhớ hạn chế Thị trường J2ME mở rộng cho nhiều chủng loại thiết bị như: • Các lọai thẻ cá nhân Java Card • Máy điện thoại di động • Máy PDA (Personal Digital Assistant - thiết bị trợ giúp cá nhân) • Các hộp điều khiển dành cho tivi, thiết bị giải trí gia dụng… 10 1.2.3 Giới thiệu thành phần tảng J2ME Định nghĩa Configuration (Cấu hình): đặc tả định nghĩa môi trường phần mềm cho dòng thiết bị phân loại tập hợp đặc tính, ví dụ như: • Kiểu số lượng nhớ • Kiểu tốc độ vi xử lý • Kiểu mạng kết nối Do đặc tả nên nhà sản xuất thiết bị Samsung, Nokia …bắt buộc phải thực thi đầy đủ đặc tả Sun qui định để lập trình viên dựa vào môi trường lập trình quán thông qua quán này, ứng dụng tạo mang tính độc lập thiết bị cao Ví dụ lập trình viên viết chương trình game cho điện thoại Samsung sửa đổi chương trình cách tối thiểu để chạy điện thọai Nokia Hiện Sun đưa dạng Configuration: CLDC - Connected Limited Device Configuration (Csấu hình thiết bị kết nối giới hạn): thiết kế để nhắm vào thị trường thiết bị cấp thấp (low-end), thiết bị thông thường máy điện thọai di động PDA với khoảng 512 KB nhớ Vì tài nguyên nhớ hạn chế nên CLDC gắn với Java không dây (Java Wireless ), dạng cho phép người sử dụng mua tải ứng dụng Java, ví dụ Midlet CDC - Connected Device Configuration (Cấu hình thiết bị kết nối): CDC 11 đưa nhắm đến thiết bị có tính mạnh dòng thiết bị thuộc CLDC yếu hệ thống máy để bàn sử dụng J2SE Những thiết bị có nhiều nhớ (thông thường 2Mb) có xử lý mạnh Các sản phẩm kể đến máy PDA cấp cao, điện thoại web, thiết bị gia dụng gia đình … Cả dạng cấu hình kể chứa máy ảo Java (Java Virtual Machine) tập hợp lớp (class) Java để cung cấp môi trường cho ứng dụng J2ME Tuy nhiên thiết bị cấp thấp, hạn chế tài nguyên nhớ xử lý nên yêu cầu máy ảo hỗ trợ tất tính với máy ảo J2SE Ví dụ, thiết bị thuộc CLDC phần cứng yêu cầu phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC không yêu cầu hỗ trợ kiểu float double Định nghĩa Profile: Profile mở rộng Configuration cách thêm vào class để bổ trợ tính cho thiết bị chuyên biệt Cả Configuration có profile liên quan từ profile dùng class lẫn Đến ta nhận thấy profile định nghĩa tập hợp class khác nhau, nên thường ta chuyển ứng dụng Java viết cho profile chạy máy hỗ trợ profile khác Cũng với lý đó, bạn lấy ứng dụng viết J2SE hay J2EE chạy máy hỗ trợ J2ME Sau profile tiêu biểu: 12 • Mobile Information Device Profile (MIDP): profile bổ sung tính hỗ trợ kết nối, thành phần hỗ trợ giao diện người dùng … vào CLDC Profile thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính hình hiển thị hạn chế, dung lượng chứa có hạn Do MIDP cung cấp giao diện người dùng đơn giản tính mạng đơn giản dựa HTTP Có thể nói MIDP profile tiếng kiến thức cho lập trình Java máy di động (Wireless Java) • PDA Profile: tương tự MIDP, với thị trường máy PDA với hình nhớ lớn • Foundation Profile: cho phép mở rộng tính CDC với phần lớn thư viện Core Java2 1.3 1.3 Giới thiệu MIDP Định nghĩa Đây Profile định nghĩa dành riêng cho thiết bị di động thành phần J2ME MIDP cung cấp chức cho hầu hết dòng thiết bị di động phổ biến máy điện thoại di động máy PDA Những chức MIDP không thực - Phép tính dấu phẩy động (floating point): Phép tính đòi hỏi nhiều tài nguyên CPU phần lớn CPU cho thiết bị di động không hỗ trợ phép tính này, MIDP - Bộ nạp class (Class Loader) - Hỗ trợ từ khóa finalize() J2SE: Việc “dọn dẹp“ tài nguyên trước bị xóa đẩy phía lập trình viên - Không hỗ trợ JNI - Hỗ trợ hạn chế thao tác bắt lỗi - Phần lớn thư viện API cho Swing AWT sử dụng MIDP - Không hỗ trợ tính quản lý file thư mục: Thực tế thiết bị J2ME hỗ trợ thiết bị lưu trữ thông thường ổ cứng,.v.v Tuy nhiên, điều 13 + Vẽ trạng thái bàn cờ lúc chuẩn bị chơi, di chuyển trỏ, kết quả,… (paint(Graphics g)) + Xử lý kiện phím nhấn (keyPressed(int keyCode)) - Lớp Table bao gồm phương thức sau: + Tính điểm (tinh(int x, int y, int dx, int dy)) + Hàm đánh giá (evaluate()) + Kiểm tra quân chưa (check5(int i, int j, int dx, int dy)) + Kiểm tra trạng thái thắng – thua (checkwin()) + Kiểm tra trạng thái hòa (equivalent(int d1, int d2)) + Chiến lược chọn nước (findSolution()) 4.3.2 Cài đặt chương trình Muốn chạy ứng dụng J2ME trước hết phải có file MIDlet ứng dụng Máy phải cài công cụ lập trình Eclipse, NetBean, JDK 1.6… phải có J2ME Wireless Toolkit (WTK) số chạy giả lập SamSung, Sony Ericsson Trước hết ta sử dụng môi trường giả lập J2ME Wireless Toolkit, công cụ Sun phát triển, giúp lập trình viên test chạy thử chương trình mà không cần phải có máy điện thoại thật Các bước để tạo ứng dụng: Bước 1: Chọn Ktoolbar 73 Bước 2: Chọn New Project từ CDLC Ktoolbar Sau nhập tên Project tên MIDlet xây dựng từ chương trình hình dưới: 74 Chọn Create Project: Chọn Ok Bước 3: Chúng ta dùng công cụ lập trình để soạn thảo (Java) sau chạy ứng dụng (WTK) Copy mã nguồn vào thư mục src trình giả lập file ảnh vào thư mục res 75 Bước 4: Để ứng dụng chạy máy tính ta cần đóng gói toàn ứng dụng vào file jar file jad Các bước để đưa ứng dụng vào chạy máy điện thoại di động thật - Muốn chạy điện thoại di động thật điện thoại cần phải hỗ trợ Java - Điện thoại cần phải có cổng hồng ngoại, Bluetooth, có cáp cắm trực tiếp vào máy tính để đưa file ứng dụng từ máy tính vào điện thoại di động - Cần phải đóng gói ứng dụng thành file JAR sau copy file đưa vào điện thoại di động chạy file JAR 4.4 Kết thử nghiệm chương trình Màn hình Hiển thị hình game 76 Hiển thị hình menu 77 Hiển thị hình chơi 78 KẾT LUẬN Đánh giá kết quả: Qua đợt làm đồ án tốt nghiệp này, với nỗ lực thân giúp đỡ thầy cô, bạn, đặc biệt thầy giáo Thạc sỹ Nguyễn Văn Tới, em hoàn thành đồ án: “Tìm hiểu ngôn ngữ J2ME ứng dụng xây dựng chương trình chơi cờ CARO điện thoại di động” Chương trình đạt số kết sau: - Giao diện đơn giản, dễ sử dụng - Độ khó trò chơi phù hợp với mức độ người chơi - Có thể đóng gói ứng dụng để chạy điện thoại thật Tuy nhiên trình độ hiểu biết hạn chế vấn đề nên chương trình tồn số hạn chế sau: - Giao diện nhiều hạn chế - Chưa có tính cho điểm lưu danh sách người chơi - Chưa xây dựng hàm đánh giá tối ưu để nâng mức độ khó trò chơi Hướng phát triển: Hiện nay, lập trình điện thoại di động lĩnh vực thu hút nhiều lập trình viên Việc xây dựng ứng dụng điện thoại cần thiết nhu cầu cấp thiết phát triển công nghệ di động Trong phạm vi đồ án, em trình bày phần kỹ thuật lập trình điện thoại di động Những phần áp dụng để xây dựng chương trình chơi cờ CARO điện thoại di động Tuy nhiên có nhiều điều cần cải tiến nghiên cứu thêm như: - Khắc phục hạn chế nêu - Xây dựng module xử lý âm - Cải thiện chất lượng hình ảnh không làm tăng kích thước ứng dụng - Bổ sung tính chơi qua mạng giao tiếp hồng ngoại Bluetooth 79 TÀI LIỆU THAM KHẢO [1] Phương Lan - Java Tập - Nhà xuất Lao động - Xã hội [2] Lập trình Game cho Mobile [3] Đinh Mạnh Tường – Trí tuệ nhân tạo, Nhà xuất Khoa học Kỹ thuật Hà Nội, 2002 Và tài liệu số Website như: http://www.javavietnam.org http://www.manguon.com http://java.sun.com/j2se/1.4.2/download.html http://java.sun.com/products/j2mewtoolkit/ www.TinCNTT.com www.java.sun.com/j2me/index.jsp 80 PHỤ LỤC Bảng 1: Tổng số class interface CLDC Tên gói java.io Miêu tả Quản lý việc xuất nhập hệ thống Số lượng class interface 18 java.lang Các lớp Java 38 java.util Các lớp hỗ trợ việc tính thời gian, quản lý tập hợp v.v 10 javax.microedition Quản lý kết nối 10 Bảng 2: Các lớp bổ sung MIDP 1.0 Tên gói Miêu tả Quản lý việc lưu trữ liệu Số lượng class interface 10 Giao diện trung gian Midlet môi trường Midlet chạy Javax.microedition.io Hỗ trợ HTTP Javax.microedition.lcdui Hỗ trợ giao diện người dùng 24 javax.microedition.rms Javax.microedition.midlet Tên gói java.io java.lang java.lang.ref java.lang.reflect java.math java.net java.security java.security.cert java.text Bảng 3: Tổng số class interface CDC Miêu tả Số lượng class interface Quản lý việc xuất nhập hệ 62 thống Các lớp Java 77 Các lớp hỗ trợ thu gom “rác” JVM Hỗ trợ tính reflection 12 Java Hỗ trợ phép tính toán học Hỗ trợ mạng 23 Cung cấp tính bảo mật 36 Hỗ trợ chứng thực bảo mật Cung cấp lớp hỗ trợ thao tác 13 text 81 java.util java.util.jar java.util.zip javax.microedition Các lớp hỗ trợ việc tính thời gian, quản lý tập hợp v.v Hỗ trợ thao tác file Jar Hỗ trợ thao tác file Zip Quản lý kết nối 47 10 Mã nguồn số modul chương trình Hàm tạo bảng Menu private void addMenu() { //Kich co if (size == 0) cmdSize = new Command("Kich co: nho ", Command.OK, 1); if (size == 1) cmdSize = new Command("Kich co: chuan", Command.OK, 1); else if (size == 2) cmdSize = new Command("Kich co: lon", Command.OK, 1); addCommand(cmdSize); //cap if (table.level == 0) cmdLevel = new Command("Cap do: de", Command.OK, 2); else if (table.level == 1) cmdLevel = new Command("Cap do: binh thuong", Command.OK, 2); else if (table.level == 2) cmdLevel = new Command("Cap do: kho", Command.OK, 2); addCommand(cmdLevel); //choi truoc if (humanfirst) cmdFirst = new Command("Choi truoc: Ban", Command.OK, 3); else cmdFirst = new Command("Choi truoc: May tinh", Command.OK, 3); addCommand(cmdFirst); //phan khac 82 cmdHelp = new Command("Tro giup",Command.OK,4); cmdReturn = new Command("Quay lai",Command.OK,5); addCommand(cmdHelp); addCommand(cmdReturn); } Hàm vẽ protected void paint(Graphics g) { int i, j; //chuan bi choi if (status == PREPARE) { //tao bien m = getWidth() / d; n = getHeight() / d; ox = (getWidth() - m * d)/2; oy = (getHeight() - n * d) /2; table.cell = new int[m][n]; table.score = new int[m][n]; table.score1 = new int[m][n]; table.m = m; table.n = n; for(i=0; i[...]... loại chương trình duy nhất có trên các thiết bị Đây là loại chương trình được nhà sản xuất đưa sẵn vào máy di động lúc sản xuất như chương trình chọn tiếng chuông, chỉnh thông số điện thoại, chỉnh giờ… Chính nhờ J2ME ra đời chúng ta mới có chức năng cài đặt thêm các chương trình được viết thêm vào điện thoại CLDC là nền tảng cơ bản cho MID Profile, các chương trình MIDP (MIDP Applications) có thể sử dụng. .. thể kiểm tra ứng dụng MIDlet trên các thiết bị này trước khi ứng dụng thực tế 4 Đóng gói ứng dụng Sau khi kiểm tra hết lỗi ta tiến hành đóng gói ứng dụng để có thể chạy được trên các thiết bị thật Việc đóng gói ứng dụng thực chất là nén các file class vào một file jar, điều này giúp giảm kích thước ứng dụng khi triển khai trên các thiết bị thật 1.3.5 Tập tin JAR Các lớp đã biên dịch của ứng dụng MIDlet... người dùng yêu cầu thực thi ứng dụng, bộ quản lý ứng dụng sẽ thực thi MIDlet Khi ứng dụng thực thi, nó sẽ được xem là ở trạng thái tạm dừng, bộ quản lý ứng dụng sẽ gọi hàm tạo và hàm startApp() Hàm startApp() có thể được gọi nhiều lần trong quá trình thực thi ứng dụng Hàm destroyApp() chỉ có thể gọi khi ứng dụng ở trạng thái hoạt động hoặc tạm dừng 1.3.4 Phát triển ứng dụng MIDlet 1 Biên dịch MIDlet... lớp được cung cấp bởi cả CLDC và MIDP Ngoài 15 ra chúng ta còn có các lớp OEM (Original Equipment Manufacturer) là các lớp do các nhà sản xuất cung cấp thêm cho điện thoại (các hãng như Nokia, Samsung, Motorola… thường có thêm nhiều lớp cấp cao hỗ trợ cho lập trình viên) và bên trên là các ứng dụng được xây dựng từ các lớp này, các ứng dụng này thường chỉ chạy trên các điện thoại của hãng đã cung cấp... của tập tin manifest 19 CHƯƠNG 2 CÁC KỸ THUẬT XỬ LÝ 2.1 Xử lý hình ảnh đồ họa 2.1.1 Các đối tượng đồ họa Hầu hết các điện thoại di động ngày nay đều sử dụng công nghệ Java Thế mạnh của ngôn ngữ này là có thể chạy được trên các platform khác nhau Để xây dựng các ứng dụng giải trí mạnh về đồ họa, môi trường MIDP 1.0 cung cấp cho chúng ta hai mức đồ họa cơ bản là đồ họa mức thấp và đồ họa mức cao Đồ họa... động của trò chơi sẽ được ánh xạ vào các nút bấm, ví dụ phím trái được ánh xạ vào phím số 2, phím phải được ánh xạ vào phím số 5, và cứ tiếp tục như thế Hình dưới đây cho thấy các hành động của trò chơi sẽ được ánh xạ lên một thiết bị di động dựa trên khả năng của các phím chỉ hướng 27 g) Xác định các hành động của trò chơi Đoạn mã sau đây mô tả một cách xác định các hành động của trò chơi để từ đó... 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.3.1 Cấu trúc của MIDP Tầng dưới cùng là phần cứng của thiết bị di động Phía trên phần cứng là hệ điều hành điều khiển các hoạt động Bên trên hệ điều hành ta có thể chia thành 2 phần riêng biệt Phần bên phải là các chương trình native application ( chương trình nguyên gốc”) Trước khi J2ME. .. 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, Vector 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ợ Form và các giao di n người... phương thức trên có thể tự giải thích chức năng thông qua tên của chính mình Phương thức hasPointerMotionEvents() trả về một giá trị có kiểu boolean nhằm chỉ rõ rằng thiết bị di động có hỗ trợ khái niệm “nhấp chuột và rê” hay không Đoạn chương trình dưới đây minh họa việc sử dụng các sự kiện con trỏ để thực hiện một chương trình vẽ đơn giản import javax.microedition.midlet.*; 29 import javax.microedition.lcdui.*;... được gọi bởi bộ quản lý ứng dụng khi MIDlet được tạo hay khi MIDlet trở về trạng thái tạm dừng - pauseApp(): phương thức pauseApp() được gọi bởi bộ quản lý ứng dụng mỗi khi ứng dụng cần được tạm dừng 16 - destroyApp(): phương thức này được gọi khi thoát MIDlet 1.3.3 Chu kỳ sống của MIDlet Sơ đồ biểu di n chu kỳ sống của MIDlet Chương trình được Tạm dừng startApp() pauseApp() Hoạt động destroyApp() Hủy