1. Trang chủ
  2. » Luận Văn - Báo Cáo

kiến thức cơ bản về j2me và sms và ứng dụng

50 637 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 1,31 MB

Nội dung

Với mong muốn có thể đưa được thông tin tình hình giao thông tới nhiều người dân để giúp họ chủ động hơn trong việc tham gia giao thông, chúng tôi lựa chọn đề tài “Hệthống thông tin giao

Trang 1

LỜI CÁM ƠN

Khóa luận này là thành quả lớn nhất trong những năm học đại học của em Để hoànthành được khóa luận, ngoài sự cố gắng của bản thân, em đã nhận được sự giúp đỡ của rấtnhiều người

Đầu tiên con xin cám ơn bố mẹ đã sinh thành và nuôi dưỡng con đến ngày hôm nay

Em xin cám ơn các thầy cô Khoa Công Nghệ Thông Tin và các thầy cô giảng dạy tạitrường Đại học Công Nghệ đã tận tình giảng dạy, truyền đạt cho em rất nhiều kiến thứctrong suốt 4 năm đại học

Em xin cám ơn Tiến sĩ, cô giáo Trần Thị Minh Châu – Giảng viên khoa Công nghệthông tin trường Đại học Công nghệ đã tận tình hướng dẫn và giúp đỡ em trong quá trìnhthực hiện khóa luận này

Xin cám ơn các anh chị khóa trước đã giải đáp rất nhiều thông tin giúp em có thểhoàn thành tốt khóa luận

Khóa luận của em sẽ không thể thành công nếu không có sự giúp đỡ của mọi người.Xin cám ơn tất cả

Trang 2

TÓM TẮT KHÓA LUẬN

Giao thông đang thực sự là vấn đề được rất nhiều người quan tâm Đặc biệt ở nước

ta, khi mật độ các phương tiện giao thông gia tăng mạnh mẽ trong những năm gần đây.Với mong muốn góp phần giảm thiểu tình trạng ùn tắc giao thông, giúp người dân chủđộng hơn khi tham gia giao thông, mục tiêu của khóa luận này là xây dựng ứng dụngClient cho hệ thống thông tin giao thông Ứng dụng được cài đặt trên điện thoại di độngcho phép người dùng tìm kiếm các địa điểm mà họ tham gia giao thông và gửi tin nhắn tracứu đến Server giải đáp

Khóa luận sẽ trình bày một số kiến thức cơ bản về J2ME và SMS, các công nghệđược sử dụng để xây dựng ứng dụng Phần sau của khóa luận sẽ trình bày các bước phântích, thiết kế, xây dựng và các hướng dẫn triển khai ứng dụng trên thiết bị di động giả lập

Trang 3

Mục lục

LỜI CÁM ƠN i

TÓM TẮT KHÓA LUẬN ii

Chương 1 Mở đầu 1

Chương 2 Lập trình ứng dụng cho điện thoại di động với J2ME 3

2.1 Tổng quan về J2ME 3

2.1.1 Giới thiệu J2ME 3

2.1.2 Kiến trúc của J2ME 4

2.2 Cấu trúc ứng dụng MIDlet 7

2.2.1 JAD và JAR 7

2.2.2 Vòng đời của một MIDLet 8

2.3 Đồ họa trong J2ME 10

2.3.1 Đồ họa mức cao (High Level Graphics) : 10

2.4 Lưu trữ dữ liệu với Record Management System (RMS) 11

2.4.1 Các thao tác mở, đóng hay xóa bản ghi 12

2.4.2 Thao tác với các bản ghi 12

2.4.3 Sử dụng hiệu quả RMS qua các lớp tiện ích 14

2.5 Kết nội mạng cơ bản trong J2ME 14

2.5.1 Cơ chế kết nối Client – Server 14

2.5.2 Tìm hiểu CLDC Generic Connection Framework 15

Chương 3 Dịch vụ tin nhắn SMS 17

3.1 Lịch sử của SMS 17

Trang 4

3.2 Lợi ích của dịch vụ tin nhắn SMS 17

3.3 Mô hình dịch vụ tin nhắn SMS 18

Chương 4 Ứng dụng hệ thống giao thông cho thiết bị di động sử dụng SMS 19

4.1 Mô tả hoạt động của hệ thống: 19

4.2 Hoạt động và các chức năng chính của Client 20

Chương 5 Phân tích thiết kế ứng dụng 21

5.1 Biểu đồ ca sử dụng 21

