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ị
83 trang |
Chia sẻ: oanhnt | Lượt xem: 1331 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ứ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
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
ứ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
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
Cán bộ hướng dẫn: ThS Đào Ngọc Phong
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG 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
Cán bộ hướng dẫn: ThS Đào Ngọc Phong
HÀ NỘI - 2010
ứ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
ứ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.
ứ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
ứ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
ứ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
ứ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:………………………………………………………………………...
ứ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
ứ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
ứ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
API Application Program Interface
ASCII American Standard Code for Information Interchange
AWT Abstract Window ToolKit
CBS Cell Broadcast Short Message Service
CDC Connected Device Configuration
CDMA Code Division Multiple Access
CGI Common Gateway Interface
CLDC Connected Limited Device Configuration
CPU Central Processing Unit
DOM Document Object Model
DTD Document Type Definition
EDGE Enhanced Data GSM Environment
GPRS General Packet Radio Service
GPS Global Positioning System
GSM Global System for Mobile Communications
GUI Graphical User Interface
HTML Hyper-Text Markup Language
HTTP Hyper-Text Transfer Protocol
IDE Integrated Development Environment
IP Internet Protocol
IR Infra Red
J2EE Java 2 Platform, Enterprise Edition
J2ME Java 2 Platform, Micro Edition
J2SE Java 2 Platform, Standard Edition
JAD Java Application Descriptor
JAR Java Application Archive
JCP Java Community Process
JNI JavaNative Interface Support
ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động
JSR Java Specification Request
KVM K Virtual Machine
MIDlet MIDP applet
MIDP Mobile Information Device Profile
MVC Model-View-Controller
OTA Over The Air
PC Personal Computer
PDA Personal Digital Assistant
PHP PHP Hypertext Preprocessor
RMI Remote Method Invocation
RMS Record Management System
SAX Simple API for XML
SMS Short Message Service
UDP User Datagram Protocol
URL Uniform Resource Locator
WAP Wireless Application Protocol
WBXML Wap Binary XML
WMA Wireless Messaging API
XML eXensible Markup Language
ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động
1
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.
ứu công nghệ J2ME và thử nghiệm lập trình ứng dụng trên thiết bị di động
2
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.
ứu công