Giáo Trình Lập Trình Mobile
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN TH.S TRỊNH CÔNG DUY (TÀI LIỆU LƯU HÀNH NỘI BỘ) Mobile Programming (Private Version) Trịnh Công Duy 1 MỤC LỤC I. Tổng quan về công nghệ di động 2 I.1. Lịch sử của điện thoại di động 2 I.2. Các chuẩn công nghệ 11 II. Giới thiệu về J2ME 14 II.1. Lịch sử 14 II.2. Lý do chọn J2ME 14 II.3. Kiến trúc của J2ME 14 II.4. Giới thiệu MIDP 17 II.5. Môi trường phát triển J2ME 23 III. Các thành phần giao diện ở mức cao của ứng dụng MIDP 30 III.1. Đối tượng Display, Displayable và Screens 30 III.2. Thành phần Form và Items 31 III.3. Thành phần List, Textbox, Alert, và Ticker 43 IV. Các thành phần giao diện ở mức thấp của ứng dụng MIDP 51 IV.1. Các hàm API ở mức thấp 51 IV.2. Lớp Canvas 51 IV.3. Lớp Graphics 61 IV.4. Các hàm API dùng để lập trình Game 78 V. Xử lý sự kiện 79 V.1. Đối tượng Command 79 V.2. Đối tượng Item 80 V.3. Ví dụ 80 VI. Record Management System 82 VI.1. Persistent Storage Through the Record Store 82 VI.2. Các vấn đề liên quan đến RMS 84 VI.3. Các hàm API trong RMS 84 VI.4. Duyệt Record với RecordEnumeration 96 VI.5. Sắp xếp các record với interface RecordComparator 97 VI.6. Searching with RecordFilter 116 VI.7. Notification of Changes with RecordListener 130 VI.8. Exception Handling 135 VII. Kết nối mạng với Generic Connection Framework 135 VII.1.Những protocol được hỗ trợ trong GCF 136 VII.2.Hỗ trợ giao thức HTTP trong MIDP 142 VII.3.Accessing a Java servlet 152 VIII. Phụ lục 157 VIII.1. Tổng số class và interface trong CLDC 157 VIII.2. Thông tin của các dòng điện thoại thông dụng 158 VIII.3. Tham khảo: 178 Mobile Programming (Private Version) Trịnh Công Duy 2 I. Tổng quan về công nghệ di động I.1. Lịch sử của điện thoại di động I.1.1. Phát minh ra điện thoại di động: Tiến sĩ Martin Cooper, cựu tổng giám đốc đơn vị hệ thống của Motorola, được coi là “cha đẻ” của thiết bị liên lạc di động cầm tay và cũng là người đầu tiên thực hiện một cuộc gọi thông qua công cụ này. Ý tưởng liên lạc di động được bộ phận nghiên cứu AT&T thuộc Trung tâm Bell Labs (Mỹ) đưa ra năm 1947. Nhưng đến cuối những năm 60 và đầu thập kỷ 70 của thế kỷ trước, Motorola và Bell Labs mới thực sự trở thành 2 đối thủ lao vào cuộc đua trong việc tích hợp công nghệ này vào các thiệt bị cá nhân di động. Kỹ sư điện Cooper từng có 4 năm phục vụ trong hải quân trước khi chuyển về làm việc cho một công ty viễn thông nhỏ. Năm 1954, ông được Motorola tuyển dụng và tham gia phát triển các sản phẩm di động, đáng chú ý nhất là công cụ liên lạc radio di động đầu tiên dành cho cảnh sát Chicago năm 1967. Năm 1973, ông thiết lập một trạm thu phát tại New York đồng thời tung ra mẫu đầu tiên của cái gọi là điện thoại di động (cellphone): máy Motorola Dyna-Tac. Sau những cuộc thử nghiệm ban đầu tại Washington, Cooper và Motorola quyết định đưa công nghệ mới tới New York để quảng bá với công chúng. Motorola Dyna-Tac - chiếc điện thoại di động đầu tiên: Kích thước (cm): 22,86 x 12,7 x 4,44 Trọng lượng: 1,13kg Màn hình: không có Số bo mạch điện: 30 Thời lượng thoại: 35 phút Thời lượng pin: 10 tiếng Tính năng: Nói, nghe, quay số. Ngày 3/4/1973, đứng trên một phố gần khách sạn Manhattan Hilton, Cooper quyết định thử thực hiện một cuộc gọi riêng trước khi đi lên gác tham dự một cuộc họp báo giới thiệu thiết bị. Cú điện thoại ấy được ông gọi tới chính đối thủ cạnh tranh của mình: Joel Engel, Giám đốc Trung tâm thí nghiệm Bell Labs. Thật tuyệt vời, “hòn gạch” biết nói nặng hơn 1kg của Cooper đã hoạt động rất tốt, kết nối ông với trạm thu phát đặt trên nóc tòa tháp Burlington Consolidated (nay là tòa nhà Alliance Capital Building) ở New York, đồng thời liên lạc được với cả đường dây cố định. Những người qua đường tỏ ra rất ngạc nhiên khi thấy một người đàn ông bấm bấm một công cụ gì đó, áp sát vào tai và rồi say sưa nói chuyện. Nói về tương lai của ngành di động, tiến sĩ Cooper, năm nay đã ngoài 70 tuổi, cho rằng thế giới viễn thông thực ra vẫn còn rất non trẻ và mới đang bắt đầu bùng nổ. Động lực cho quá trình bùng nổ ấy trước hết là quan niệm kinh doanh mới, trong đó chú trọng vào người tiêu Mobile Programming (Private Version) Trịnh Công Duy 3 dùng. Quan trọng hơn nữa là một nền hoạt động mở, trong đó có những công nghệ mới với khả năng tăng cường khai thác giải tần. Bên cạnh đó, nhà phát minh viễn thông cho rằng, cần có chính sách để ưu tiên cho những đối tượng biết khai thác tốt nhất giải tần sóng hiện có. “Những thay đổi sẽ không diễn ra quá nhanh, nhưng trong 10 năm tới, đó sẽ là những chuyển biến có tính cơ bản”, Cooper nhận định. “Lời khuyên của tôi về công nghệ liên lạc di động trong tương lai, nhất là đối với các thị trường đang phát triển, là hãy từ từ, chậm nhưng hiệu quả”. Theo ông, cần thận trọng trong việc phân bổ giải tần đối với mỗi ứng dụng cụ thể. Và khi phân bổ, dù là cho thế hệ 3G hay 4G, cần tiến hành một cách hợp lý tùy thực tế của mỗi thị trường. Đối với các nước đang phát triển, Cooper cho rằng không nên vội cuốn theo sự cám dỗ của xu thế nhảy sang 3G, cho tới khi nào thấy rõ được những ích lợi cụ thể cho mỗi ngành kinh tế và mỗi quốc gia. I.1.2. Lịch sử các thiết bị ĐTDĐ giờ đây đang hướng tới mục tiêu "siêu mỏng và siêu nhẹ". Nhưng bạn có tin không, ban đầu, "cụ tổ" của nó nặng đến 10 đấy! 1. Motorola DynaTAC 8000X (1982) Năm 1973, Motorola giới thiệu dòng "alô" di động đầu tiên của thế giới dài 27 cm, nặng 1kg, giá 3.995 USD. Tuy nhiên, phải đến năm 1983, thiết bị này mới bắt đầu xuất hiện trên thị trường năm. Motorola DynaTAC 8000X cho phép đàm thoại một giờ, bộ nhớ có thể lưu 30 số. Trông bề ngoài thiết bị này không đẹp mắt nhưng lại cho phép bạn vừa đi vừa nói chuyện ở bất kỳ đâu. Mobile Programming (Private Version) Trịnh Công Duy 4 2. Nokia Mobira Senator (1982) Mới nhìn Nokia Mobira Senator giống hộp bom hơn điện thoại di động, nhưng thiết bị hình hộp to đồ sộ này là điện thoại đầu tiên của Nokia. Được giới thiệu năm 1982, Nokia Mobira Senator được thiết kế sử dụng trong xe ô tô. Nó nặng khoảng 10 kg. 3. PDA Simon Personal Communicator (1993) Điện thoại có tính năng PDA bây giờ không còn mới. Nhưng năm 1993 đây là một ý tưởng mới lạ. Simon Personal Communicator là điện thoại đầu tiên có tính năng của liên minh IBM và BellSouth. Nó là điện thoại kiêm máy tính, sổ địa chỉ, máy fax và e-mail Giá 900 USD. Mobile Programming (Private Version) Trịnh Công Duy 5 4. Motorola StarTAC (1996) Trước khi Motorola Star TAC được giới thiệu năm 1996, các tính năng điện thoại di động được chú trọng nhiều hơn thời trang. Nhưng thiết bị nhỏ bé có thể gập này đã cho thấy rằng phong cách là cực kỳ quan trọng. Motorola StarTAC 3.1 ounce là nhỏ nhất trong thời điểm đó và đến nay nó vẫn nhỏ và nhẹ hơn nhiều "dế" khác. 5. Nokia 6160 (1998) và Nokia 8260 (2000) . Vào những năm 1990, các điện thoại hình thỏi kẹo của Nokia xuất hiện hàng loạt. Nhưng Nokia 6160 và Nokia 8260 gây được sự chú ý của nhiều người. Nokia 6160 có màn hình đen trắng, ăng-ten ngoài, thân 5,2 inch, nặng 6 ounce. Nokia 8260 ra mắt năm 2000 ấn tượng hơn khi được tô điểm chiếc áo màu, dài 4 inch, nặng chỉ 3,4 ounce. Mobile Programming (Private Version) Trịnh Công Duy 6 6. Phần mềm Palm với Kyocera QCP6035 (2000) Nếu bạn là một trong những người hâm mộ điện thoại Treo sử dụng hệ điều hành Palm thì có thể cảm ơn Kyocera. Dế thông minh QCP6035 của công ty này thống lĩnh thị trường bán lẻ năm 2001. Với giá 400 USD và 500 USD, đây là điện thoại dùng phần mềm Palm đầu tiên được phân phối rộng rãi. Sản phẩm có 8 MB bộ nhớ, màn hình trắng đen. 7. PDA đến điện thoại: Handspring Treo 180 (2001) Trở lại khi Palm và Handspring còn là đối thủ. Handspring đã khuấy động thị trường với sản phẩm Treo 180 gồm hai phiên bản: một với bàn pím QWERTY và một Treo 180g với thiết bị nhập liệu Graffiti. Như Kyocera QCP6035, nó có màn hình đen trắng nhưng có 16MB bộ nhớ. Mobile Programming (Private Version) Trịnh Công Duy 7 8. Tiên phong về thiết kế xoay: Danger Hiptop (2002) T-Mobile Sidekick từng được mệnh danh là sản phẩm của năm 2003. Mặc dù các khả năng đàm thoại của nó xoàng, nhưng là một trong những thiết bị đầu tiên cung cấp tính năng duyệt web, truy cập email và nhắn tin. Hơn thế nữa, nó là người tiên phong về thiết kế xoay tròn. 9. Điện thoại cách tân: BlackBerry 5810 (2002) BlackBerry 5810 được biết đến nhưng một thiết bị điển hình về các khả năng xử lý dữ liệu. Đây là sản phẩm đầu tiên cung cấp các tính năng voice, GSM. Mobile Programming (Private Version) Trịnh Công Duy 8 10. Đột phá với tính năng chụp ảnh: Sanyo SCP-5300 (2002) Sanyo SCP-5300 PCS là "dế" đầu tiên có tính năng chụp ảnh được Sanyo và Sprint giới thiệu năm 2002. Ở độ phân giải cao nhất nó có thể chụp được các ảnh VGA (640 x 480), nhưng đến nay, tất nhiên, nó không thể sanh với các điện thoại kiêm máy ảnh 5 megapixel. 11. Điện thoại kiêm máy chơi game Nokia N-Gage (2003) Dòng máy N-Gage tạo được nhiều dư luận khi xuất hiện trên thị trường năm 2003, nhưng thật không may, đó lại là sản phẩm bất lợi. Sự kết hợp điện thoại di động/thiết bị chơi game được kỳ vọng sẽ quyến rũ được game thủ từ bỏ máy chơi game cầm tay của họ. Nhưng thay vào đó, nó gây phản cảm bởi thiết kế hình bán nguyệt kỳ quặc. Mobile Programming (Private Version) Trịnh Công Duy 9 12. Siêu mỏng: Motorola Razr v3 (2004) Điện thoại di động ngày càng mỏng và phong cách hơn, nhưng Motorola Razr v3 là sản phẩm đầu tiên gây ấn tượng về thiết kế thời thượng mỏng và nhẹ vào 2004. Ba năm sau "dế" này vẫn được đánh giá là một trong những điện thoại phổ biến nhất trên thị trường. 13. Điện thoại nghe nhạc Motorola Rokr (2005) Motorola Rokr – điện thoại di động kiêm máy nghe nhạc đầu tiên sử dụng phần mềm nghe nhạc của Apple. Với thiết bị này, người dùng có thể thưởng thức các bài hát, bản nhạc từ dịch vụ iTunes. [...]... 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 của mình một cách tối thiểu nhất để có thể chạy trên điện thọai... thiết bị này c) Những chức năng MIDP cung cấp 17 Mobile Programming (Private Version) Trịnh Công Duy 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... 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... 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í dụ như: trong một game đua xe thì... Lập trình viên cũng có thể điều khiển trạng thái của MIDlet Các phương thức dùng để điều khiển các trạng thái của MIDlet: resumeRequest(): Yêu cầu vào chế độ hoạt động Ví dụ: Khi MIDlet tạm dừng, và một sự kiện timer xuất hiện notifyPaused(): Cho biết MIDlet tự nguyện chuyển sang trạng thái tạm dừng Ví dụ: Khi đợi một sự kiện timer notifyDestroyed(): Sẵn sàng để hủy Ví dụ: Xử lý nút nhấn Exit Lập trình. .. Version) Trịnh Công Duy - Chạy file sun_java_wireless_toolkit-2_5_1-windows.exe để cài đặt chương trình Sau khi cài đặt thành công, bạn sẽ có thư mục chương trình trong menu Start như hình bên dưới Để chạy chương trình chúng ta chọn wireless Toolkit 2.5.1 Bạn sẽ thấy cửa sổ hiện ra như hình bên dưới Chương trình Hello đầu tiên - Chúng ta click chuột vào New project và nhấp vào Project và Class bạn muốn... MIDLet MIDP (Mobile Information Device Profile) là tập các hàm API dành cho thiết bị thông tin di động MIDlet là ứng dụng MIDP Thuật ngữ MIDlet và MID application được sử dụng như nhau Các MIDlets hình thành nên các khối xây dựng của môi trường thực thi Java 2 Platform Micro Edition (J2ME) 18 Mobile Programming (Private Version) Trịnh Công Duy MIDlet được thiết kế để chạy và được điều khiển bởi trình quản... (interface) giữa MIDlet và trình quản lý ứng dụng Các phương thức thuộc lớp này cho phép trình quản lý ứng dụng tạo, bắt đầu, tạm dừng, và hủy MIDlet Hình 1 Hình biểu diễn MIDlet Thông báo import dùng để truy xuất các lớp của CLDC và MIDP Lớp chính của ứng dụng được định nghĩa là lớp kế thừa lớp MIDlet của MIDP Có thể chỉ có một lớp trong ứng dụng kế thừa lớp này Lớp MIDlet được trình quản lý ứng dụng... trên HTTP Có thể nói MIDP là profile nổi tiếng nhất bởi vì nó là kiến thức cơ bản cho lập trình Java trên các máy di động (Wireless Java) PDA Profile: tương tự MIDP, nhưng với thị trường là các máy PDA với màn hình và bộ nhớ lớn hơn Foundation Profile: cho phép mở rộng các tính năng của CDC với phần lớn các thư 16 Mobile Programming (Private Version) Trịnh Công Duy viện của bộ Core Java2 1.3 Ngoài... đoán từ, trình duyệt web Safari, tích hợp camera2-megapixel iPhone là thiết bị gây tò mò nhất trong giới chơi điện thoại di động, dùng hệ điều hành Mac OS X Giá bán: 500 USD cho mẫu 4 GB, 600 USD cho mẫu 8 GB 10 Mobile Programming (Private Version) I.2 Trịnh Công Duy Các chuẩn công nghệ a GMS: Hệ thống thông tin di động toàn cầu Hệ thống thông tin di động toàn cầu (tiếng Anh: Global System for Mobile . để 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 của mình một cách tối thiểu