5.1.1 Lược đồ các ca sử dụng chính 21

5.1.2 Mô tả các ca sử dụng: 23

5.2 Biểu đồ lớp 25

5.2.1 Biểu đồ lớp mức tổng thể: 25

5.2.2 Các biểu đồ lớp chi tiết 26

Chương 6 Các màn hình chính và hướng dẫn demo ứng dụng 33

6.1 Demo các chức năng xem danh sách địa điểm hay khu vực 33

6.2 Demo chức năng quản lý địa điểm: 35

6.3 Demo chức năng Tìm kiếm địa điểm 35

6.4 Demo chức năng thiết lập cấu hình: 36

6.5 Demo chức năng nhắn tin tra cứu: 37

6.6 Demo chức năng Nhắn tin cập nhật 39

6.7 Demo chức năng Hướng dẫn sử dụng: 40

Chương 7 Kết luận 41

Tài liệu tham khảo 42

Trang 5

DANH SÁCH HÌNH VẼ

Hình 1: Kiến trúc J2ME 8

Hình 2: Cơ chế hoạt động của máy ảo Java 9

Hình 3: Máy ảo Java trong các phiên bản của Java 10

Hình 4 Vòng đời một MIDLet 12

Hình 5: Đồ họa trong J2ME 14

Hình 6: Cấu trúc phân cấp các lớp đồ họa mức cao 15

Hình 7: Cơ chế lưu trữ trong một kho chứa các bản ghi 17

Hình 8: Cơ chế kết nối giữa thiết bị di động và Web server 19

Hình 9: Mối quan hệ giữa các giao diện hỗ trợ cho lập trình mạng trong J2ME 20

Hình 10: Mô hình dịch vụ SMS 23

Hình 11: Các thành phần của hệ thống 25

Hình 12: Biểu đồ các ca sử dụng 28

Hình 13: Biểu đồ lớp mức tổng thể 32

Hình 14: Biểu đồ lớp Location 32

Hình 15: Biểu đồ lớp Zone 33

Hình 16: Biểu đồ lớp DataRMS 34

Hình 17: Biểu đồ lớp DisplayManager 35

Hình 18: Cơ chế hoạt động của Stack 36

Hình 19: Biểu đồ lớp BaseForm 36

Hình 20: Các lớp kế thừa từ BaseForm 37

Hình 21: Biểu đồ lớp SettingForm 38

Hình 22: Biểu đồ lớp DetailForm 39

Trang 6

Hình 23: Biểu đồ các lớp Sender và Receiver 40

Hình 24: Màn hình chính của SMS Gateway giả lập 41

Hình 25: Màn hình chính ứng dụng Client 42

Hình 26: Màn hình xem danh sách địa điểm và khu vực 42

Hình 27: Màn hình quản lý địa điểm 43

Hình 28: Màn hình tìm kiếm địa điểm 44

Hình 29: Màn hình thiết lập cấu hình 45

Hình 30: Màn hình chờ tin nhắn đến trên SMS Gateway 45

Hình 31: Tin nhắn nhận được trên SMS Gateway 46

Hình 32: Hiển thị tin nhắn nhận được lên màn hình 46

Hình 33: Màn hình chọn tình trạng địa điểm 47

Hình 34: Cú pháp tin nhắn cập nhật địa điểm 48

Hình 35: Màn hình hướng dẫn sử dụng 48

DANH SÁCH BẢNG Bảng 1: Danh sách các ca sử dụng 27

Bảng 2: Mô tả ca sử dụng Danh sách địa điểm 27

Bảng 3: Mô tả ca sử dụng Danh sách địa điểm khu vực 28

Bảng 4: Mô tả ca sử dụng Tìm kiếm địa điểm 28

Bảng 5: Mô tả ca sử dụng Quản lý địa điểm 29

Bảng 6: Mô tả ca sử dụng Gửi tin nhắn SMS 29

Bảng 7: Mô tả ca sử dụng Hướng dẫn sử dụng 29

Trang 7

Chương 1 Mở đầuGiao thông thực sự đang là một vấn đề mà cả xã hội đang rất quan tâm Hiện nay,dân số tập trung quá nhiều các khu vực thành thị, nội đô cũng như mật độ các phương tiệngiao thông gia tăng một cách chóng mặt trong khi cơ sở hạ tầng hiện tại đang trong giaiđoạn từng bước quy hoạch lại Vấn đề này kéo theo hệ quả của nó là tình hình giao thông

