Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
361,83 KB
Nội dung
CHƯƠNG I: GIỚI THIỆU TỔNG QUAN Lý chọn đề tài Cơng nghệ thơng tin ngày có vai trò quan trọng sống hàng ngày Hiện có nhiều cơng nghệ phát triển song song với việc phát triển công nghệ thông tin Bluetooth, Wireless, WAP, SOAP,… nhằm giúp công nghệ thông tin ngày thân thiết với người dùng Một cơng nghệ góp phần khơng nhỏ việc kết nối người với thông tin người với người công nghệ di động.Với tốc độ phát triển lợi ích to lớn cơng nghệ di động, thấy có ảnh hưởng lớn đến sống người Không giống trước điện thoại có chức đơn giản đàm thoại, điện thoại cịn có thêm nhiều chức năng, ứng dụng khác như: email, truy cập Internet, video, nghe nhạc, chơi game, … đồng thời với phát triển vũ bão dịch vụ gia tăng điện thoại di động dựa công nghệ WAP SOAP Em chọn đề tài “Lập trình thiết bị di động J2ME” viết số ứng dụng đơn giản nhằm khai thác tính thiết bị di động mà chủ yếu điện thoại di động Qua em cố gắng nắm bắt ứng dụng tốt kỹ thuật lập trình thiết bị di động Mục tiêu Khi thực đề tài này, mục tiêu mà em mong muốn đạt là: Hiểu chi tiết J2ME ứ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 Ứ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, Sony, Samsung,… 3 Đối tượng nghiên cứu Hiểu chi tiết J2ME ứng dụng để lập trình thiết bị di động Nắm kỹ thuật xử lý âm thanh, hình ảnh, lưu trữ liệu thiết bị di động Ứng dụng kết có để xây dựng ứng dụng thực tiễn thiết bị di động Tìm hiểu cơng nghệ nâng cao điện thoại di động Bluetooth, WAP, SOAP Tìm hiểu nguyên lý hoạt động dịch vụ gia tăng điện thoại di động Nếu cịn thời gian, tìm hiểu ý tưởng lập trình phân tán thiết bị di động Đây ý tưởng chưa áp dụng cho thiết bị di động Phạm vi nghiên cứu Nghiên cứu chi tiết công nghệ J2ME kỹ thuật lập trình điên thoại di động Ứng dụng kết nghiên cứu để xây dựng ứng dụng triển khai điện thoại di động Vì thời gian có hạn khả tìm hiểu cịn nhiều hạn chế nên em trình bày kỹ thuật lập trình số dịng điện thoại phổ biển hãng lớn Nokia, Samsung, Sony Ericssion Em cố gắng khai thác mạnh form, âm thanh, hình ảnh mà nhà sản xuất cung cấp điện thoại di động họ Do khơng có đủ thiết bị để nghiên cứu nên em trình bày kỹ thuật lập trình điện thoại di động thiết bị di động khác nói chung Do đề tài này, cụm từ “thiết bị di động” hiểu theo nghĩa “điện thoại di động” Môi trường thực Hệ điều hành Windows XP IDE: NetBeans 5.5, NetBeans Mobility Pack 5.5.1 ( kèm WTK 2.5) JDK 1.6.02 Sun Wireless Toolkit 2.2 Giới thiệu Java công nghệ J2ME Giới thiệu Java Java công nghệ hãng Sun Microsystems xây dựng từ cuối năm 1990 với tên Oak phát triển vượt bậc với đóng góp hàng vạn lập trình viên giới Ban đầu, Oak kỹ sư James Gosling cộng xây dựng với mục đích lập trình cho mặt hàng điện dân dụng với mục tiêu nhỏ gọn tương thích với nhiều loại thiết bị phần cứng khác Sau Oak sử dụng nhiều dự án dự án Xanh (Blue Project), dự án Phim theo yêu cầu (Video on demand Project) Sau chuyến du lịch tới đảo Java Indonesia, nhóm phát triển Oak đổi tên Oak thành Java Java mà tiền thân Oak 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, trình đóng gói, tài liệu,… Đây tằng cho việc phát triển ứng dụng Java Hiện nay, cộng đồng Java giới mà đầu hãng Sun Microsystems 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),… Hiện Java có phiên sau: J2SETM (Java Platform, Standart Edition): Phiên chuẩn gồm công cụ thông dụng dùng để chạy máy PC mạng máy tính nhỏ J2EETM (Java Platform, Enterprise Edition): Phiên dành cho máy chủ với nhớ lớn Bao gồm kiến trúc nâng cao Web, EJB, Transaction,… dùng để xây dựng ứng dụng có quy mơ lớn J2METM (Java Platform, Micro Edition): Bao gồm môi trường thư viện Java dùng để phát triển ứng dụng thiết bị có nhớ nhỏ điện thoại di động, PDA, đồ gia dụng,… Giới thiệu J2ME lập trình cho thiết bị di động J2ME phát triển từ kiến trúc JavaCard, EmbededJava PersonalJava phiên Java 1.1 Đến dự đời phiên Java Sun định thay PersonalJava phiên có tên Java Micro Edition, viết tắt J2ME J2ME sử dụng cho thiết bị nhỏ gọn với dung lượng nhớ bé khả xử lý thấp Mục tiêu Java 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 Để làm thế, J2ME xây dựng tầng khác để che giấu việc tương tác trực tiếp với phần cứng thiết bị Các tầng cảu J2ME xây dựng CLDC (Connected Limited Device Configuration): Tầng tầng Phần cứng thiết bị - tầng vật lý bao gồm phần cứng thiết bị di động Các tầng bên tầng Phần cứng thiết bị tầng trừu tượng, chúng cung câp cho lập trình viên nhiều giao diện lập trình thân thiện dễ dàng mà không cần quan tâm đến phần cứng Nói khác chúng đóng vai trị trung gian giúp cho lập trình viên tương tác với phần cứng mà không cần quan tâm đến chi tiết thực phần cứng thiết bị Tầng Phần cứng thiết bị (Device Hardware Layer): thiết bị di động thật với nhớ tốc độ xử lý cụ thể Các thiết bị di động khác có vi xử lý tập lệnh khác Mục tiêu J2ME cung cấp cho lập trình viên khả giao tiếp giống với tất loại thiết bị di động khác Tầng máy ảo Java (Java Virtual Machine Layer): tầng đóng vai trị thơng ngơn chương trình thiết bị Nó thơng dịch mã bytecode (mã có sau biên dịch mã nguồn chương trình) thành mã máy thiết bị di động Tầng bao gồm KVM (K Virtual Machine) biên dịch mã bytecode thành mã máy Nó cung cấp chuẩn hóa cho thiết bị di động để ứng dụng J2ME sau biên dịch chạy thiết bị di động hỗ trợ KVM Tầng cấu hình (Configuration Layer): Tầng cung cấp hàm API nhân J2ME Lập trình viên sử dụng lớp phương thức API nhiên khơng thực phong phú tập API tầng trạng Tầng trạng (Profile Layer): Tầng cung cấp hàm API hữu dụng cho việc lập trình Mục đích tầng xây dựng nên lớp cấu hình cung cấp nhiều thư viện ứng dụng 6.1 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 … 6.2 Kiến trúc J2ME Phần trình bày kiến trúc tổng quát tảng Java a) 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ịđược 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 qn 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-Cấ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 đư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, bạ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 khơng có phần cứng u cầu phép tính tố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 Bảng so sánh thông số kỹ thuật CDC CLDC CLDC CDC Ram >=32K, =256K Rom >=128k, =512k Nguồn Năng Có GiớI Hạn (nguồn Khơng Lượng pin) hạn Network Chậm giới Nhanh b) Đị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 khơng thể lấy ứng dụng viết J2SE hay J2EE chạy máy hỗtrợ J2ME Sau profile tiêu biểu: 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 bộ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 Ngoài cịn có Personal Basis Profile, Personal Profile, RMI Profile, Game Profile 10 6.3 Phát triển ứng dụng Biên dịch Mã nguồn chương trình biên dịch trình biên dịch chuẩn cảu Java, chúng tạo file class Ta biên dịch từ trình soạn thảo biên dịch trực tiếp từ dòng lệnh 6.4 Kiểm tra lỗi chạy thử Chúng ta sử dụng công cụ WTK để kiểm tra lỗi chạy thử chương trình việc tiến hành thiết bị thật thời gian Việc sử dụng giả lập giúp nhanh chóng phát lỗi Ngồi cịn giúp lập trình viên có nhìn cảm quan chương trình 11 6.5 Đóng gói Sau kiểm lỗi chạy thử chương trình, tiến hành đóng gói ứng dụng để cài đặt thiết bị thật Việc đóng gói ứng dụng thực chất nén file class vào file jar, điều giúp giảm kích thước ứng dụng đơn giản hóa cài đặt thiết bị thật Chúng ta đóng gói ứng dụng trình đóng gói JDK trình đóng gói nằm IDE Hoặc cách thủ cơng, đóng gói ứng dụng cách trực tiếp Việc đóng gói trực tiếp thực chất tiến hành lại cơng việc trình đóng gói kiểm sốt lỗi tốt Tuy việc phức tạp dễ gây lỗi lập trình viên chưa thục 6.6 Đóng gói triển khai ứng dụng thành tập tin JAR Các lớp biên dịch ứng dụng J2ME đóng gói tập tin JAR với tài nguyên khác hành ảnh, âm thanh,… Tập tin JAR tập tin cài vào thiết bị di động Người sử dụng tải tập tin JAR vào máy di động cách sau: Kết nối điện thoại di động với máy tính cáp truyền liệu: 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 để tải ứng dụng vào điện thoại thông qua cáp liệu Cổng hồng ngoại: Yêu cầu thiết bị di động nguồn chưa file JAR phải hỗ trợ hồng ngoại người dùng có file JAR thật Sử dụng mạng không dây: tải ứng dụng thông qua mạng GPRS, người dùng cần biết địa URL tập tin JAR 6.7 Tập tin manifest.mf tập tin JAD Tập tin manifest.mf tập tin JAD mô tả đặc điểm ứng dụng Tập tin manifest.mf nằm bên tập tin JAR tập tin JAD nằm tập tin JAR Tập tin JAD giúp cho người dùng biết đặc điểm ứng dụng trước 12 tải Việc giúp làm giảm lãng phí tài ngun tiền bạc thực tế, ứng dụng J2ME chạy số máy định Tập tin manifest.mf có nội dung sau: Manifest-Version: //Phiên tập tin manifest.mf MIDlet-Name: //Tên MIDlet MIDlet-Version: //Phiên MIDlet MIDlet-Vendor: //Nhà sản xuất MIDlet-: //Tên MIDlet MicroEdition-Profile: //Phiên trạng MicroEdition-Configuration: //Phiên cấu hình 6.8 Tối ưu mã chương trình giảm kích thước ứng dụng Sau đóng gói chương trình thành tập tin JAR thấy file liệu nén lại cách đáng kể Tuy nhiên ta giảm kích thước file JAR thêm lần cách dùng công cụ Công cụ thường bao gồm đặc tính sau: - Loại bỏ class không dùng đến - Loại bỏ hàm biến không dùng đến - Đổi tên class, package, hàm biến thành tên đơn giản ngắn gọn - Thêm vào file class số mã để chương trình khó bị dịch ngược Ba đặc tính đầu dùng để giảm kích thước file class đặc tính thứ thứ dùng để bảo vệ chương trình khó bị dịch ngược lại thành mã nguồn Ngay bị dịch ngược lại thành mã nguồn chương trình khó bị đọc tên lớp, biến , hàm, package bị thay đổi Các công cụ thường dùng để tối ưu mã chương trình Jbuilder 9X, Retroguard, Jshrink 13 6.9 Những khó khăn lập trình thiết bị di động Sử dụng cơng nghệ J2ME cho việc lập trình thiết bị di động việc khơng khó lập trình viên Tuy lập trình J2ME, lập trình viên gặp phải số khó khăn đạc trưng khơng thể tránh khỏi: - Khơng hỗ trợ phép tính dấu phẩy động (floating point): - Không hỗ trợ nạp class (Class loader) - Khơng hỗ trợ từ khóa finalize() - 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: Đây làm bạn ngạc nhiên thực tế thiết bị J2ME khơng có hỗ trợ thiết bị lưu trữ thông thường ổ cứng v.v Tuy nhiên, điều khơng có nghĩa bạn phải liệu quan trọng tắt máy, Sun cung cấp chức khác tương đương gọi Record Management system (RMS) để cung cấp khả lưu trữ cho thiết bị - Các thiết bị di động bị giới hạn kích thước ứng dụng Ví dụ với Series 40 Nokia, Samsung X100, V200,… có dung lượng lưu trữ hạn chế Sau kích thước tối đa file JAR cài đặt số dòng điện thoại: Loại điện thoại Kích thước tối đa file JAR Nokia series 40 64 KB Motorola T720 64KB Panasonic X60 80KB Sony Ericssion T610, 128KB T630 Samsung X600 100KB 14 Đó số khó khăn mà lập trình viên thường gặp phải lập trình cho điện thoại di động Trong giới hạn đề tài này, em không cụ thể vào việc giải khó khăn mà chủ yếu vào việc khác phục thông qua số kỹ thuật tìm hiểu phần khác 15 ... có đủ thiết bị để nghiên cứu nên em trình bày kỹ thuật lập trình điện thoại di động thiết bị di động khác nói chung Do đề tài này, cụm từ ? ?thiết bị di động? ?? hiểu theo nghĩa “điện thoại di động? ??... tiết J2ME ứng dụng để lập trình thiết bị di động Nắm kỹ thuật xử lý âm thanh, hình ảnh, lưu trữ liệu thiết bị di động Ứng dụng kết có để xây dựng ứng dụng thực tiễn thiết bị di động Tìm hiểu cơng... Micro Edition, viết tắt J2ME J2ME sử dụng cho thiết bị nhỏ gọn với dung lượng nhớ bé khả xử lý thấp Mục tiêu Java 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