Xem mẫu

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI ứu công nghệ J2ME và thử nghiệm lHỌC CÔNG ụng trên thiết bị di động TRƯỜNG ĐẠI ập trình ứng d NGHỆ Đặng Đình Hùng NGHIÊN CỨU CÔNG NGHỆ J2ME VÀ THỬ NGHIỆM LẬP TRÌNH ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đặng Đình Hùng Đặng Đình Hùng NGHIÊN CỨU CÔNG NGHỆ J2ME VÀ THỬ NGHIỆM LẬP TRÌNH ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG NGHIÊN CỨU CÔNG NGHỆ J 2ME VÀ THỬ NGHIỆM LẬP TRÌNH ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin KHOÁ LUẬN hướng dẫn: ThS Đào Ngọc Phong QUY Cán bộ TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH Ngành: Công nghệ thông tin Cán bộ hướng dẫn: ThS Đào Ngọc Phong HÀ NỘI - 2010
  3. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Lời cảm ơn Sau một thời gian tập trung nghiên cứu và thực hiện , em đã hoàn thành xong luận văn của mình. Đây là kết tinh của một quá trình lao động và học tập nghiêm túc dựa trên kiến thức mà em đã thu thập được dưới sự truyền dạy của quý thầy cô . Lời đầu tiên, em xin đư ợc gửi lời cảm ơn sâu s ắc tới ThS. Đào Ngọc Phong và thầy– PGS TS Trịnh Nhật Tiến, những người thầy đã nhiệt tình giúp đỡ em cũng như các bạn được thầy hướng dẫn trong suốt quá trình làm khóa luận. Em xin được cảm ơn các thầy, các cô đã giảng dạy em trong suốt bốn năm qua. Những kiến thức mà các thầy, các cô đã dạy sẽ mãi là hành trang giúp em vững bước trong tương lai. Em cũng xin được cảm ơn tập thể lớp K51CC, một tập thể lớp đoàn kết với những người bạn luôn nhiệt tình giúp đỡ mọi người, những người bạn đã giúp đỡ em trong suốt bốn năm học tập trên giảng đường Đại học. Cuối cùng, em xin được gửi lời cảm ơn sâu sắc tới bố mẹ và gia đình em, những người luôn kịp thời động vi ên, khích lệ em, giúp đỡ em vượt qua những khó khăn trong cuộc sống. Hà Nội, tháng 5 năm 2010 Đặng Đình Hùng
  4. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Tóm tắt nội dung Khóa luận tập trung nghiên cứu công nghệ J2ME trên thiết bị di động với trọng tâm là phục vụ cho việc đáp ứng các dịch vụ trực tuyến trong thực tế cuộc sống. B ên cạnh đó còn có các công nghệ liên quan nhằm trợ giúp các lập trình viên dễ dàng tiếp cận với việc xây dựng các ứng dụng trên thiết bị di dộng một cách linh hoạt v à chuyên nghiệp. Việc xây dựng ứng dụng thử nghiệm được đáp ứng hai khía cạnh, một là xây dựng ứng dụng Web Services để xây dựng và quản trị nội dung, hai là thử nghiệm ứng dụng trên thiết bị di động dành cho người dùng với một chương trình mô phỏng.
  5. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Mục lục Chương 1. Tổng quan về lập trình trên thiết bị di động .................................................... 1 1.1. Thực tế các ứng dụng trên thiết bị di động ______________________________ 1 1.2. Đặc điểm của lập trình ứng dụng trên thiết bị di động _____________________ 1 1.3. Các công nghệ trong lập trình trên thiết bị di động _______________________ 1 Chương 2. Giới thiệu J2ME................................................................................................ 3 2.1. Lịch sử hình thành J2ME ____________________________________________ 3 2.2. Các phiên bản, đặc điểm _____________________________________________ 3 2.2.1. MIDP 1.0 _______________________________________________________ 3 2.2.2 . MIDP 2.0 _______________________________________________________ 4 2.3. Sự khác nhau giữa J2ME và J2SE _____________________________________ 5 2.4. Các đặc điểm khác _________________________________________________ 7 Chương 3. Công nghệ lập trình J2ME trên thi ết bị di động ............................................. 8 3.1. Kiến trúc _________________________________________________________ 8 3.2. Các lớp của J2ME _________________________________________________ 10 3.3. Các tầng của CLDC J2ME __________________________________________ 11 3.4. Tầng máy ảo Java _________________________________________________ 12 3.5. Tầng cấu hình ____________________________________________________ 15 3.6. Tầng hiện trạng ___________________________________________________ 16 3.7. MIDlet _________________________________________________________ 16 3.7.1. Bộ khung MIDlet ________________________________________________ 17 3.7.2. Chu kỳ sống của MIDlet __________________________________________ 18 3.7.3. Tập tin JAR ____________________________________________________ 20 3.7.4. Tập tin kê khai và JAD ___________________________________________ 20 3.7.5. Bộ MIDlet _____________________________________________________ 21 Chương 4. Một số công nghệ trong J2ME ....................................................................... 22 4.1. Đồ họa __________________________________________________________ 23 4.1.1. Đồ họa mức cao _________________________________________________ 23
  6. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động 4.1.1.1. Text Box _____________________________________________________ 23 4.1.1.2. Form ________________________________________________________ 23 4.1.1.3. List _________________________________________________________ 23 4.1.1.4. Alert ________________________________________________________ 23 4.1.1.5. Form và các Form Item__________________________________________ 24 4.1.1.5.1. String Item __________________________________________________ 24 4.1.1.5.2. Image Item __________________________________________________ 24 4.1.1.5.3. Text Field ___________________________________________________ 24 4.1.1.5.4. Date Field ___________________________________________________ 24 4.1.1.5.5. Choice Group ________________________________________________ 24 4.1.1.5.6. Gause ______________________________________________________ 25 4.1.1.5.7 . Ticker ______________________________________________________ 25 4.1.2. Đồ họa mức thấp ________________________________________________ 25 4. 2. Lập trình mạng ___________________________________________________ 26 4.2.1. Khung mạng CLDC tổng quát ______________________________________ 26 4.2.2. Các lớp giao diện kết nối __________________________________________ 28 4.2.3. Kết nối HTTP ___________________________________________________ 30 4.2.3.1. Ví dụ kết nối HTTP GET ________________________________________ 31 4.2.3.2. Ví dụ kết nối HTTP POST _______________________________________ 32 4.2.4. Triệu gọi CGI script ______________________________________________ 33 4.2.5. HTTP Request Header ____________________________________________ 34 4.3. Wireless Messaging API ____________________________________________ 34 Chương 5. Xây dựng ứng dụng thử nghiệm .................................................................... 38 5.1. Giới thiệu ứng dụng _______________________________________________ 38 5.1.1. Mục tiêu _______________________________________________________ 38 5.1.2. Ứng dụng thử nghiệm ____________________________________________ 38 5.2. Các công nghệ sử dụng trong chương trình _____________________________ 38 5.2.1. Lightweight UI Toolkit (LWUIT) ___________________________________ 38 5.2.2. XML __________________________________________________________ 40 5.2.2.1. Phân tách XML ________________________________________________ 41
  7. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động 5.2.2.2. Các bộ phân tích XML cho KVM _________________________________ 42 5.2.2.2.1. kXML ______________________________________________________ 43 5.2.2.2.2. Tiny XML __________________________________________________ 43 5.2.2.2.3. Nano XML __________________________________________________ 43 5.2.2.3. Làm việc với kXML ____________________________________________ 44 5.2.2.4. Gói org.kxml __________________________________________________ 44 5.2.2.5. Gói org.kxml.io ________________________________________________ 45 Chương 6. Tổng quan về chương trình ứng dụng thử nghiệm ...................................... 46 6.1. Web Services ____________________________________________________ 46 6.1.1. Giới thiệu khung xử lý hệ thống ____________________________________ 46 6.1.2. Xây dựng cơ sở dữ liệu cho hệ thống ________________________________ 48 6.1.3. Quá trình hoạt động của hệ thống ___________________________________ 49 6.1.3.1. Phần quản trị nội dung __________________________________________ 49 6.1.3.1.1. Khu vực người quản trị đăng nhập vào hệ thống ____________________ 49 6.1.3.1.2. Khu vực chung _______________________________________________ 50 6.1.3.1.3. Khu vực thao tác với các danh mục tin ____________________________ 50 6.1.3.1.4. Khu vực quản lý nội dung ______________________________________ 51 6.1.3.2. Phần dành cho người quản trị _____________________________________ 51 6.1.3.2.1. Phần menu bên trái ___________________________________________ 51 6.1.3.2.2. Phần quản lý nhóm người dùng __________________________________ 52 6.1.3.2.3. Phần quản lý nhóm thực đ ơn ____________________________________ 52 6.1.3.2.4. Phần quản lý các nhóm Component ______________________________ 53 6.1.3.2.5. Phần quản lý ngôn ngữ hiển thị _________________________________ 53 6.1.3.3. Phần xuất bản nội dung định dạng XML ____________________________ 54 6.1.3.3.1. Xuất bản nội dung các danh mục tin ______________________________ 54 6.1.3.3.2. Xuất bản các bản tin trong cùng danh mục _________________________ 54 6.2. Trên thiết bị di động _______________________________________________ 55 6.2.1. Quy trình hoạt động ______________________________________________ 55 6.3. Các module chính trong ứng dụng ____________________________________ 57 6.3.1. Web Services ___________________________________________________ 57
  8. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động 6.3.2. Trên thiết bị di động______________________________________________ 61 6.4. Mã nguồn tham khảo ______________________________________________ 65 6.4.1. kxml2 _________________________________________________________ 65 6.4.2. Convert UTF-8 __________________________________________________ 65 6.4.3. LWUIT ________________________________________________________ 65 Chương 7. Cài đặt ứng dụng thử nghiệm ....................................................................... 66 7.1. Web Services ____________________________________________________ 66 7.1.1. Cài đặt phần giả lập máy chủ Web trên máy tính cá nhân ________________ 66 7.1.2. Cấu hình gói ứng dụng Web Services ________________________________ 66 7.2. Trên thiết bị di động _______________________________________________ 67 7.2.1. Cài đặt phần mềm mô phỏng _______________________________________ 67 7.2.2 . Cấu hình ứng dụng thử nghiệm _____________________________________ 67 Kết luận:…………………………………………………………………………………... . Tài liệu tham khảo:………………………………………………………………………...
  9. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Danh mục hình vẽ và bảng biểu Hình 1: L ịch sử J2ME ............................................................................................... ....3 Hình 2: Sơ đồ kiểm tra của bộ tiền kiểm tra và bộ kiểm tra..........................................5 Hình 3: Mô hình Sandbox……………………………………………………….…….6 Hình 4: J2ME và J2SE………………………………………………………………...7 Hình 5: Kiến trúc J2ME……………………………………………………………….8 Hình 6: Phân khúc dòng thiết bị với các ngôn ngữ Java ……………………………... .9 Hình 7: Các l ớp của J2ME ……………………………………………………………. 11 Hình 8: Ti ến trình xây dựng MIDlet …………………………………………………. .13 Hình 9: MIDlet………………………………………………………………………..16 Hình 10: Bộ khung yêu cầu tối thiểu cho một ứng dụng MIDlet……………………...17 Hình 11: Chu kỳ sống của MIDlet………………………………………………… ….18 Hình 12: Hai b ộ MIDlet ……………………………………………………………… .21 Hình 13. Phân cấp lớp đồ họa ………………………………………………………… .25 Hình 14. Khung mạng CLDC tổng quát ………………………………………………. 26 Hình 15. Các lớp kết nối ………………………………………………………………. 27 Hình 16. Các trạng thái kết nối HTTP ………………………………………………… 29 Hình 17: Các phân tầng lớp trong LWUIT……………………………………………. 38 Hình 18 : Ứng dụng thử nghiệm với LWUIT…………………………………………. 39 Hình 19 : Quá trình xử lý trên web services…………………………………………… 45 Hình 20 : Biểu đồ thực thể liên kết của hệ thống………………………………………48 Hình 21: Người quản trị đăng nhập v ào hệ thống……………………………………. ..49 Hình 22: Khu vực mặc định của hệ thống……………………………………………... 49 Hình 23: Khu vực hiển thị danh mục của hệ thống……………………………………. 50 Hình 24: Khu vực hiển thị nội dung bản tin……………………………………………50
  10. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Hình 25: Phần tùy chọn bên trái của hệ thống…………………………………………. 51 Hình 26: Phần quản lý nhóm người dùng……………………………………………… 51 Hình 27: Phần quản lý nhóm thực đ ơn………………………………………………… 52 Hình 28: Ph ần quản lý Component ……………………………………………………. 52 Hình 29: Khu vực quản lý ngôn ngữ hiển thị trong hệ thống…………………………. 53 Hình 30: Kết quả thu được với trình duyệt Mozilla Firefox 3.5…………………….…53 Hình 31: Kết quả thu được với trình duyệt Mozilla Firefox 3.5…………………………54 Hình 32: Màn hình kh ởi động của ứng dụng …………………………………………….. 55 Hình 33: Màn hình tùy chọn ứng dụng……………………………………………… ...…57 Hình 34:Yêu cầu cho phép kết nối tới dịch vụ……………………………………… ...…57 Hình 35: Các quá trình khi xem tin t ức với ứng dụng …………………………………… 58 Hình 36: Tạo cơ sở dữ liệu trong phpmyadmin ………………………………… ……..…66 Hình 37: Quá trình nhập cơ sở dữ liệu………………………………………………… ...66 Hình 38: Bước đầu tạo Project mới……………………………………………………… 67 Hình 39: Cấu hình ban đầu…………………………………………………… .…………68 Hình 40: Cấu hình chi tiết………………………………………………… ...……………68
  11. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Thuật ngữ viết tắt Application Program Interface API American Standard Code for Information Interchange ASCII Abstract Window ToolKit AWT Cell Broadcast Short Message Service CBS Connected Device Configuration CDC Code Division Multiple Access CDMA Common Gateway Interface CGI Connected Limited Device Configuration CLDC Central Processing Unit CPU Document Object Model DOM Document Type Definition DTD Enhanced Data GSM Environment EDGE General Packet Radio Service GPRS Global Positioning System GPS Global System for Mobile Communications GSM Graphical User Interface GUI Hyper-Text Markup Language HTML Hyper-Text Transfer Protocol HTTP Integrated Development Environment IDE Internet Protocol IP Infra Red IR Java 2 Platform, Enterprise Edition J2EE Java 2 Platform, Micro Edition J2ME Java 2 Platform, Standard Edition J2SE Java Application Descriptor JAD Java Application Archive JAR Java Community Process JCP JavaNative Interface Support JNI
  12. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Java Specification Request JSR K Virtual Machine KVM MIDP applet MIDlet Mobile Information Device Profile MIDP Model-View-Controller MVC Over The Air OTA Personal Computer PC Personal Digital Assistant PDA PHP Hypertext Preprocessor PHP Remote Method Invocation RMI Record Management System RMS Simple API for XML SAX Short Message Service SMS User Datagram Protocol UDP Uniform Resource Locator URL Wireless Application Protocol WAP Wap Binary XML WBXML Wireless Messaging API WMA eXensible Markup Language XML
  13. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Chương 1. Tổng quan về lập trình trên thiết bị di động 1.1 . Thực tế các ứng dụng trên thiết bị di động Mạng điện thoại di động đã xuất hiện tại Việt Nam từ đầu những năm 1990 và theo thời gian, số lượng các thuê bao cũng như các nhà cung cấp dịch vụ di động tại Việt Nam ngày càng tăng. Cùng với sự phát triển của số lượng thuê bao di động là sự đa dạng hóa các dịch vụ hướng đến thiết bị di động. Trong những nă m gần đây, điện thoại di động không chỉ mang chức năng nghe gọi hay nhắn tin thông th ường mà còn là một thiết bị giải trí, tra cứu thông tin hay trợ giúp cá nhân đắc lực. Do vậy, xây dựng các ứng dụng cho điện thoại di động đang là một yêu cầu tất yếu trong xu thế hiện nay. Năm 2009, các nhà mạng lớn đã bắt tay vào việc triển khai mạng 3G tại Việt Nam, năm 2010 trở đi đ ược đánh giá là những năm nở rộ các dịch vụ tiện ích trên thiết bị di động đặc biệt là các ứng dụng trực tuyến trên nền thiết bị di động. Trong tương lai, với sự phát triển mạnh mẽ của các thiết bị di động về phần cứng cũng như chất lượng mạng di động, ngành công nghiệp phần mềm trên thiết bị di động sẽ gặt hái được nhiều thành quả và nó sẽ thu hút lượng lớn các nhân công cũng như hứa hẹn nhiều điều thú vị. 1.2 . Đặc điểm của lập trình ứng dụng trên thiết bị di động Đặc trưng thiết bị di động hỗ trợ tài nguyên phần cứng không cao, với đặc điểm là bộ nhớ hạn chế, khả năng xử lý chậm, các thiết bị mở rộng còn hạn chế, vì vậy lập trình ứng dụng trên thiết bị di động đòi hỏi các lập trình viên quản lý tốt bộ nhớ, độ lớn của mã nguồn, cũng như các thư viện hay cơ chế làm việc với các file media. Do thiết bị di động được phát triển bởi nhiều hãng nên cấu trúc phần cứng đa dạng và khó có chuẩn chung nên yêu cầu các ngôn ngữ lập trình độc lập với phần cứng và linh hoạt là rất cao. 1.3 . Các công nghệ trong lập trình trên thiết bị di động Hai hướng phát triển ứng dụng trên điện thoại di động phổ biến hiện nay l à sử dụng ngôn ngữ C++ trên nền hệ điều hành Symbian và J2ME. Kho ảng mấy năm trở lại đây, nền tảng di động mở Android của Google và iPhone OS của Apple cũng đang có tín hiệu phát triển rất khả quan. 1
  14. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Các ứng dụng viết trên nền Symbian có các ưu thế truy cập trực tiếp các tài nguyên của điện thoại cũng như hỗ trợ hệ thống tập tin, thư mục… như máy tính cá nhân vì được hỗ trợ trực tiếp bởi hệ điều hành. Tuy nhiên hệ điều hành Symbyan lại có kích thước khá lớn nên chỉ có ở các thế hệ điện thoại tương đối cao cấp, và xây dựng ứng dụng dùng Symbian API cũng phức tạp hơn. Đối trọng với Symbian API là công nghệ J2ME với kích thước nhỏ gọn, tiện dụng, được hỗ trợ bởi hầu hết các thế hệ điện thoại mới ra đời, kể cả các điện thoại có hệ điều hành Symbian. J2ME không những là một ngôn ngữ hướng đến các thiết bị di động mà còn là ngôn ngữ chính để lập trình trên các thiết bị gia dụng, thẻ tín dụng điện tử v à các thiết bị thông minh khác. Chúng ta có thể nói đối t ượng của ngôn ngữ J2ME là rộng hơn rất nhiều so với C++ trên nền Symbyan. Tại thời điểm hiện tại, ngôn ngữ J2ME không hỗ trợ được nhiều tính năng nh ư trên C++ trên n ền Symbian nhưng lại có những ưu điểm trội hơn. J2ME là một ngôn ngữ nhỏ, gọn nhưng rất chặt chẽ và dễ nắm bắt, với những 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 rất dễ dàng. J2ME còn là ngôn ngữ được các tổ chức mã nguồn mở ủng hộ mạnh mẽ và phát triển rất nhanh chóng. Năm 2007, liên minh Google, OHA ra mắt nền tảng Android, nó được giới thiệu là một nền tảng mở với sự kết hợp của ngôn ngữ Java v à hệ điều hành Linux 2.6. Trong Android, nét đặc trưng nổi bật là tính tương thích lẫn nhau, khả năng hỗ trợ thiết bị, cũng như ngôn ngữ Java SE cộng với việc tích hợp sử dụng cơ sở dữ liệu ngay trong thiết bị. Một đối thủ rất đáng gờm trong thị phần của điện thoại thông minh đó là iPhone của Apple, các ứng dụng của iPhone đ ược viết bằng ngôn ngữ Objective C hoạt động tr ên nền iPhone OS. Đặc điểm chính của Objective C l à ngôn ngữ hướng đối tượng nhưng được hỗ trợ nhiều bởi các API nên việc xử lý đa phương tiện nổi trội, điều này cũng tạo nên thương hiệu đình đám của Apple. 2
  15. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Chương 2. Giới thiệu J2ME 2.1. Lịch sử hình thành J2ME J2ME đượ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 là Java 2 Micro Edition, hay vi ết tắt là J2ME. J2ME là n ền tảng cho các thiết bị có tính chất nhỏ gọn: Hình 1: Lịch sử J2ME. 2.2. Các phiên bản, đặc điểm Có hai phiên bản MIDP chính trong ngôn ngữ J2ME: 2.2.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ỹ (dẫ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, 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. 3
  16. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động  Hỗ trợ Form và các giao diện người dùng.  Hỗ trợ Timer và Alert.  Cung cấp tính năng Record Management System (RMS) cho việc l ưu trữ dữ liệu. 2.2.2 . MIDP 2.0 Phiên bản MIDP 2.0 được Sun hỗ trợ đầy đủ, cộng với các API 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 Form. Nhiều cải tiến đã được đưa vào API javax.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: Có lẽ Sun đã kịp nhận ra thị trường đầy tiềm năng của các thiết bị di động trong lĩnh vực Game. Với MIDP 1.0 thì các 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 sẽ 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 các 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à tập hợp các layer (lớp). Với Game API nhà phát triển còn được cung cấp các tính năng như quản lý các thao tác bàn phím. 4
  17. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động  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. 2.3. Sự khác nhau giữa J2ME và J2SE  Các điểm khác nhau là do một trong hai lý do. Do lớp Java đã bị bỏ đi để giảm kích thước của J2ME hoặc do lớp bị bỏ bởi v ì nó ảnh hưởng đến sự an toàn, bảo mật của thiết bị di động hay của các ứng dụng khác trên thiết bị di động (có thể dẫn đến phát triển virus).  Điểm khác biệt chính là không có phép toán số thực. Không có JNI (JavaNative Interface Support) do đó không th ể truy xuất các ch ương trình khác được viết bằng ngôn ngữ của thiết bị (nh ư C hay C++). Luồng (thread) được cho phép nh ưng không có các nhóm luồng (thread group).  CLDC định nghĩa một mô hình an toàn, bảo mật được thiết kế để bảo vệ thiết bị di động, KVM, và các ứng dụng khác khỏi các mã phá hoại. Hai bộ phận được định nghĩa bởi CLDC này là bộ tiền kiểm tra và mô hình sandbox. Hình 2 biểu diễn cách mà bộ tiền kiểm tra và bộ kiểm tra làm việc với nhau để kiểm tra mã chương trình Java trước khi chuyển nó cho KVM. Trạm phát triển Hello.class Bộ tiền kiểm tra Hello.class Download về thiết bị Thiết bị đích Bộ biên dịch mã Bộ kiểm tra bytecode Java Hình 2: Sơ đồ kiểm tra của bộ tiền kiểm tra và bộ kiểm tra. 5
  18. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Bộ tiền kiểm tra Các tập tin lớp được gán nhãn bằng một thuộc tính trên máy trạm. Thuộc tính này sau đó đư ợc bộ tiền kiểm tra kiểm tra trước khi mã chương trình được giao cho KVM hay bộ biên dịch mã bytecode. Một bộ phận khác của bảo mật trong CLDC l à mô hình sandbox. Hình 3 biểu diễn khái niệm mô hình sandbox: Tài nguyên Class API thiết bị Loader Chương trình ứng dụng Các CLDC Java API API Các MIDP Hệ thống API API JVM Hình 3: Mô hình Sandbox. Mô hình Sandbox Ứng dụng J2ME đặt trong một sandbox bị giới hạn truy xuất đến t ài nguyên của thiết bị và không được truy xuất đến Máy ảo Java hay bộ nạp ch ương trình. Ứng dụng được truy xuất đến các API của CLDC và MIDP. Ứng dụng được truy xuất tài nguyên của thiết bị di động chỉ khi nhà sản xuất điện thoại di động cung cấp các API tương ứng. Nhưng các API này không phải là một phần của J2ME. Thế hệ kế tiếp của CLDC là đặc tả JSR - 139 và được gọi là CLDC thế hệ kế tiếp. Nó sẽ nhắm đến các vấn đề như nâng cao việc quản lý lỗi và có thể phép toán số thực. 6
  19. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Hình 4: J2ME và J2SE. 2.4. Các đặc điểm khác Khi viết J2ME, do đặc tính cần nhỏ gọn và bảo mật tốt cho thiết bị di động n ên Sun đã lược bớt các lớp đồ sộ chỉ để lại các lớp c ơ bản, do vậy, về bản chất J2ME l à ngôn ngữ kế thừa và tinh lược của phiên bản J2SE. Bên cạnh đó nhưng MIDP vì được viết cho thiết bị có cấu hình lẫn bộ nhớ thấp nên nó không hỗ trợ:  Phép tính dấu phẩy động (floating point): Phép tính n ày đòi hỏi rất nhiều tài nguyên CPU và ph ần lớn các CPU cho các thiết bị di động không hỗ trợ phép tính này, do đó MIDP cũng không có.  Bộ nạp class (Class Loader).  Hỗ trợ từ khóa finalize() như trong J2SE: Việc “dọn dẹp“ tài nguyên trước khi nó bị xóa được đẩy về phía các lập trình viên.  Hỗ trợ hạn chế thao tác bắt lỗi.  Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được trong MIDP.  Không hỗ trợ các tính năng quản lý file và thư mục: Đây có thể làm bạn ngạc nhiên nhưng thực tế là các thiết bị J2ME không có hỗ trợ các thiết bị lưu trữ thông thường như ổ cứng v.v. Tuy nhi ên, điều đó không có ngh ĩa là bạn phải mất đi mọi dữ liệu quan trọng mỗi khi tắt máy, Sun đã cung cấp một chức năng khác tương đương gọi là Record Management system (RMS) để cung cấp khả năng lưu trữ cho các thiết bị này. 7
  20. ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động Chương 3. Công nghệ lập trình J2ME trên thiết bị di động 3.1. Kiến trúc Hình 5: Kiến trúc J2ME. Configuration: là đặc tả định nghĩa một môi trường phần mềm cho một dòng các thiết bị được phân loại bởi tập hợp các đặc tính, ví dụ nh ư: Kiểu và số lượng bộ nhớ o Kiểu và tốc độ vi xử lý o Kiểu mạng kết nối o Do đây là các đặc tả nên nhà sản xuất thiết bị đầu cuối nh ư Samsung, Nokia…bắt buộc phải thực thi đầy đủ các đặc tả do Sun qui định để các lập tr ình viên có thể dựa vào môi trường lập trình nhất quán và thông qua sự nhất quán này, các ứng dụng được tạo ra có thể mang tính độc lập thiết bị cao nhất có thể. Ví dụ nh ư một lập trình viên viết chương trình game cho điện thoại Samsung thì có thể sửa đổi chương trình một cách tối thiểu nhất để có thể chạy trên điện thoại Nokia… Hiện nay Sun đưa ra hai dạng cấu hình:  CLDC (Connected Limited Device Configuration -Cấu hình thiết bị kết nối giới hạn): được thiết kế để nhằm vào thị trường các thiết bị cấp thấp, các thiết bị n ày 8
nguon tai.lieu . vn