ở các khu vực thành phố phát triển luôn trong tình trạng căng thẳng Điều này cũng là dễhiểu đối với một đất nước đang phát triển như chúng ta

Trong khi chờ đợi cơ sở hạ tầng được qui hoạch tốt hơn, thì hằng ngày chúng ta vẫnphải lo lắng mỗi lần tham gia giao thông Hiện nay có không ít giải pháp hỗ trợ cho việcthông tin đến người tham gia giao thông tình hình giao thông ở những điểm nóng mà họquan tâm, trong số đó phổ biến nhất có lẽ là thông qua đài tiếng nói Việt Nam, kênh VOVGiao thông Không thể phủ nhận những hiệu quả mà kênh thông tin này làm được Tuynhiên, không phải bất kỳ ai cũng có có điều kiện theo dõi radio mọi lúc mọi nơi được Với mong muốn có thể đưa được thông tin tình hình giao thông tới nhiều người dân

để giúp họ chủ động hơn trong việc tham gia giao thông, chúng tôi lựa chọn đề tài “Hệthống thông tin giao thông qua SMS” với mục tiêu xây dựng một hệ thống cung cấp thôngtin về các địa điểm, các tuyến đường cho người sử dụng thông qua hệ thống tin nhắnSMS Chúng ta thấy rằng hiện nay điện thoại di động đã thực sự trở thành thiết bị cá nhânrất phổ biến Tin nhắn SMS cũng rất quen thuộc với người dùng di động, vì mức độ đơngiản của nó

Khóa luận này sẽ nghiên cứu tìm hiểu công nghệ lập trình ứng dụng cho điện thoại

di động J2ME, các kiến thức cơ bản về dịch vụ nhắn tin SMS Sau đó ở phần cuối ứngdụng sẽ xây dựng phần Client cho hệ thống thông tin giao thông

Mặc dù để triển khai ứng dụng đi vào thực tế, sẽ còn nhiều vấn đề cần xem xét giảiquyết, tuy nhiên khóa luận cũng đã giới thiệu đầy đủ những kiến thức cần thiết về J2ME

để có thể xây dựng một ứng dụng đơn giản Chương trình demo phần Client của hệ thốngthông tin giao thông đã được cài đặt và cho kết quả tốt trên thiết bị giả lập

Khóa luận được chia thành 7 chương:

Trang 8

Chương 1 giới thiệu tổng quan về mục đích và ý nghĩa của khóa luận.

Chương 2 sẽ trình bày một cách khái quát về J2ME Trong phạm vi khóa luận, tôichỉ giới thiệu các vấn đề đã nghiên cứu, tìm hiểu trong quá trình xây dựng ứng dụngClient

Chương 3 sẽ dành để nói về dịch vụ tin nhắn SMS, lịch sử, hiệu quả kinh tế, và cơchế hoạt động của dịch vụ này

Các chương 4,5,6 trình bày về quá trình phân tích, thiết kế để xây dựng ứng dụng Chương 7 kết luận những vấn đề đã giải quyết được hay hướng phát triển, triển khaicho hệ thống

Trang 9

Chương 2 Lập trình ứng dụng cho điện thoại di động với J2ME

2.1 Tổng quan về J2ME

2.1.1 Giới thiệu J2ME

Java là một ngôn ngữ lập trình bậc cao hướng đối tượng được Sun giới thiệu rộng rãi

từ tháng 5 năm 1995 Sự kiện này đã tạo nên một cuộc cách mạng trong tư duy lập trình

và hướng giải quyết vấn đề của các nhà phát triển Bộ công cụ phát triển Java (JavaDevelopment Kit) phiên bản đầu tiên cũng được Sun công bố ngay sau đó vào tháng 2năm 1996, tạo thuận lợi cho việc tạo ra các chương trình Java

Cùng với sự phát triển lớn mạnh nhờ vào những tính năng ưu việt như hỗ trợ lậptrình hướng đối tượng, đáp ứng đa nền tảng, đến tháng 12 năm 1998, Sun công bố Java 2,với ba phiên bản khác nhau: Standard Edition (J2SE) cho các máy tính để bàn và xáchtay, Enterprise Edition (J2EE) cho các máy chủ lớn, và Micro Edition (J2ME) cho cácthiết bị nhỏ Thực chất 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 thaythế Personal Java và được gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME.Thực tế, J2ME là một nền tảng, một bộ các công nghệ và các đặc tả được thiết kế cho thịtrường các thiết bị nhỏ khác nhau Java ME bao gồm cấu hình – configuration, hiện trạng– profiles và các gói tùy chọn khác Các cấu hình là các đặc tả chi tiết một máy ảo và một

