Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 156 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
156
Dung lượng
2,58 MB
Nội dung
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ TP.HCM KHOA CÔNG NGHỆ THÔNG TIN KHÓA LUẬN TỐT NGHIỆP Đề tài: LẬP TRÌNH ỨNG DỤNG MOBILE BẰNG JAVA GVHD : Tiến sĩ NGUYỄN VĂN HIỆP SVTH : NGUYỄN CÔNG HÙNG MSSV : 106H1031 TP.HỒ CHÍ MINH – NĂM 2009 Lời Cảm Ơn! Luận án thực thời gian dài, thành phẩm lớn mà thực trình học tập trường Ngoài cố gắng, nỗ lực thân, nhận giúp đỡ nhiều người để hoàn thiện luận án ngày Đầu tiên, xin vô biết ơn Ba Mẹ, có công sinh thành, dưỡng dục, thương yêu chăm sóc có ngày hôm Tôi xin cảm ơn thầy cô Khoa Công nghệ thông tin thầy cô trường Đại Học Mở TP.HCM truyền đạt kiến thức, kinh nghiệm quý báu trình học tập nghiên cứu Em xin chân thành cảm ơn tiến sĩ.Nguyễn Văn Hiệp, giảng viên Khoa Công nghệ thông tin – trường Đại Học Bách Khoa Tp.HCM tận tình hướng dẫn, định hướng, góp ý trình thực luận văn Tôi xin cảm ơn tập thể nhóm lập trình phần mềm công ty Tin học Thảo Chương tạo điều kiện cho trình thực luân văn Tôi xin cảm ơn bạn động viên cho trình thực luận văn Mặc dù, nỗ lực để hoàn thành báo cáo đạt số kết định, nhiên sai sót báo cáo không tránh khỏi, kính mong thông cảm đóng gớp ý kiến quý thầy cô bạn Xin chân thành cảm ơn! Tp HCM, ngày 07, tháng 01, năm 2009 Người thực hiện: Nguyễn Công Hùng Mã số sinh viên: 106H1031 Lớp học: HCTH062C Xin Cảm Ơn! Luận văn tốt nghiệp CHƯƠNG 1: 1.1 1.2 1.3 Đặt vấn đề Mục tiêu đặt cho đề tài Nội dung CHƯƠNG 2: 2.1 MỤC TIÊU VÀ NỘI DUNG ĐỀ TÀI TỔNG QUAN VỀ J2ME CÁC THÀNH PHẦN CỦA J2ME 2.1.1 Tầng phần cứng thiết bị (Device Hardware Layer) 2.1.2 Tầng máy ảo Java (Java Virtual Machine Layer) 2.1.3 Tầng cấu hình (Configuration Layer) 10 2.1.4 Tầng trạng (Profile Layer) 12 2.1.5 Một số hạn chế J2ME so với phiên khác(chủ yếu nằm tầng Configuration này): 12 2.2 CHỨC NĂNG CÁC THÀNH PHẦN 13 2.2.1 Máy ảo Java (Kilobyte Virtual Machine - KVM) 13 2.2.2 CLDC 15 2.2.2.1 Yêu cầu phần cứng dành cho CLDC: 16 2.2.2.2 Yêu cầu phần mềm dành cho CLDC: 17 2.2.2.3 Sự khác biệt CLDC 1.0 CLDC 1.1 17 2.2.2.4 Danh sách lớp mà CLDC cung cấp 17 2.2.3 MIDP 20 2.2.3.1 Định nghĩa: 20 2.2.3.2 Những chức mà MIDP không hỗ trợ: 20 2.2.3.3 Những chức mà MIDP cung cấp 21 2.2.3.4 Những yêu cầu dành cho MIDP 21 2.2.3.5 Các dạng profile 22 2.2.3.6 Sự khác MIDP 1.0 MIDP 2.0 22 2.2.3.7 Danh sách lớp mà MIDP cung cấp 23 CHƯƠNG 3: 3.1 3.2 ĐỊNH NGHĨA: .26 CÁC DẠNG MIDLET 26 3.2.1 3.2.2 3.3 BỘ MIDLET 26 Ứng dụng đơn (standalone application) 26 Ứng dụng nối mạng (networked application) 26 CẤU TRÚC MỘT BỘ MIDLET (MIDlet suite) 26 3.3.1 Cấu trúc file Jar 26 3.3.2 File JAD (Java Application Descriptor File) : 27 3.3.2.1 Đặt tả 27 3.3.2.2 Các phương thức MIDlet 29 3.3.2.3 Xây dựng ứng dụng MIDlet: 29 3.3.2.4 Lớp MIDlet: 31 CHƯƠNG 4: 4.1 GIAO DIỆN ĐỒ HỌA 33 QUẢN LÝ VIỆC HIỂN THỊ VÀ BẮT SỰ KIỆN 35 Trang Luận văn tốt nghiệp 4.1.1 Quản lý việc hiển thị 35 4.1.1.1 Lớp Display 35 4.1.1.2 Lớp Displayable 36 4.1.2 Quản lý kiện: 37 4.1.2.1 Command CommandListener 38 4.1.2.2 Item ItemStateListener 41 4.2 GIAO DIỆN ĐỒ HỌA CẤP CAO 42 4.2.1 4.2.2 4.2.3 4.2.3.1 4.2.3.2 4.2.3.3 4.2.3.4 4.2.3.5 4.2.3.6 4.2.3.7 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.7.2 4.2.7.3 4.2.8 4.3 Screen: 42 Form: 42 Item: 43 DateField: 44 Gauge: 45 StringItem: 47 TextField: 47 ChoiceGroup: 50 Image: 53 ImageItem: 54 TextBox 56 Alert 58 AlertType: 60 List: 61 Các dạng list 61 Bắt kiện cho đối tượng List 62 So sánh lớp List lớp ChoiceGroup: 62 Ticker: 64 ĐỒ HỌA CẤP THẤP .64 4.3.1 Canvas: 65 4.3.1.1 Hệ tọa độ 65 4.3.1.2 Vẽ đối tượng Canvas: 66 4.3.1.3 Bắt kiện đối tượng Canvas 68 4.3.1.4 Game action: 70 4.3.2 Graphics: 72 4.3.2.1 Color: 73 4.3.2.2 Nét vẽ: 74 4.3.2.3 Font chữ: 76 4.3.2.4 Vẽ đối tượng hình ảnh (Image): 78 4.3.2.5 Các phương thức tịnh tiến đối tượng: 79 4.3.2.6 Vùng xén (Clipping regions): 81 CHƯƠNG 5: LƯU TRỮ THÔNG TIN VÀ LẬP TRÌNH MẠNG 82 NộI DUNG TRÌNH BÀY: 82 LƯU TRữ THÔNG TIN TRONG J2ME 82 KếT NốI MạNG VớI GENERIC CONNECTION FRAMEWORK 82 Trang Luận văn tốt nghiệp 5.1 Lưu trữ thông tin với RMS 82 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.2 RecordStore 83 RecordEnumeration 91 Sắp xếp RecordComparator 93 Lọc record với RecordFilter 95 RecordListener 96 Kết nối mạng với Generic Connection Framework (GCF) 97 5.2.1 Giới thiệu GCF 97 CHƯƠNG 6: NHỮNG QUI TRÌNH VÀ RÀNG BUỘC ĐỂ MỘT ỨNG DỤNG TRÊN JBUILDER CHẠY ĐƯỢC TRÊN MOBILE 117 6.1 Tìm hiểu trình bày qui trình kỹ thuật để xây dựng ứng dụng mobile Jbuilder 117 6.1.1 6.1.2 6.1.3 6.1.3.1 6.1.3.2 6.1.4 Cài đặt Jbuilder 117 Cài đặt SDK cho Nokia 121 Quá trình xây dựng MIDlet 127 Quá trình đầu tiên: Tạo project 127 Quá trình thứ hai: Tạo lớp MIDlet 131 Các bước để xây dựng file.Jar file.Jad: 137 6.2 Tìm hiểu trình bày yêu cầu ràng buộc để ứng dụng mobile Jbuilder chạy mobile 141 6.2.1 Những ràng buộc thiết bị di động 141 6.2.1.1 Ràng buộc phần cứng 141 6.2.1.2 Ràng buộc phần mềm 142 6.2.2 Những ràng buộc ứng dụng 142 CHƯƠNG 7: GIỚI THIỆU ỨNG DỤNG DEMO 143 7.1 Giới thiệu .143 7.2 Xây dựng MIDlet 143 7.3 Mô tả chương trình 143 7.4 Các chức chương trình: 144 7.5 Thực thi chương trình 145 Để điện thoại chạy ứng dụng MIDlet trước hết ta xem yêu cầu ràng buộc để ứng dụng java chạy mobile (vấn đề trình chương 6) .145 CHƯƠNG 8: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 150 8.1 Kết 150 8.2 Nhưng hạn chế: 150 Về luận văn trình bày Error! Bookmark not defined Về chương trình Error! Bookmark not defined 8.3 Hướng phát triển 150 Trang Luận văn tốt nghiệp CHƯƠNG 1: MỤC TIÊU VÀ NỘI DUNG ĐỀ TÀI Nội dung trình bày: Mục tiêu nội dung đề 1.1 Đặt vấn đề Với máy tính để bàn (máy PC) ngày làm hầu hết việc từ đơn giản đến phức tạp Nhưng mà máy PC làm việc cố định, đó, máy tính Laptop xuất với tính nhỏ gọn mang theo làm việc nơi Ngày thiết bị di động trở nên phổ biến sử dụng rộng rãi Việt Nam, đặc biệt loại điện thoại di động Nhiều người coi điện thoại di động vật thiếu sống ngày Nắm bắt nhu cầu đó, nhà sản xuất điện thoại đẩy mạnh mặt công nghệ, tăng cường mẫu mã, tích hợp chức ngày nhiều vào dòng sản phẩm mới, hầu đem lại cho người dùng tiện ích cao cấp với công nghệ tiên tiến Giờ đây, người dùng điện thoại nghe nhạc, xem phim, chụp hình chơi game chí xem TV, lướt web với điện thoại bé xíu bên Chiếc điện thoại thực không phương tiên liên lạc, mà mang giới giải trí, giới Mobile đến với người lúc nơi Với công nghệ phát triển không ngừng nay, việc đòi hỏi ứng dụng tốt ngày trở thành yêu cầu đôi với phát triển công nghệ Một điện thoại tốt đòi hỏi phần mềm cao cấp kèm với Nhưng vấn đề lại đặt có nhiều nhà sản xuất điện thoại sử dụng nhiều công nghệ khác Vậy tạo ứng dụng chạy tất dòng sản phẩm đó? Đây thật vấn đề không đơn giản chút Một thực tế đặt cho nhà phát triển phần mềm chuẩn hóa dành cho nhà sản xuất phần cứng Các thiết bị thị trường đa dạng mang nhiều đặc điểm cấu hình khác Trước thực tế đó, việc chạy nhiều môi trường lợi lớn ngôn ngữ Java Như biết, ban đầu Java xây dựng gồm phiên nhất, ngày biết đến với tên J2SE (Java Standard Edition) với Trang Luận văn tốt nghiệp phương châm “Write once, run anywhere” tạm dịch “viết lần, chạy môi trường” Java hình thành ý tưởng xây dựng ngôn ngữ mà lập trình viên cần viết lần ứng dụng chạy môi trường có hổ trợ Java Virtual Machine tạm dịch “máy ảo Java” Các nhà phát triển Java cho ngôn J2ME hướng đến việc phát triển phần mềm cho thiết bị di động Ngôn ngữ J2ME thực ngôn ngữ nhỏ gọn, dễ nắm bắt, chặt chẽ thích hợp cho thiết bị có khả hạn chế Các thiết bị di động thị trường nay, đặc biệt điện thoại di động hầu hết hỗ trợ tốt ngôn ngữ J2ME J2ME thực trở thành ngôn ngữ phổ biến lĩnh vực lập trình di động J2ME xem nhánh ngôn ngữ lập trình Java phát triển nhằm hướng tới việc lập trình cho thiết bị nhỏ có nhớ, khả hiển thị xử lý hạn chế 1.2 Mục tiêu đặt cho đề tài Tìm hiểu ràng buộc phần cứng chủng loại thiết bị di động Hiểu chi tiết J2ME, kiến trúc nên tảng ứng dụng để lập trình thiết bị di động Nắm kỹ thuật xử lý form, âm thanh, hình ảnh, lưu trữ điện thoại di động Tìm hiểu qui trình kỹ thuật để xây dựng ứng dụng mobile Jbuilder Những ràng buộc để ứng dụng viết Jbuilder chạy mobile Ứng dụng kết đạt để xây dựng chương trình đơn giản, có tiện ích phục vụ nhu cầu người sử dụng điện thoại di động Áp dụng thành công số dòng máy điện thoại di động hỗ trợ Java hãng Nokia, SonyEricsson, Samsung,… Những mục tiêu đặt nhằm xây dựng luận văn tốt hơn, đủ Và xa là, luận văn trình đầy đủ cần thiết người tự viết ứng dụng riêng cho điện thoại Trang Luận văn tốt nghiệp 1.3 Nội dung Với mục tiêu luận văn xin trình bày nội dung sau: Giới thiệu chung ngôn ngữ J2ME: tầng configuration profile Các vấn đề liên quan đến MIDlet Lập trình thiết bị di động sử dụng giao diện đồ họa cấp thấp cấp cao Việc lưu trữ thông tin MIDlet xuống bảng ghi truy xuất chúng cần thiết Lập trình mạng Các bước cần thiết để xây dựng thực thi MIDlet Những ràng buộc để ứng dụng viết Jbuilder chạy Mobile Xây dựng ứng dụng game caro để demo Trang Luận văn tốt nghiệp CHƯƠNG 2: TỔNG QUAN VỀ J2ME Nội dung trình bày: Trình thành phần để cấu thành nên J2ME Máy ảo java Configuration Profile Chức thành phần 2.1 CÁC THÀNH PHẦN CỦA J2ME 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 Sau tầng J2ME xây dựng (2) Hình 1: Các thành phần J2ME Java Enterprise Edition (J2EE) Java Standard Edition (J2SE) CDC Java Virtual Machine MIDP Profile level CLDC Configuration level KVM Java Micro Edition Khái niệm điện thoại di động tương đối rộng lớn Chúng bao gồm thiết bị có kích thước vật lý khác nhiều lần cho dù kích thước thiết bị có khả xử lý thể khác (những điện thoại hiển thị 12,000 pixels PDA 20000 pixels) Để đáp ứng nhu cầu khác thiết bị này, thân ngôn ngữ J2ME chia thành thành phần nhỏ Trang Luận văn tốt nghiệp Hình 2: Cấu trúc thiết bị MID MIDP Applications OEM-Specific Applications Native Applications OEM-Specific Classes Mobile Information Device Profile (MIDP) Connected Limited Device Configuration (CLDC) Native Operating System Mobile Information Device(MID) Mỗi tầng tầng Mobile Information Device 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 2.1.1 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 2.1.2 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, đồng thời máy ảo Java chịu trách nhiệm việc cung cấp tính bảo mật, cấp phát, thu hồi nhớ quản lý việc điều phối tiến trình 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 Chính hạn chế nguyên thiết bị di động đề nhu cầu đời KVM Đây yêu cầu dành cho máy ảo KVM: Trang Luận văn tốt nghiệp Hình 39: Thêm tập tin vào file JAR Chúng ta add thêm tập tin khác vào tập tin JAR Trang 140 Luận văn tốt nghiệp Hình 40: Cho phép hiệu chỉnh thông tập tin JAR Bên thông tin bắt buộc MIDlet là: Name, Version, Vendor, Profile configuration; thông tin lưu tập tin Manifest.mf tập tin có phần mở rộng jar 6.2 Tìm hiểu trình bày yêu cầu ràng buộc để ứng dụng mobile Jbuilder chạy mobile 6.2.1 Những ràng buộc thiết bị di động 6.2.1.1 Ràng buộc phần cứng Màn hình phải có 96 x 54 pixels Có 128 kilobytes nhớ non-volatile để chạy thành phần MIDP Có kilobytes nhớ non-volatile để lưu cấu hình chương trình liệu Có 32 kilobytes để chạy Java Có kết nối không dây (wireless network) Đường truyền bị giới hạn Trang 141 Luận văn tốt nghiệp 6.2.1.2 Ràng buộc phần mềm Hệ điều hành phải hổ trợ việc xử lý ngắt, xử lý exception hỗ trợ xử lý đồ họa bitmap để xuất liệu hình Hệ điều hành phải nhận tín hiệu nhập liệu chuyển liệu cho máy ảo Java Hệ điều hành phải hỗ trợ việc đọc ghi vào nhớ non-volatile Không đòi hỏi hệ điều hành phải định nghĩa file system phải cho phép ghi liệu dạng persistent (không bị ngắt máy, tắt điện) Phải hỗ trợ truy xuất mạng, đặc biệt phải có tính đọc ghi liệu thông qua mạng không dây 6.2.2 Những ràng buộc ứng dụng Ứng dụng phải MIDlet Ứng dụng phải build thành tập tin có phần mở rộng jar jad Để ứng dụng mobile viết môi trường Jbuilder chạy mobile thuộc tính miêu tả file jar file jad phải thiết bị di động hỗ trợ Lưu ý: Trong phần phụ lục có bảng chứa vài thông tin cần thiết số model điện thoại di động Nếu biết thuộc tính bên file jar ta so sánh với thông tin bảng ta biết ứng dụng chạy điện thoại hay không Trang 142 Luận văn tốt nghiệp CHƯƠNG 7: GIỚI THIỆU ỨNG DỤNG DEMO Nội dung trình bày: Mô tả chương trình game caro Các chức mà ứng dụng đạt Mô ứng dụng 7.1 Giới thiệu Game care game dễ chơi biết tất người bỡi lẽ qui tắc chơi đơn giản: Để chơi cờ caro cần phải có người Bàn cờ mảng ô vuông liền Mỗi lần ta ô Trong trình chơi ta tìm cách đánh ô liền (cả hàng ngang, hàng dọc, đường chéo) trước ta thắng 7.2 Xây dựng MIDlet Chương trình dựa bước để xây dựng chương trình ứng dụng mobile trình bày bước để xây dựng MIDlet Cũng gồm trình trình tạo project tạo tập tin java Ấp dụng mà J2ME hỗ trợ (CLDC 1.0 MIDP 2.0) để xây dựng tập tin java cần thiết cho chương trình Chương trình mô điện thoại Nokia 7.3 Mô tả chương trình Ứng dụng MIDlet Là chương trình game caro, cho phép thực việc chơi game máy người Chương trình mô việc lập trình Mobile java thông qua IDE Jbuilder, áp dụng lý thuyết J2ME để xây dựng ứng dụng game caro điện thoại di động Ngoài mà thân Jbuilder hỗ trợ có sử dụng thêm số tool hãng Sun Nokia cung cấp Chương trình kết hợp dạng giao diện đồ họa cấp thấp cấp cao Nhưng mà thời điểm thi J2ME hỗ trợ dạng giao diện mà Trang 143 Luận văn tốt nghiệp Các tùy chọn sử dụng giao diện đồ họa cấp cao, hình để thực việc chơi game sử dụng giao diện đồ họa cấp thấp Đây MIDlet với: MIDlet-2: Options, , keycodes.Options MicroEdition-Configuration: CLDC-1.0 MIDlet-Name: My MIDlet Suite MIDlet-Vendor: My Vendor MIDlet-1: KeyCodes, , keycodes.KeyCodes MIDlet-Version: 1.0 MicroEdition-Profile: MIDP-2.0 7.4 Các chức chương trình: o Chương trình cho phép thực trò chơi caro người máy o Có mức độ cho phép người chơi chọn mức độ chơi (tạm gọi mức độ khó): Chuyên gia phòng thủ Chuyên gia công Phòng thủ chặt, công nhanh Đây tùy chọn (List) dạng EXCLUSIVE (radio button) tức cho phép người chơi chọn mức độ thời điểm o Lượt người máy: có tùy chọn dạng (List) phép người dùng chọn lượt (người chơi trước máy trước) o Nếu bạn chơi thắng máy bạn nhận câu thông “Bạn thắng !” ngược lại, bạn nhận câu thông báo “Bạn thua rồi…!” o Project đặt tên KeyCode Và chương trình xây dựng với lớp lớp tương ứng với tập tin java o Mô tả lớp chương trình o Chức hàm lớp o Cách build chương trình o Để chạy chương trình IDE ta vào Run chọn Run Project tương đương với phím F9 bàn phím Trang 144 Luận văn tốt nghiệp o Chương trình build bước build đề cập chương trước o Chương trình thực trình tiền kiểm tra (preverify) Thiết bị di động từ chối việc thực thi ứng dụng chưa thực trình tiền kiểm tra o Sau hoàn thiện chương trình ta chép tập tin mà ta build vào điện thoại di động chạy o Như đề cập chương trước thiết bị di động muốn thực thi ứng dụng trước hết ứng dụng phải tiền kiểm tra (preverify) xem ứng dụng có đáp ứng mà thân thiết bị hỗ trợ hay không 7.5 Thực thi chương trình Để điện thoại chạy ứng dụng MIDlet trước hết ta xem yêu cầu ràng buộc để ứng dụng java chạy mobile (vấn đề trình chương 6) Chương trình chép vào điện thoại di động (xem thêm phần phụ lục cách chép tập tin jar vào điện thoại di động), sau thực thi chương trình theo bước bên Trang 145 Luận văn tốt nghiệp Hình 41: Chiếc điện thoại Sun mô ứng dụng Đây điện thoại hoàn toàn giống với điện thoại bên (về hình dáng) Sun giả lập để mô cho điện thoại di động thật bên Trang 146 Luận văn tốt nghiệp Hình 42: Hiển thị việc chọn mức độ cho người chơi cờ Đây hình ảnh hiển thị việc cho phép người chơi chọn mức độ khó Ta dùng phím mũi tên lên, xuống để thay đổi việc chọn Để chọn ta nhấn phím Enter (phím hình vuông giữa) Trong hình có nút điều khiển: Nút [Thoát] tương ứng với nút tròn bên tay trái cho phép người chơi thoát chương trình; Nút [Tiếp tục] tương ứng với nút tròn bên tai phải cho phép người chơi chọn tiếp Trang 147 Luận văn tốt nghiệp Hình 43: Tùy chọn việc trước người máy Đây hình hiển thị việc chọn trước người máy Tương tự, ta dùng phím mũi tên lên xuống để thay đổi việc lựa chọn dùng phím enter để chọn Trong hình có thay đổi, nút [Trở lại] thay cho nút [Thóat] hình trước, túc ta crhió thể quay lại hình trước để thay đổi việc chọn mức độ Trang 148 Luận văn tốt nghiệp Hình 44: Màn hình để chơi cò Cách cờ: Như đề cập lúc chọn tùy chọn, chương trình cho phép cho quyền chọn trước, hay nhường quyền cho máy trước Ta dùng phím sau: Phím số để di chuyển qua bên trái Phím số để di chuyển qua bên phải Phím số để di chuyển lên phía Phím số để di chuyển xuống phía Phím số để thực việc đánh cờ vị trí chọn Khi không muốn thoát game nhấn nút tròn bên phải thấy xuất menu ta chọn Exit để thoát Trang 149 Luận văn tốt nghiệp CHƯƠNG 8: 8.1 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN Kết Luận văn trình bày kiến thức việc lập trình thiết bị di động J2ME, sau vấn đề mà luận văn trình bày: Giới thiệu CLDC MIDP Những vấn đề liên quan đến MIDlet Các thành phần giao diện MIDlet Cách lưu trữ liệu dành cho MIDlet (dùng RMS) Kết nối mạng với GCF dịch vụ tin nhắn với SMS 8.2 Nhưng hạn chế: Chương trình chức lưu liệu 8.3 Hướng phát triển Có thể viết chương trình ứng dụng riêng cho điện thoại Trang 150 Luận văn tốt nghiệp TÀI LIỆU THAM KHẢO Ebook tham khảo: [Premier[1].Press_.J2ME.Game.Programming._2004_.LiB.chm] MARTIN J WELLS [J2ME Step to Step] Luận văn tốt nghiệp - [Nghiên cứu java moble ứng dụng minh họa] Đặng Nguyễn Kim Anh & Đào Anh Tuấn [Java tập 3] Phương Lan Trần Tiến Dũng – NXB Lao Động Web site tham khảo: http://www.thienlong.org/forumvn/showthread.php?t=8979 http://www.forum.nokia.com http://www.javavietnam.org http://java.sun.com/javase/technologies/hotspot/ http://my.opera.com/signup8x/blog/2008/01/30/viet-tro-choi-caro-gomokubang-ngon-ngu-c http://developers.sun.com/mobility/midp/articles/wtoolkit/ http://www.thienlong.org/forumvn/showthread.php?t=15089&goto=nextnewest http://www.onjava.com/pub/a/onjava/2001/03/08/J2ME.html http://www.free4vn.org/f210/free4vn-j2me-lap-trinh-cho-dtdd-27687/ 10 http://haidanggsm.com.vn/forum/viewforum.php?f=152 Trang 151 Luận văn tốt nghiệp PHỤ LỤC I Môi trường phát triển ứng dụng J2ME Phần ta tìm hiểu phần mềm cần thiết dùng để phát triển ứng dụng J2ME, cách cài đặt cấu hình phần mềm Ngoài ra, nghiên cứu tools phát triển hỗ trợ thêm Để viết ứng dụng J2ME, cần chương trình sau: Java Development Kit (JDK) version 1.3 cao Ta tải link : http://java.sun.com/products/jdk/ Connected, Limited Device Configuration (CLDC) ta tải link: http://java.sun.com/products/cldc/ Mobile Information Device Profile (MIDP) ta tải link: http://java.sun.com/products/midp/ Chú ý: Ở xem Microsoft Windows hệ điều hành mặc định sử dụng, người dùng sử dụng hệ điều hành khác phải có số điều chỉnh phù hợp với hệ điều hành Cài đặt phần mềm: a Cài đặt JDK: File cài đặt JDK có dạng file thực thi (.exe), cần chạy làm theo hướng dẫn cài đặt thành công JDK (giả sử thư mục cài đặt C:\jdk1.4.1) Sau cài đặt xong cần phải cấu hình biến môi trường cần thiết Việc set biến môi trường giúp chạy trình biên dịch từ vị trí nào, không cần phải gõ tên đường dẫn đầy đủ trình biên dịch Vào Control Panel, chọn System,chọn Environment (hoặc Advanced/Environment) Tìm thư mục Path thêm vào thư mục \bin thư mục JDK (ví dụ C:\JDK\bin) vào biến môi trường Path (Path = …… ;c:\jdk\bin;) b Cài đặt CLDC MIDP: File CLDC MIDP có dạng zip, ta giải nén vào chung thư mục (ví dụ c:\J2ME) Trang 152 Luận văn tốt nghiệp Thư mục J2ME có dạng: C:\J2ME j2me_cldc (thư mục chứa CLDC) midp 1.0.1.fcs (thư mục chứa MIDP) Và sau ta xét biến môi trường sau: Path = C:\jdk 1.3.1\bin;C:\j2me\j2me_cldc\bin;C:\j2me\midp 1.0.3fcs\bin; Classpath = C:\j2me\midp 1.0.3fcs\classes; (dấu “.” Chỉ thư mục hành) Lúc ta đủ công cụ để xây dựng ứng dụng J2ME Chúng ta có nhiều công cụ hỗ trợ cho trình biên dịch thực thi MIDlet ban đầu tìm hiểu cách sử dụng công cụ công cụ chuẩn J2ME Quá trình biên dịch thự thi ứng dụng J2ME phải qua số thao tác dòng lệnh (command lines), giả sử thư mục chứa mà nguồn thư mục C:\Midlets Quá trình biên dịch Pre-verify: Để biên dịch ta chuyển đến thư mục chứa ứng dụng (C:\Midlet\Welcome\) gõ lệnh: javac – bootclasspath c:\j2me\midp 1.0.3fcs\classes Wellcome.java javac – bootclasspath %CLASSPATH% Welcome.java (CLASSPATH biến môi trường định nghĩa trước thay cho c:\j2me\midp 1.0.3.fcs\classes;) Java chương trình biên dịch JDK, thông số - bootclasspath lệnh cho chương trình biên dịch lấy file lớp sở thư mục c:\j2me\midp 1.0.3fcs\classes (Đây file class sở MIDP) Nếu thông số này, file lớp sở JDK sử dụng, file lớp sở khác với file MIDP nên J2ME không sử dụng Sau trình file Welcome.class tạo mặc định chung thư mục với file mã nguồn Sau file class tạo ta cần thực việc “pre-verify” Preverify –classpath c:\j2me\midp 1.0.3fcs\class; –d.Welcome Hoặc Trang 153 Luận văn tốt nghiệp Preverify – classpath %CLASSPATH% -d Welcome Tương tự, thông số classpath vị trí file class thư mục c:\j2me\midp 1.0.3fcs\class thư mục hành (dấu “.”) Thông số -d vị trí thư mục output kết thư mục hành Lưu ý: Quá trình Pre-verify bắt buộc, không thực công đoạn thiết bị di động từ chối thực thi ứng dụng c Thực thi ứng dụng MIDlet: Ta thực thi câu lệnh: Midp –classpath Welcome Thông số class path thư mục chứa file cần thực thi, thư mục hành, tên ứng dụng Welcome (file Welcome.class pre-verify) Trên trình để biên dịch thực thi ứng dụng J2ME, để sử dụng tính cao (tạo MIDlet Suite chứa nhiều MIDlet, tạo file Jad, file Jar) Để tiết kiệm thời gian, thường dùng công cụ tiện ích Sun Wireless Toolkit Những cài đặt bên giành cho việc sử dụng ngôn ngữ java để lập trình thiết bị di động ta dùng eclipse, Jcreater, NetBean, hay Site Pad Pro … để lập trình Jbuilder thì: Jbuilder hỗ trợ hết cho công việc trên, tức ta cài đặt chương trình Jbuilder xem ta có sẵn JDK Wireless toolkit Việc build ứng dụng tương đối đơn giản II 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 thiết bị di động Trong hầu hết điện thoại di động, có ba cách để download ứng dụng: Kết nối cáp liệu từ PC sang cổng liệu điện thoại di động: Việc yêu cầu người dùng phải có tập tin JAR thật phần mềm truyền thông để download ứng dụng sang thiết bị thông qua cáp liệu Cổng hồng ngoại IR (Infra Red) Port: Việc yêu cầu người dùng phải có tập tin JAR thật phần mềm truyền thông để download ứng dụng sang thiết bị thông qua 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 URL đến tập tin JAR Trang 154 [...]... phát triển ứng dụng Nếu tiến trình tiền kiểm tra 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: 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 gian thự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ộ... java. io.DataOutput (interface) java. io.DataInputStream java. io.DataOutputStream java. io.Reader java. io.Writer java. io.InputStreamReader java. io.OutputStreamWriter java. io.PrintStream Lớp tập hợp java. util.Vector java. util.Stack java. util.Hashtable java. util.Enumeration (interface) Lớp kiểu dữ liệu java. lang.Boolean java. lang.Byte java. lang.Short java. lang.Integer java. lang.Long ... Lớp hệ thống java. lang.Object java. lang.Class java. lang.Runtime Trang 17 Luận văn tốt nghiệp java. lang.System java. lang.Thread java. lang.Runnable java. lang.String java. lang.StringBuffer java. lang.Throwable Lớp nhập xuất java. io.InputStream java. io.OutputStream java. io.ByteArrayInputStream java. io.ByteArrayOutputStream java. io.DataInput (interface) java. io.DataOutput... nghiệp java. lang.Character Lớp ngày giờ java. util.Calendar java. util.Date java. util.TimeZone Lớp tiện ích java. util.Random java. lang.Math Lớp ngoại lệ java. lang.Exception java. lang.ClassNotFoundException java. lang.IllegalAccessException java. lang.InstantiationException java. lang.InterruptedException java. lang.RuntimeException java. lang.ArithmeticException java. lang.ArrayStoreException... 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ải xâ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ình xây dựng ứng dụng MIDlet hoàn chỉnh và vai trò của KVM Trang 13 Luận văn tốt nghiệp Hình 5: Tiến trình xây dựng một MIDlet Trạm phát triển Tập tin JAR Tập tin nguồn java * .java Tập tin nguồn java * .java Tập... tin lớp java *.class Bộ biên dịch và bộ tiền kiểm tra java Tập tin lớp java *.class Thiết bị đích Bộ biên dịch mã bytecode KVM Xây dựng ứng dụng trên IDE (Intergrated Development Environment - Môi trường phát triển tích hợp) Đây là những công việc của lập trình viên trên: Tạo các tập tin nguồn Java: 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) (vấn... javax.microedition.lcdui.ChoiceGroup javax.microedition.lcdui.Command javax.microedition.lcdui.DateField javax.microedition.lcdui.Display javax.microedition.lcdui.Displayable javax.microedition.lcdui.Font javax.microedition.lcdui.Form javax.microedition.lcdui.Gauge javax.microedition.lcdui.Graphics javax.microedition.lcdui.Image javax.microedition.lcdui.ImageItem javax.microedition.lcdui.Item javax.microedition.lcdui.List... Active và trình quản lý ứng dụng sẽ gọi hàm startApp() Trong khi MIDlet đang Active thì trình quản lý ứng dụng có thể trì hoãn bất kì chương trình nào đang thực thi bằng cách gọi hàm pauseApp() Chính điều này đã đặt MIDlet vào trạng thái Paused Một MIDlet có thể đặt chính nó vào trạng thái Paused bằng lời gọi notifyPaused() Trong khi MIDlet đang ở trạng thái dừng, thì trình quản lý ứng dụng có thể... javax.microedition.lcdui.List javax.microedition.lcdui.Screen javax.microedition.lcdui.StringItem javax.microedition.lcdui.TextBox javax.microedition.lcdui.TextField javax.microedition.lcdui.Ticker Danh sách các lớp ứng dụng javax.microedition.midlet.MIDlet javax.microedition.midlet.MIDletStateChangeException Danh sách các lớp về việc quản lý record javax.microedition.rms.RecordComparator (interface) javax.microedition.rms.RecordFilter... phương thức này được gọi để báo cho quản lý ứng dụng biết abstract void notifyPaused() Phương thức này được gọi để nói cho quản lý ứng dụng rằng người chơi muốn dừng MIDlet abstract void resumeRequest() Gọi phương thức này để nói cho quản lý ứng dụng biết rằng MIDlet muốn khởi động lại 3.3.2.3 Xây dựng một ứng dụng MIDlet: Chúng ta xây dựng một ứng dụng MIDlet bằng cách kế thừa (extends) lớp MIDlet Lớp ... di động Bộ quản lý ứng dụng điều khiển trạng thái ứng dụng thời gian thực thi tạm dừng ứng dụng có gọi tin nhắn đến Người dùng thực thi ứng dụng, quản lý ứng dụng chuyển ứng dụng cho KVM để chạy... việc lập trình viên trên: Tạo tập tin nguồn Java: Bước lập trình viên phải tạo mã nguồn Java, có nhiều tập tin (* .java) (vấn đề trình bày chương 6) Biên dịch IDE: Bộ biên dịch Java (Java. .. trạm phát triển ứng dụng Nếu tiến trình tiền kiểm tra thất bại ứng dụng không download thiết bị di động Bộ quản lý ứng dụng: Bộ quản lý ứng dụng thiết bị di động lưu trữ chương trình thiết bị