Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,38 MB
Nội dung
MÔN HỌC: THỰC HÀNH LẬP TRÌNH JAVA GIẢNG VIÊN: TRẦN HOÀNG ĐẠT NHÓM THỰC HIỆN: 03 SINH VIÊN: NGUYỄN VĂN QUÂN 1020172 PHAN LÝ TRÚC ANH 1020005 TIÊU MINH NHỰT 1020145 01/2014 ĐẠI HỌC KHOA HỌC TỰ NHIÊN – ĐHQG TPHCM KHOA ĐIỆN TỬ VIỄN THÔNG Page 1 of 25 MỞ ĐẦU 2 CHƢƠNG 1: TÌM HIỂU VỀ J2ME 3 1.1 Kiến trúc J2ME 3 1.1.1 Tầng phần cứng (Device Hardware Layer) 3 1.1.2 Tầng máy ảo (Java Virtual Machine Layer) 3 1.1.3 Tầng cấu hình (Configuration) 5 1.1.4 Tầng hiện trạng (Profile) 5 1.2 MIDP Profile 7 1.3 Xây dựng ứng dụng MIDP – Midlets 8 1.3.1 Sử dụng J2ME Wireless Toolkit (JWT) 8 1.3.2 Đóng gói ứng dụng Midlet 10 1.3.3 Vấn đề bảo mật trong Midlet 12 CHƢƠNG 2: CÔNG NGHỆ BLUETOOTH 13 2.1 Tổng quan về bluetooth 13 2.1.1 Giới thiệu về công nghệ bluetooth 13 2.1.2 So sánh giữa bluetooth và hồng ngoại 13 2.1.3 So sánh giữa bluetooth và 802.11b(wireless LAN) 13 2.2 Kiến trúc của bluetooth 14 2.2.1 Bluetooth protocol stack 14 2.2.2 Lớp (Layer) 14 2.2.3 Các Profile 15 2.3 Các thao tác trên 1 ứng dụng bluetooth 15 CHƢƠNG 3 XÂY DỰNG CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH 16 3.1 Sơ đồ của chương trình 16 3.2 Nhiệm vụ chính của Client và Server 16 3.3 Tập lệnh giao tiếp Client và Server 16 CHƢƠNG 4: CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH 19 4.1 Chức năng 19 4.2 Yêu cầu 19 4.3 Cài đặt 19 4.4 Chạy chương trình 20 KẾT LUẬN 24 TÀI LIỆU THAM KHẢO 25 Page 2 of 25 MỞ ĐẦU Với mục đích hỗ trợ cho việc trình bày báo cáo, thuyết trình trong giảng dạy, học tập, làm việc,… nhóm xin được lập trình ứng dụng RemotePC. Trước đó có vài ứng dụng tương tự đã được phát triển như Thiết bị hỗ trợ bài giảng điện tử của thầy Bùi Đức Tuyên, Phone Remote Control trên website sinhviencuc.com,… Tuy nhiên, đồ án RemotePC được sử dụng ngôn ngữ lập trình Java, kết nối thiết bị với nhau qua Bluetooth, có khả năng sử dụng trên máy tính chạy window, đây là bước đổi mới so với các ứng dụng trên. Để thực hiện đồ án RemotePC, nhóm phải tham khảo nhiều tài liệu cũng như bài giảng môn học Lập trình Java. Với khả năng của nhóm, các chức năng của ứng dụng còn hạn chế, có ưu và khuyết điểm, tuy nhiên có thể phát triển thêm. Sau đây là bản báo cáo đồ án RemotePC sau khi đã hoàn chỉnh ứng dụng. Page 3 of 25 CHƢƠNG 1: TÌM HIỂU VỀ J2ME 1.1 Kiến trúc J2ME 1.1.1 Tầng phần cứng (Device Hardware Layer) Đây chính là thiết bị di động thật sự với cấu hình phần cứng của nó về bộ nhớ và tốc độ xử lý. Thật ra đây không phải là một phần của J2ME nhưng nó là nơi xuất phát. Các thiết bị di động khác nhau có thể có các bộ vi xử lý khác nhau 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ẩn cho tất cả các loại thiết bị di động khác nhau. 1.1.2 Tầng máy ảo (Java Virtual Machine Layer) Máy ảo JVM dành cho J2ME thường gọi là KVM vì dung lượng của nó thường là kilobytes. Khi mã nguồn Java được biên dịch nó được chuyển đổi thành mã bytecode. Mã bytecode này sau đó được chuyển thành mã ngôn ngữ máy của thiết bị di động. Tầng máy ảo Java bao gồm KVM (K Virtual Machine) là bộ biên dịch mã bytecode có nhiệm vụ chuyển mã bytecode của chương trình Java thành ngôn ngữ máy để chạy trên thiết bị di động. Tầng này cung cấp một sự chuẩn hóa cho các thiết bị di động để ứng dụng J2ME sau khi đã biên dịch có thể hoạt động trên bất kỳ thiết bị di động nào có J2ME KVM. Để hiểu rõ vai trò của máy ảo KVM chúng ta sẽ xem chi tiết quá trình phát triển ứng dụng MIDlet với IDE (Môi trường phát triển tích hợp-Intergrated Development Environment): - Lập trình viê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). - Trên IDE: Bộ biên dịch Java (Java Compiler): Biên dịch mã nguồn thành mã bytecode: Bộ biên dịch Java sẽ 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ẽ được lư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. - Trên IDE: Bộ tiền kiểm tra (Preverifier): Kiểm tra tính hợp lệ của mã bytecode Page 4 of 25 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ác lớ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 cho KVM 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. - 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 + 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ười dù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 + Cổng hồng ngoại IR (Infra Red) Port + OTA (Over the Air) - Trên thiết bị 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ệ đã được thê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ể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: 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 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. Page 5 of 25 + 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. 1.1.3 Tầng cấu hình (Configuration) Tầng cấu hình định nghĩa giao diện ngôn ngữ Java (Java language interface) cơ bản để cho phép chương trình Java chạy trên thiết bị di động. Đây là một tập các API định nghĩa lõi của ngôn ngữ J2ME. - Một configuration đươc thiết kế cho một loại thiết bị, nó phụ thuộc vào giới hạn bộ nhớ và khả năng xử lý của loại thiết bị đó đồng thời cũng quy định chính xác các API nào trong J2SE có thể dùng được trên nền tảng này. - Hiện tại có 2 loại Configurations là CDC(Connected Device Configuration) và CLDC(Connected, Limited Device Configuration) + CDC: Thiết kế cho các thiết bị 32bit yêu cầu thiết bị phải có: ít nhất 512kb bộ nhớ ROM (bộ nhớ chỉ đọc) ít nhất 256kb bộ nhớ RAM (bộ nhớ truy cập ngẫu nhiên) CDC được thiết kế cho các thiết bị như set-top box của Tivi, hệ thống điều khiển xe hơi, các thiết bị cầm tay cao cấp PDA,… CDC hỗ trợ tất cả các tính năng của JVM phiên bản 2. + CLDC: Thiết kế cho các thiết bị quen thuộc như điện thoại di động, máy nhắn tin, PDA…(16 bit hoặc 32 bit)có cấu hình nhỏ hơn các thiết bị CDC. CLDC yêu cầu tổng bộ nhớ từ 160kb đến 512kb bao gồm: ít nhất 160kb ROM và ít nhất 32kb RAM 1.1.4 Tầng hiện trạng (Profile) - Profile là lớp phía trên lớp Configuration, cộng thêm các API và các chỉ định cần thiết để phát triển các ứng dụng cho 1 dòng thiết bị. - Các Profile sẽ chỉ định chi tiết hơn các configuration. 1 Profile về cơ bản là Page 6 of 25 configuration và cung cấp thêm các API, chẳng hạn như giao diện người dùng, bộ nhớ lâu dài, và tất cả những gì cần thiết để phát triển được các ứng dụng chạy trên thiết bị. - Có 7 profile như sau: + Foundation Profile: Profile này dành cho các thiết bị CDC có khả năng hỗ trợ kết nối mạng cao, là cơ sở của 2 lớp Profile bên trên là Personal Basis Profile và Personal Profile. Sự kết hợp của CDC + Foundation Profile + Personal Basis Profile + Personal Profile để tạo ra một môi trường phát triển thế hệ tiếp theo cho các thiết bị cao cấp gọi là PersonalJava. + Game Profile: là profile thiết kế cho các các thiết bị CDC, chứa tất cả các lớp cần thiết cho việc phát triển các ứng dụng Game trên các thiết bị thuộc loại này. + PDA Profile: được xây dựng cho cấu hình CLDC với mục đích cho các thiết bị palmtop với ít nhất 512kb ROM và RAM. + Personal Profile: thường dùng cho cấu hình CDC, và Foundation Profile, chứa các lớp cần thiết để thực thi một giao diện người dùng phức tạp. Foundation Profile cung cấp các lớp cơ sở , còn Personal Profile cung cấp các thực thi cụ thể + Personal Basis Profile: Tương tự như Personal Profile thường dùng cho cấu hình CDC, và Foundation Profile. Tuy nhiên, Personal Basis Profile cung cấp các lớp cần thiết để thực thi một giao diện người dùng đơn giản ví dụ như 1 giao diện cho phép mỗi lần hiển thị 1 cửa sổ. + RMI Profile: thường dùng cho cấu hình CDC, và Foundation Profile để cung cấp các lớp Remote Method Invocation. + Mobile Information Device Profile (MIDP): Các chỉ số yêu cầu của profile này: ít nhất 256kb bộ nhớ ROM ít nhất 128kb bộ nhớ RAM ít nhất 8kb cho vùng nhớ lưu dữ liệu lâu dài kích thước tối thiểu màn hình 96×54 pixels Hiện nay rất nhiều thiết bị hỗ trợ MDIP như điện hoại di động, các máy nhắn tin đời mới, các thiết bị cầm tay PDA, so với MDIP 1.0, MDIP2.0 có nhiều cải tiến Page 7 of 25 như hỗ trợ Media, hỗ trợ kết nối https: và quan trọng là hoàn toàn tương thích với MDIP 1.0 1.2 MIDP Profile - Hiện nay rất nhiều thiết bị hỗ trợ MDIP như điện hoại di động, các máy nhắn tin đời mới, các thiết bị cầm tay PDA, so với MDIP 1.0, MDIP2.0 có nhiều cải tiến như hỗ trợ Media, hỗ trợ kết nối https: và quan trọng là hoàn toàn tương thích với MDIP 1.0 - Chuẩn Platform (Platform Standardization) JSR: + Khái niệm Building Blocks ra đời nhằm thay thế cho Configuration và Profile, để chỉ định các API cho từng dòng thiết bị (các API này thuộc tập con của J2SE). 1 Building Blocks cụ thể gọi là 1 JSR. Bắt đầu từ JSR68 được xây dựng từ năm 2000. trong khi đó, JSR185 được mong đợi sẽ là chuẩn nền tốt. + Các API được dùng cho ứng dụng MIDP được quyết định bởi cả CLDC và MIDP. Trong đó CLDC chỉ định các API cốt lõi, hầu hết thuộc J2SE như lớp cơ sở java.lang hay các luồng IO trong java.io. Ví dụ MIDP2.0 và CLDC1.1: Page 8 of 25 1.3 Xây dựng ứng dụng MIDP – Midlets Quá trình xây dựng 1 ứng dụng Midlet bao gồm các bước : Viết mã> Tiền kiểm tra> đóng gói> kiểm tra hoặc triển khai. 1.3.1 Sử dụng J2ME Wireless Toolkit (JWT) - Midlet được phát triển trên máy tính mặc dù khi chạy thực lại trên các thiết bị nhỏ khác. Để phát triển Midlet, có thể dùng các bộ công cụ (KIT) của Sun hoặc từ các công ty khác. Bộ công cụ chủ yếu bao gồm các thành phần sau : + bộ tiền kiểm tra (preverity tool). + Thiết bị giả lập MIDP (Emulator). + Trình soạn mã. + Các tài liệu. - Bộ công cụ khá phổ biến hiện nay được cung cấp miễn phí bởi Sun là Sun‟s J2ME Wireless Toolkit (JWT) tại thời điểm này là JWT2.5. JWT cung cấp công cụ giao diện đồ họa để xây dựng và đóng gói các ứng dụng Midlet. - Sử dụng JWT . + Việc sử dụng JWT phải kèm theo 1 trình soạn code bất kỳ bởi vì JWT không hỗ trợ soạn code. Sau khi soạn xong, các file .java được đặt vào thư mục chứa các project của JWT theo đúng quy tắc (xem ví dụ dưới đây). Quá trình biên dịch mã được thực hiện bởi JWT. Bật JWT Chọn “new project” Điền tên project và tên lớp chứa Midlet Page 9 of 25 Đặt các cấu hình cho ứng dụng (chọn các thông số MIDP và CLDC phù hợp với ứng dụng) ví dụ MIDP 2.0 và CLDC 1.0 Dùng trình soạn bất kỳ soạn file “TestMidlet.java”nội dung như sau package hello; import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class TestMidlet extends MIDlet { public void startApp() { Form form = new Form("Hello, Midlet!"); StringItem str=new StringItem("", " Hello, Midlet!"); form.append(str); Display.getDisplay(this).setCurrent(form); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} } [...]... với mã phím đã đặt từ trƣớc KR+MÃ PHÍM Page 18 of 25 Nhả phím trên máy tính tƣơng ứng với mã phím đã đặt từ trƣớc CHƢƠNG 4: CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH 4.1 Chức năng Chương trình RemotePC được viết bằng ngôn ngữ Java bao gồm 2 phần: 1 phần chạy trên điện thoại và 1 phần chạy trên máy tính, chương trình có các chức năng Điều khiển chương trình PowerPoint: Bao gồm các thao tác trình chiếu, tạm dừng;... (nếu chưa chọn) sẽ có biểu tương bluetooth như hình sau: Page 19 of 25 - Cài Java cho máy tính : để chạy được chương trình trên máy tính cần phải cài môi trường Java (JRE) - Tiếp theo cần tải bản RemotePC phần chạy trên điện thoại về, chép file “.jar” vào thẻ nhớ và cài đặt theo hướng dẫn của máy - Cuối cùng tải bản RemotePC phần chạy trên máy tính để chạy trực tiếp file “.jar” (không cần cài đặt)... dụng là các chuỗi ký bởi các lý do sau: - Quá trình truyền dữ liệu được thực hiện bằng các luồng vào/ra và thao tác dữ liệu Page 16 of 25 đều thông qua dữ liệu kiểu byte trong Java (giá trị từ 0-255) do đó tất cả dữ liệu đều được chuyển đổi thành kiểu byte trước khi trao đồi - So với các lệnh quy định bằng số, các lênh bằng chuỗi trực quan hơn - Cấu trúc của lệnh được đặt sao cho phải: + Phân biệt giữa... ghép với nhau Page 21 of 25 - Bước 2: Trên điện thoại, bật chương trình RemotePC vừa cài, vào Menu > bấm "Connect " , nếu yêu cầu xác nhận cho phép kết nối, chọn đồng ý - Bước 3: Trên máy tính, chạy File “.jar”, (lưu ý nếu file “.jar” trên máy tính mặc định được mở bằng chương trình winrar thì phải sửa thuộc tính “open with” là Java. ) + Trong lần đầu chạy đầu tiên, chương trính sẽ thông báo không tìm... tuyệt đối Page 24 of 25 TÀI LIỆU THAM KHẢO [1] Bài giảng môn học Lập trình Java – Thầy Trần Hoàng Đạt [2] http://j2medraw.blogspot.com [3] http://www.dotnet.vn [4] http://www.pcworld.com.vn [5] http://vovanhai.wordpress.com/ [6] Beginning Java Programming For Dummies - tác giả Barry Burd [7] http://sinhviencuc.com [8] http://congdongjava.com [9] www.google.com.vn HẾT - Page 25 of 25 ... gửi, nhận file: bao gồm các máy tính xách tay có hỗ trợ bluetooth hoặc máy tính để bàn dùng usb bluetooth) - Điện thoại hỗ trợ cài đặt Java với cấu hình: CLDC 1.0, MIDP 2.0 hoặc cao hơn (cấu hình này rất phổ biến đối với các điện thoại hỗ trợ Java hiện nay) - Máy tính cài Java JRE 1.6 trở lên (Chương trình được thực hiện trên máy Nokia1760, đã kiểm tra và chạy tốt trên các máy thuộc dòng BlackBerry hỗ... Lưu thành file “TestMidlet .java và đặt vào thư mục project Test vừa tạo:\\DocumentsandSettings\usename\j2mewtk\2.5.2\apps\Test\ src\hello Bấm nút “Build” nếu báo thành công thì Bấm “run” để chạy thử sẽ được kết quả 1.3.2 Đóng gói ứng dụng Midlet - Các ứng dụng Midlet cũng được đóng gói giống như các ứng dụng J2SE dùng công cụ đóng gói trong Java 2 SDK để nén thành các file “.jar” Với... - Tối ưu mã chương trình và giảm kích thước ứng dụng: Sau khi đóng gói chương trình thành tập tin JAR chúng ta thấy rằng các file dữ liệu đã được nén lại một cách đáng kể Tuy nhiên ta có thể giảm kích thước file JAR này thêm một lần nữa bằng cách dùng một công cụ Công cụ này thường bao gồm các đặc tính sau: + Loại bỏ các class không dùng đến + Loại bỏ các hàm và biến không dùng đến + Đổi tên class,... sản xuất MIDlet-: //Tên của MIDlet chính MicroEdition-Profile: //Phiên bản hiện trạng MicroEdition-Configuration: //Phiên bản cấu hình Các file “.class” chứa mã bytecode được dịch ra từ các file java Các file thư viện kèm theo và các tài nguyên như các file ảnh png + File mô tả Midlet “.jad” :File này thường đi kèm với mỗi ứng dụng Midlet để mô tả các thông tin về ứng dụng thông tin chứa trong... gói ứng dụng Midlet - Các ứng dụng Midlet cũng được đóng gói giống như các ứng dụng J2SE dùng công cụ đóng gói trong Java 2 SDK để nén thành các file “.jar” Với JWT các ứng dụng sẽ được tự động đóng gói bằng cách chọn menu Project>Package >Create Package - Mỗi ứng dụng sẽ gồm 2 file : 1 file “.jar” và 1 file mô tả “.jad” + File “.jar” bao gồm : File kê khai thông tin Midlet (Manifest Information): mỗi . 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) . - Trên IDE: Bộ biên dịch Java (Java Compiler): Biên dịch mã ngu n thành mã. hình (Configuration) Tầng cấu hình định nghĩa giao diện ngôn ngữ Java (Java language interface) cơ bản để cho phép chương trình Java chạy trên thiết bị di động. Đây là một tập các API định nghĩa. khác nhau. 1.1.2 Tầng máy ảo (Java Virtual Machine Layer) Máy ảo JVM dành cho J2ME thường gọi là KVM vì dung lượng của nó thường là kilobytes. Khi mã ngu n Java được biên dịch nó được chuyển