bộ các giao diện lập trình API cơ sở dùng cho mọt lớp các thiết bị cụ thể Ví dụ, một cấuhình được thiết kế cho các thiết bị có bộ nhớ dưới 512KB và một kết nối mạng hay bịgián đoạn Máy ảo trong trường hợp này có thể là JVM đầy đủ hoặc một tập con củaJVM

Hiện trạng được xây dựng trên một cấu hình cụ thể nhưng có bổ sung các đặc tả API

để tạo ra một môi trường hoàn chỉnh cho việc phát triển các ứng dụng Mặc dù cấu hình

mô tả một máy ảo JVM và một tập API cơ sở, nhưng tự bản thân nó lại không đủ chi tiết

để cho phép xây dựng một ứng dụng hoàn chỉnh Các cấu hình thường bao gồm các APIcho vòng đời của một ứng dụng, các giao diện người dùng và cơ chế lưu trữ cố định.Các gói tùy chọn cung cấp các hàm không có trong cấu hình hay hiện trạng cụ thể.Một ví dụ của gói tùy chọn là Bluetooth API (JSR 82), nó cung cấp các giao diện chuẩn

Trang 10

cho việc sử dụng mạng Bluetooth Gói tủy chọn này có thể được thực thi song song vớimột cấu hình hay hiện trạng bất kỳ.

2.1.2 Kiến trúc của J2ME

Hình 1: Kiến trúc J2ME 1

Các thành phần cơ bản trong kiến trúc của J2ME gồm có:

Cấu hình (Configuration) là đặc tả định nghĩa một môi trường phần mềm cho mộtdòng các thiết bị được phân loại bởi tập hợp các thuộc tính, ví dụ như:

Hiện nay Sun đã đưa ra 2 dạng Configuration:

- Cấu hình thiết bị kết nối giới hạn (Connected Limited DeviceConfiguration CLDC):

Trang 11

Được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bịnày thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ.

- Cấu hình thiết bị kết nối (Connected Device Configuration)

CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộcCLĐC nhưng vẫn yếu hơn cho các hệ thống máy để bàn sử dụng J2SE Những thiết bịnày có nhiều bộ nhớ hơn hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn Cácsản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web hay các thiết bị giadụng trong gia đình

Một thành phần đặc trưng chung của tất cả các công nghệ Java, bao gồm cả J2ME,

đó là máy ảo Java

Hình 2: Cơ chế hoạt động của máy ảo Java 2

Máy ảo là một phần mềm dựa trên cơ sở máy tính ảo Nó có tập hợp các lệnh logic

để xác định các hoạt động của máy tính Người ta có thể xem nó như một hệ điều hànhthu nhỏ Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới, hệ điều hành, mã đãbiên dịch

2 Nguồn từ http://viralpatel.net/blogs/2008/12/java-virtual-machine-an-inside-story.html

Trang 12

Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụthuộc vào phần cứng cụ thể Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh này thànhchương trình thực thi.

Biểu đồ sau sẽ minh họa khả năng của máy ảo JVM trong các phiên bản của Java

Hình 3: Máy ảo Java trong các phiên bản của Java

Hiện trạng định nghĩa loại của các thiết bị được hỗ trợ bởi ứng dụng của bạn Mộtcách cụ thể là, nó thêm vào các lớp chuyên dụng cho cấu hình J2ME để định nghĩa các sửdụng xác định cho các thiết bị Hiện trạng được xây dựng ở trên cấu hình Hai hiện trạngđược định nghĩa cho J2ME và được xây dựng trên CLDC: Kjava và Hiện trạng thiết bịthông tin di động (Mobile Information Device Profile – MIDP) Các hiện trạng này hướngtới các thiết bị nhỏ hơn

CLDC phác họa tập thư viện và tính năng máy ảo Java cơ bản nhất yêu cầu cho việcthực thi của J2ME trên các thiết bị ràng buộc cao Các thiết bị đích của CLDC với kết nốimạng chậm, nguồn giới hạn, 128 KB hoặc hơn bộ nhớ không bay hơi (non-volatilememory), và 32 KB hoặc hơn bộ nhớ bay hơi (volatile memory) Bộ nhớ bay hơi là bộnhớ không bền và không có bảo vệ ghi, nghĩa là nếu thiết bị đã tắt, thì nội dung của bộnhớ bay hơi sẽ mất Với bộ nhớ không bay hơi, nội dung được giữ liên tục và bảo vệ ghi.Các thiết bị CLDC sử dụng bộ nhớ không bay hơi để lưu trữ các thư viện thực thi vàKVM, và máy ảo khác được tạo cho thiết bị riêng biệt Bộ nhớ bay hơi được dùng để cấpphát bộ nhớ thực thi

Trang 13

Một hiện trạng khung mà trên đó bạn phát triển hiện trạng của riêng mình, Hiệntrạng nền móng (the Foundation Profile), được cung cấp cho CDC Tuy nhiên ở đây ta chỉquan tâm đến các hiện trang trên CLDC cho các thiết bị nhỏ

Cấu hình các thiết bị kết nối giới hạn (Connected Limited Device Configuration CLDC) và Hiện trạng thiết bị thông tin di động (Mobile Information Device Profile -MIDP) kết hợp tương ứng để hỗ trợ phần lớn các thiết bị di động giá thấp được dùng hiệnnay, như PDAs, điện thoại không dây, và máy nhắn tin hai chiều

di động

Nội dung của tập tin JAR:

Các trường yêu cầu

- Manifest-Version // Phiên bản tập tin Manifest

- MIDlet-Name // Tên bộ MIDlet (MIDlet suite)

- MIDlet-Version // Phiên bản bộ MIDlet

- MIDlet-Vendor // Nhà sản xuất MIDlet

Trang 14

- MIDlet- for each MIDlet // Tên của MIDlet

- MicroEdtion-Profile // Phiên bản hiện trạng

- MicroEdtion-Configuration // Phiên bản cấu hình

Tập tin JAD và tập tin kê khai (manifest.mf) mô tả các đặc điểm của MIDlet.Tập tin kê khai được đóng gói trong tập tin JAR trong khi tập tin JAD thì không Việctách rời tập tin JAD với JAR cho phép thiết bị có thể xác định được đặc điểm của ứngdụng MIDlet trước khi tải tập tin JAR về máy Như vậy, nếu người dùng muốndownload một ứng dụng không được thiết bị di động hỗ trợ (ví dụ, MIDP 2.0), thì quátrình download sẽ bị hủy bỏ thay vì phải đợi download hết toàn bộ tập tin JAR

Trang 15

Hình 4 Vòng đời một MIDLet 3

Các ứng dụng J2ME được gọi là MIDlet (Mobile Information Device applet) Lớpchính của một ứng dụng được định nghĩa là lớp mở rộng (extends) của lớp MIDlet trongMIDP Có thể chỉ có một lớp trong ứng dụng mở rộng lớp này Lớp MIDlet được trìnhquản lý ứng dụng trên điện thoại di động dùng để khởi động, dừng, và tạm dừng MIDlet(ví dụ, trong trường hợp có cuộc gọi đến) Khi sử dụng lớp Midlet, chúng ta phải khai báo

sử dụng thư viện java.microedition.midlet.MIDlet và thực thi ba phương thức startApp(),pauseApp(), và destroyApp()

Cấu trúc của một ứng dụng với Midlet gồm sáu phần chính:

- Khai báo import thư viện java.microedition.midlet.MIDlet

- Khai báo một lớp (mà lớp này là lớp chính của ứng dụng) extends từ lớpMidlet

- Hàm khởi tạo (constructor) cho lớp vừa khai báo

- Cài đặt phương thức startApp():

Được gọi bởi bộ quản lý ứng dụng khi MIDlet được khởi tạo, và mỗi khi MIDlet trở

về từ trạng thái tạm dừng Nói chung, các biến toàn cục sẽ được khởi tạo lại trừ hàm tạo

3 Nguồn từ http://developers.sun.com/mobility/midp/articles/fsm/

Trang 16

bởi vì các biến đã được giải phóng trong hàm pauseApp() Nếu không thì chúng sẽ khôngđược khởi tạo lại bởi ứng dụng.

- Cài đặt phương thức pauseApp():

Được gọi bởi bộ quản lý ứng dụng mỗi khi ứng dụng cần được tạm dừng (ví dụ,trong trường hợp có cuộc gọi hoặc tin nhắn đến) Cách thích hợp để sử dụng pauseApp()

là giải phóng tài nguyên và các biến để dành cho các chức năng khác trong điện thoạitrong khi MIDlet được tạm dừng Cần chú ý rằng khi nhận cuộc gọi đến hệ điều hành trênđiện thoại di động có thể dừng KVM thay vì dừng MIDlet Việc này không được đề cậptrong MIDP mà đó là do nhà sản xuất quyết định sẽ chọn cách nào

- Cài đặt phương thức destroyApp():

Được gọi khi thoát MIDlet (ví dụ khi nhấn nút exit trong ứng dụng) Không thật sựxóa ứng dụng khỏi điện thoại di động Phương thức destroyApp() chỉ nhận một tham sốBoolean Nếu tham số này là true, MIDlet được tắt vô điều kiện Nếu tham số là false,MIDlet có thêm tùy chọn từ chối thoát bằng cách gởi ra một ngoại lệMIDletStateChangeException

2.3 Đồ họa trong J2ME

Các lớp MIDP cung cấp hai mức đồ họa: đồ họa mức thấp và đồ họa mức cao Đồhọa mức cao dùng cho văn bản hay form Đồ họa mức thấp dùng cho các ứng dụng tròchơi yêu cầu phải vẽ lên màn hình

Trang 17

Hình 5: Đồ họa trong J2ME 4

- Một ứng dụng MIDlet chỉ có 1 đối tượng thể hiện Display Đối tượng này dùng để

lấy thông tin về đối tượng trình bày.

- Một đối tượng Displayable là một thành phần được hiển thị trên một thiết bị.MIDP chứa hai lớp con của lớp Displayable là Screen và Canvas

- Một đối tượng Screen không phải là một cái gì hiện ra trên thiết bị, lớp Screen sẽ

được thừa kế bởi các thành phần hiển thị ở mức cao, chính các thành phần này sẽ được

hiển thị ra trên màn hình.

2.3.1 Đồ họa mức cao (High Level Graphics) :

Về mục đích tạo ra một ứng dụng demo đơn giản với đầy đủ chức năng đáp ưngđược yêu cầu của hệ thống, khóa luận này chỉ giới hạn nghiên cứu tìm hiểu việc sử dụngcác lớp giao diện đồ họa mức cao Còn các lớp xây dựng đồ họa mức thấp phù hợp chocác ứng dụng trò chơi có giao diện động phức tạp Do vậy cơ sở lý thuyết cho phần đồhọa mức thấp sẽ được đề cập đến trong những tài liệu khác phù hợp hơn

Đồ họa mức cao là lớp con của lớp Screen Nó cung cấp các thành phần nhưtextbox, form, list và alert Việc sắp xếp các thành phần trên màn hình hạn chế, phụ thuộcvào nhà sản xuất

4 Nguồn từ

http://www23.brinkster.com/lenqkhanh/_backup/resources/mobile/Lap_trinh_giao_dien_muc_cao_voi_MIDP.htm

Trang 18

Cấu trúc phân cấp các thành phần của các lớp đồ họa mức cao có thể được minh họatheo biểu đồ sau:

Hình 6: Cấu trúc phân cấp các lớp đồ họa mức cao 5

2.4 Lưu trữ dữ liệu với Record Management System (RMS)

Trong quá trình thực hiện khóa luận, tiếp xúc và tìm hiểu cơ chế lưu trữ dữ liệuthông qua RMS là một khái niệm khá mới và thú vị RMS là một “hệ cơ sở dữ liệu” đơngiản, nó tổ chức và quản lý tất cả dữ liệu dưới dạng các record (bản ghi) RMS chỉ chophép thao tác đọc và ghi với dữ liệu ở dạng một mảng byte nhị phân Do đó để làm việcđược với RMS, các kiểu dữ liệu thông thường cũng như các kiểu dữ liệu do người dùngđịnh nghĩa đều phải được chuyển thành mảng byte nhị phân để ghi vào các record trongRMS Trong phần xây dựng chương trình demo, các lớp yêu cầu phải lưu trữ trực tiếp lênRMS đều có phương thức cho phép chuyển đổi các kiểu dữ liệu thông thường thành mảngbyte và ngược lại

2.4.1 Các thao tác mở, đóng hay xóa bản ghi

Trong RMS, các bản ghi được tập hợp với nhau và lưu trữ trong một kho các bảnghi, gọi là Record store Trong khóa luận này, thuật ngữ tiếng Anh sẽ được giữ nguyênđối với Record store

Trang 19

Phương thức dùng để mở một Record Store:

public static RecordStore openRecordStrore(String recordStoreName,

boolean createIfNecessary)

Trong phương thức trên, recoredStroreName là tên của record store Còn tham sốcreateIfNecessary dùng để xem xét có tạo mới một record store khi không tìm thấy cácrecord store trong thiết bị hay không

Ví dụ sau mở một record store tên là “zoneRecord”, đây là các bản ghi lưu trữ thôngtin cho lớp khu vực được sử dụng trong ứng dụng demo:

public int getSize();

Trong hệ RMS, cũng cung cấp một phương thức trả về kích thước số byte còn dưtrong record store:

Public int getSizeAvailable();

2.4.2 Thao tác với các bản ghi

Mỗi một bản ghi trong một RecordStore có một số nguyên làm định danh, hình sauminh họa một RecordStore chứa bốn bản ghi:

Trang 20

Hình 7: Cơ chế lưu trữ trong một kho chứa các bản ghi

- Thêm một bản ghi:

Phương thức dùng để thêm một bản ghi lên RecordStore là:

public int addRecord(byte[] data, int offset, int numBytes)

Ví dụ sau giải thích rõ hơn cho phương thức này:

- Đọc một bản ghi:

public byte[ ] getRecord(int recordId);

Phương thức trên cho phép đọc một bản ghi có định danh tại recordId Trong ứngdụng này, sau khi lưu trữ toàn bộ thông tin các khu vực và địa điểm lên RMS, để hiển thịlên màn hình, dữ liệu được lấy từ RMS và gọi hàm khởi tạo đối tượng Zone (hoặcLocation)

for(int i = 0; i < size; i++){

byte[] buffer = zoneRecord.getRecord(i);

zone = new Zone(buffer);

}

- Thay thế một bản ghi:

Trang 21

public void setRecord(int recordId, byte[] newData,

int offset, int numBytes)

Phương thức trên sẽ thay thế mảng byte newData vào vị trí bản gi có số hiệurecordId

2.4.3 Sử dụng hiệu quả RMS qua các lớp tiện ích

Trên đây đã trình bày chi tiết một số phương thức cơ bản để có thể sử dụng hệ quảntrị RMS cho mục đích lưu trữ các bản ghi đơn giản Bên cạnh các phương thức đơn giản,Java còn cung cấp một số lớp tiện ích hỗ trợ cho các thao tác được thực hiện thườngxuyên như sắp xếp hay tìm kiếm dữ liệu Phần tiếp theo của khóa luận sẽ giới thiệu về cáclớp đó

- Lớp RecordEnumeration

Lớp RecordEnumeration cung cấp các phương thức cho phép di chuyển lên trước và

ra sau giữa các bản ghi trong một record store Lớp này sẽ rất hữu ích khi được sử dụngkết hợp với một bộ lọc để tìm kiếm một bản ghi, hoặc kết hợp với việc so sánh để sắp xếpthứ tự các bản ghi

- Sắp xếp bản ghi với lớp RecordComparator

RecrodComparator là một giao diện của Java

- Lớp RecordFilter

2.5 Kết nội mạng cơ bản trong J2ME

2.5.1 Cơ chế kết nối Client – Server

Các lớp hỗ trợ lập trình kết nối mạng trong J2ME cho phép thiết bị di động có thể

mở các kết nối mạng thông qua các giao thức mạng được thiết kế riêng cho các thiết bị diđộng

Hình sau sẽ mô tả cơ chế kết nối giữa thiết bị di động và Web server

Trang 22

Hình 8: Cơ chế kết nối giữa thiết bị di động và Web server 6

2.5.2 Tìm hiểu CLDC Generic Connection Framework

Khi làm việc với J2SE, các lớp hỗ trợ kết nối mạng là java.io.* và java.net.* yêu cầu

nhiều bộ nhớ hơn so với những gì mà các thiết bị cầm tay có thể hỗ trợ Do vậy, một nền tảng được thiết kế dành riêng cho các thiết bị CLDC là Generic Connection Framework (GCF) GCF cung cấp một bộ các lớp trừu tượng được sử dụng ở mức lập trình cho phép điều khiển nhiều loại giao tiếp

Trong nền tảng này, mọi kết nối đều được tạo ra sử dụng phương thức tĩnh open của lớp Connector Nếu thành công, phương thức này sẽ trả về một đối tượng thực thi một trong các giao diện kết nối chung Hình sau sẽ cho thấy mối quan hệ is-a giữa các giao

diện Giao diện Connection là giao diện cơ sở

Hình 9: Mối quan hệ giữa các giao diện hỗ trợ cho lập trình mạng trong J2ME 7

Trang 23

Tham số của phương thức open là một chuỗi ký tự mô tả giao thức, địa chỉ, và thamsố:

Datagram Connection:

Connector.open("datagram://

java.sun.com:port")

Trang 24

Chương 3 Dịch vụ tin nhắn SMS3.1 Lịch sử của SMS

Dịch vụ tin nhắn(SMS – Short Message Service) là dịch vụ gửi và nhận bản tinngắn, đầu tiên được cung cấp cho các điện thoại di động, sau đó được áp dụng cho cácđiện thoại cố định, các máy fax, các hộp thư điện tử và các thiết bị điện thoại khác bản tinnhắn có thể bao gồm các kí tự chữ và số

Những ý tưởng đầu tiên cho dịch vụ tin nhắn SMS xuất hiện trong khoảng nhữngnăm 1980 khi các chuyên gia từ cộng đồng các dịch vụ thông tin di động thảo luận vềnhững dịch vụ mà chuẩn GSM sẽ có Nhiều chuyên gia cho rằng SMS sẽ là một cách đểcảnh báo người dùng cá nhân di động Cho đến năm 1985, khi mà các chuẩn GMS đãđồng nhất, có một cuộc thảo luận về việc tạo ra các chuẩn để việc nhắn tin có thể gửi vànhận bởi người dùng di động Đến năm 1987, một chuẩn GSM mới được tạo ra gọi là

“Implementation of Data and Telematic Services Experts Group”, viết tắt là IDEG

Tháng 12 năm 1992, một nhân viên của tổ chức Airwide Solution là Neil Papworth

đã gửi một tin nhắn văn bản thương mại đầu tiên, đó là một tin nhắn Chúc mừng giángsinh từ một máy tính cá nhân đến những người trong mạng GSM trên nước Anh RikuPihkonen, một sinh viên kỹ thuật làm việc cho Nokia, cũng đã gửi tin nhắn văn bản đầutiên từ một chiếc điện thoại GSM vào năm 1992

Mặc dù xuất hiện sớm từ đầu những năm 1990, nhưng dịch vụ SMS tăng trưởng kháchậm vì nhiều lý do Cho đến những năm 2000, việc giới thiệu điện thoại di động trảtrước thuế, trong đó mọi người có thể trả tiền cho đường truyền của họ trước sau đó kiểmsoát việc sử dụng điện thoại di dộng của họ là chất xúc tác đẩy nhanh sự phát triển củaSMS

3.2 Lợi ích của dịch vụ tin nhắn SMS

Lợi ích của SMS dành cho các thuê bao tập trung sự tiện lợi, linh hoạt và đơn giảncủa các dịch vụ nhắn tin và truy cập dữ liệu Từ quan điểm này, lợi ích chính của SMS làkhả năng sử dụng các thiết bị cầm tay như một phần mở rộng của máy tính Những lợi íchnày thường phụ thuộc vào các nhà cung cấp dịch vụ, nhưng ít nhất, SMS cũng mang lại

Trang 25

- Cung cấp các thông báo và các cảnh báo

- Đảm bảo việc cung cấp tin nhắn

- Đáng tin cậy, cơ chế giao tiếp không yêu cầu chi phí cao

- Có khả năng hiển thị các tin nhắn lên màn hình và gọi lại một cách chọn lọc

3.3 Mô hình dịch vụ tin nhắn SMS

Hình 10: Mô hình dịch vụ SMS 8

Dịch vụ tin nhắn ngắn (Short Message Service) đã thực sự tạo ra một nền tảng chophép các máy tính, hay cụ thể là các máy điện thoại có thể giao tiếp với nhau mà khôngcần đến một trung tâm trung ương Với SMS, điện thoại có thể tìm thấy nhau, gửi và nhậncác gói tin ngắn Tuy nhiên lượng thông tin có thể gửi cùng một lúc được giới hạn trongmột kích thước nhất định Điều này còn phụ thuộc vào ngôn ngữ mà thiết bị hỗ trợ, nhưngđối với chữ cái Latinh thì khoảng 150 ký tự

8 Nguồn từ http://www.alexfactoryillustration.com/how-sms-working.html#more-96

Ngày đăng: 16/07/2014, 15:12

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w