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

Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian

63 579 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 63
Dung lượng 1,92 MB

Nội dung

Sự kết hợp giữa máy trợ giúp cá nhân PDA và điện thoại di động đã tạo ra một thiết bị mới, thiết bị WID (Wireless Information Device) hiện nay được biết đến nhiều dưới dạng điện thoại thông minh (Smartphone). Các thiết bị này với khả năng xử lý của máy tính nhỏ và chức năng liên lạc của điện thoại di động có thể giúp chúng ta xử lý công việc dù đang ở đâu với các tính năng lưu trữ, xử lý và truy cập vô tuyến. Không chỉ phục vụ cho công việc, các thiết bị WID còn là công cụ giải trí tuyệt vời với chức năng xem phim, nghe nhạc và chơi game. Đó là lý do tại sao thị trường của các thiết bị này ngày càng mở rộng và phát triển không ngừng. Sự ra đời của WID mang lại một sức sống mới cho thị trường di động và mở ra một hướng phát triển ứng dụng mới đầy tiềm năng cho công ty phần mềm và các lập trình viên. Với các hệ điều hành mở trên các thiết bị WID, họ đang có cơ hội được thử thách mình trên một môi trường ứng dụng mới. Ở Việt Nam, số lượng thiết bị di động ngày càng tăng đặc biệt là các loại điện thoại di động đa chức năng. Nhiều người đã coi điện thoại di động như một vật không thể thiếu trong công việc, cuộc sống hàng ngày. Với mong muốn cung cấp những thông tin cần thiết, những cách thức để phát triển ứng dụng cho hệ điều hành Symbian, em đã thực hiện đề tài : “Tìm hiểu lập trình trên Mobile và xây dựng ứng dụng trên Hệ điều hành Symbian”. Từ đó xây dựng một ứng dụng nhỏ để minh hoạ, từ điển Anh – Viêt, Việt – Anh. Đề tài được thực hiện theo quy trình phát triển ứng dụng trên hệ điều hành Symbian từ chọn thiết bị dùng Symbian, chọn bộ công cụ SDK, môi trường phát triển IDE và cài đặt chương trình ứng dụng trên thiết bị.

1 MỤC LỤC TỔNG QUAN VỀ HỆ ĐIỀU HÀNH SYMBIAN KIẾN TRÚC HỆ THỐNG CỦA HỆ ĐIỀU HÀNH SYMBIAN LẬP TRÌNH JAVA TRÊN HỆ ĐIỀU HÀNH SYMBIAN .31 XÂY DỰNG ỨNG DỤNG 49 LỜI NÓI ĐẦU Sự kết hợp máy trợ giúp cá nhân PDA điện thoại di động tạo thiết bị mới, thiết bị WID (Wireless Information Device) biết đến nhiều dạng điện thoại thông minh (Smartphone) Các thiết bị với khả xử lý máy tính nhỏ chức liên lạc điện thoại di động giúp xử lý công việc dù đâu với tính lưu trữ, xử lý truy cập vô tuyến Không phục vụ cho công việc, thiết bị WID công cụ giải trí tuyệt vời với chức xem phim, nghe nhạc chơi game Đó lý thị trường thiết bị ngày mở rộng phát triển không ngừng Sự đời WID mang lại sức sống cho thị trường di động mở hướng phát triển ứng dụng đầy tiềm cho công ty phần mềm lập trình viên Với hệ điều hành mở thiết bị WID, họ có hội thử thách môi trường ứng dụng Ở Việt Nam, số lượng thiết bị di động ngày tăng đặc biệt loại điện thoại di động đa chức Nhiều người coi điện thoại di động vật thiếu công việc, sống hàng ngày Với mong muốn cung cấp thông tin cần thiết, cách thức để phát triển ứng dụng cho hệ điều hành Symbian, em thực đề tài : “Tìm hiểu lập trình Mobile xây dựng ứng dụng Hệ điều hành Symbian” Từ xây dựng ứng dụng nhỏ để minh hoạ, từ điển Anh – Viêt, Việt – Anh Đề tài thực theo quy trình phát triển ứng dụng hệ điều hành Symbian từ chọn thiết bị dùng Symbian, chọn công cụ SDK, môi trường phát triển IDE cài đặt chương trình ứng dụng thiết bị CHƯƠNG TỔNG QUAN VỀ HỆ ĐIỀU HÀNH SYMBIAN 1.1 CÁC HỆ ĐIỀU HÀNH DÀNH CHO THIẾT BỊ DI ĐỘNG 1.1.1 Hệ điều hành Window Compact Edition (Win CE) Được phát triển Microsoft hỗ trợ công cụ để chuyển ứng dụng Windows máy tính cá nhân thành ứng dụng chạy WinCE Lợi WinCE tạo quen thuộc cho người dùng thiết bị WID vốn quen dùng ứng dụng Windows máy tính cá nhân Sự quen thuộc có ích cho lập trình viên, người muốn phát triển ứng dụng WID dùng hệ điều hành WinCE WinCE sử dụng điện thoại Smartphone nhà sản xuất Casio, Siemens, Compaq gần Motorola 1.1.2 Hệ điều hành Palm Được phát triển Com Palm Computing, vốn thiết kế cho máy PDA ứng dụng liên lạc vô tuyến Sự khác biệt lớn Palm hệ điều hành khác nhân hệ điều hành tối ưu hoá cho thiết kế phần cứng riêng cho máy Palm Do nhà sản xuất dùng Palm phải sử dụng CPU, hình, chip điều khiển đặc thù Palm nhà sản xuất Qualcomm, sony, handspring, IBM, Motorola, Nokia Symbol sử dụng để xây dựng thiết bị PDA WID 1.1.3 Hệ điều hành Linux Tynux Linux khác cung cấp PalmPalm dùng điện thoại thông minh Đặc điểm bật Linux dùng thiết bị WID cung cấp hệ điều hành linh hoạt, hỗ trợ mạnh ứng dụng nguồn mở có kích thước nhỏ, khoảng 1MB với phần nhân khoảng 100KB 1.1.4 Hệ điều hành Symbian Symbian xây dựng riêng cho thiết bị WID từ hệ điều hành EPOC vốn Psion dùng cho sản phẩm Communicator, Oganizer Subnotebook Symbian thiết kế đặc biệt đáp ứng đầy đủ yêu cầu mà hệ điều hành cho WID cần với khả module hoá tối đa xử lý liên quan đến quản lý lượng, nhớ, chế bắt kiện đa nhiệm Hầu hết nhà sản xuất thiết bị WID hàng đầu sử dụng Symbian Nokia, Sony Ericsson, Samsung, Panasonic, LG 1.2 LỊCH SỬ VỀ HỆ ĐIỀU HÀNH SYMBIAN Symbian OS bắt nguồn từ hệ điều hành EPOC(Electronic Pocket Communication), hệ điều hành phát triển cho máy tính thiết bị liên lạc bỏ túi Psion có vi xử lý yếu nhớ nhỏ Hệ điều hành Symbian phát triển dựa phần nhân EPOC phát triển theo hướng phục vụ tốt cho thiết bị WID Hệ điều hành Symbian đủ linh hoạt để đáp ứng yêu cầu công nghiệp việc phát triển thiết bị WID cao cấp cho phép nhà sản xuất xây dựng riêng cho chủng loại khác Từ năm 1991 đến năm 1998, Psion xuất hệ điều hành EPOC 16 đưa vào sử dụng máy hệ 3, Psion 3, PDA thay loại sổ tay, lịch giấy lúc biết đến với tên gọi SIBO Năm 1998, Công ty Symbian thành lập tập đoàn Nokia, Motorola, Ericsson, Psion nhằm tập trung phát triển PDA điện thoại di động thông minh Năm 1999, EPOC Release dùng điện thoại Revo, Ericsson MC218, Ericsson 380 Năm 2000, phông Unicode tích hợp vào Ericsson R380 EPOC R5 Sau đó, EPOC R6 đời đựơc đổi tên thành Symbian v6.0, v6.1 điện thoại cài vào hệ điều hành Symbian Nokia 9210 Năm 2003, Symbian giới thiệu phiên Symbian OS v7.0 v7.0s Năm 2004, virus điện thoại lần công Symbian OS có tên gọi Cabir năm Psion bán cổ phần cho Nokia Phiên Symbian v9.0 đời dùng để thử nghiệm nội Năm 2005, Symbian OS phiên v9.1 công bố Phiên cải tiến nhiều ứng dụng nội dung, chế bảo vệ tốt tất phiên trước Tháng năm 2006, Symbian OS phiên v9.2 công bố Hiện Symbian hãng dẫn đầu với 60% thị phần phần mềm điện thoại thông minh 1.3 CÁC ĐẶC TÍNH CỦA SYMBIAN 1.3.1 Tính bảo mật Bảo mật Symbian cho phép bảo vệ, xác nhận toàn vẹn liệu tăng cường chế cài đặt an toàn Nó cung cấp API cho thuật toán mã hoá chuẩn, phát sinh khoá băm (hash key), phát sinh số ngẫu nhiên quản lý xác nhận Kiến trúc bảo mật tảng hệ điều hành Symbian gồm thành phần: -Quản lý xác nhận (Certificate management-Certman) -Mã hoá (Cryptography-Cryptalg) -Thanh điều khiển quản lý xác nhận (Certman control panel) -Cài đặt phần mềm (Software install) -Truyền thông an toàn (Secure comms) 1.3.2 Tính mở Symbian Phần lớn source code cung cấp cho nhà sản xuất điện thoại sử dụng Symbian OS số partner khác việc phát triển ứng dụng Symbian Các hàm APIs công bố rộng rãi để phát triển phần mềm cho Symbian so với MobiLinux năm tới 1.4 MỘT SỐ THÀNH PHẦN CỨNG CHÍNH CỦA ĐIỆN THOẠI CÓ HỆ ĐIỀU HÀNH SYMBIAN Các thành phần quan trọng cấu thành điện thoại Symbian, CPU, ROM, RAM, thiết bị nhập xuất (I/O) nguồn lượng + Bộ xử lý trung tâm (Center Processing Unit – CPU): Hệ điều hành Symbian thiết kế cho kiến trúc 32 bit CPU, chạy tốc độ thấp so với CPU máy tính để bàn Server Các hệ thống Symbian sử dụng 104Mhz, 122Mhz 220 Mhz Strong ARM CPU, với loại CPU ARM7 ARM9 Các điện thoại Symbian tương lai chạy CPU nhanh + Bộ nhớ (Read Only Memory): ROM chứa hệ điều hành tất ứng dụng phần mềm trung gian (middleware) có sẵn nhà sản xuất đưa vào tạo thiết bị Điều hoàn toàn khác với PC, mà ROM chứa phần nạp ban đầu BIOS, hệ điều hành ứng dụng lưu đĩa cứng Bộ nhớ ROM điện thoại Symbian gán nhãn ổ đĩa Z Tất thứ ROM truy cập file ổ đĩa Z Vì chương trình chạy trực tiếp ROM thay nạp vào RAM PC Bộ nhớ ROM thường giới hạn, thường 8MB 16MB + Bộ nhớ RAM (Random Access Memory): Bộ nhớ RAM sử dụng ứng dụng thực thi nhân hệ thống Một phần RAM gán ổ đĩa C, dùng để chứa chương trình, file tài liệu ứng dụng, Dung lượng RAM thường khoảng 8mb 16mb ổ C thường chiếm 50% dung lượng RAM, nên xảy lỗi bị tràn nhớ Khi khởi động nguội máy, nội dung RAM bị xóa Dữ liệu RAM phục hồi lại khởi động nóng, bị lỗi khôi phục + Các thiết bị nhập xuất (Input/Output – I/O) bao gồm: - Màn hình: có kích thước khác tùy theo mô hình thiết bị, hình cảm ứng với khả tương tác viết - Một bàn phím: bàn phím số hay qwerty - Một khe cắm thêm thẻ nhớ (memory card): nhớ điện thoại Symbian gán nhãn ổ D - Một công RS232: để giao tiếp với PC - Một cổng hồng ngoại Bluetooth cho truyền thông vô tuyến điện thoại Symbian thiết bị khác PC, Laptop, Palm PDA - Nguồn lượng: bao gồm pin đặc thù nguồn điện phụ, thông qua thiết bị phù hợp Symbian sử dụng kỹ thuật hệ điều hành máy tính để bàn: sử dụng kiến trúc trình điều khiển thiết bị cung cấp API để lập trình điều khiển thiết bị ngoại vi Nhưng Symbian có đặc điểm khác so với hệ điều hành máy tính để bàn tài nguyên điện thoại Symbian giới hạn, đĩa cứng nên cách quản trị nhớ dùng nhớ ảo xử lý theo trang thực Symbian Ngoài với nguồn lượng hạn hẹp, Symbian phải thiết kế đặc biệt, chạy ổn định sạc pin hay thay pin 1.5 CÁC MÔ HÌNH THIẾT BỊ VÀ CÁC NỀN HỆ THỐNG SỬ DỤNG HĐH SYMBIAN 1.5.1 Các mô hình thiết bị dùng Symbian Hệ điều hành Symbian thiết kế cho loại thiết bị WID chiến lược Communicator Smartphone Điểm độc đáo Symbian cung cấp hệ điều hành hỗ trợ cho nhiều dòng thiết bị khác vừa đáp ứng sáng tạo riêng nhà sản xuất vừa phục vụ nhiều mục đích sử dụng khác người dùng Mô hình Communicator theo kiểu dáng máy PDA phục vụ cho khả tìm kiếm qua hình cảm ứng hay mô hình Commnicator Crystal có dáng dấp laptop phù hợp cho chức nhập liệu Smartphone có kiểu dáng giống điện thoại di động với bàn phím số phục vụ cho khách hàng vốn trung thành với mobile truyền thống Symbian hỗ trợ mô hình cho hai loại sản phẩm chến lược này: mô hình Crystal, Quartz cho Communicator Pearl cho Smartphone - Mô hình Crystal : loại communicator bỏ túi với hình dáng máy laptop Crystal sử dụng hình màu theo chuẩn ½ VGA bàn phím QWERTY, hỗ trợ hình cảm ứng để nhập liệu với bút stylus Sản phẩm mô hình Crystal Nokia 9210 Communicator Hình 1.1: Máy Nokia 9210 - Mô hình Quartz: loại Communicator với hình dáng máy pocket PC Quartz sử dụng hình màu theo chuẩn 1/4VGA, dùng bút stylus nhập liệu qua tương tác với hình cảm ứng Sản phẩm mô hình Quartz Sony Ericsson P800 Hình 1.2: Thiết kế Quartz - Mô hình Pearl: loại Smartphone với hình dáng điện thoại di động thông thường Pearl hỗ trợ hình màu với nhiều kích thước khác nhau, sử dụng bàn phím số cho nhập liệu, hỗ trợ hình cảm ứng Sản phẩm mô hình Pearl Nokia 7650 Hình 1.3: Các điện thoại Symbian dùng bàn phím số Hình 1.4: Các điện thoại Symbian dùng hình cảm ứng 1.5.2 Các hệ thống sử dụng HĐH Symbian Sự kết hợp hệ điều hành Symbian đặc điểm riêng phục vụ cho dòng thiết bị tạo nhiều hệ thống khác biết: Series 60, Series80, Series90, IQ điện thoại NTT DoCoMo Foma -Series 60: (theo mô hình Smartphone Pearl): kích thước hình 176x208 pixel bao gồm: Nokia 7650 , 3650/3600, 3660/3620, N-Gage, N-Gage QD, 6600, 7610, 6260, 6630, 6670, 3230 hay Panasonic X700, Samsung SGH-D710, Siemens SX1, SendoX, -UIQ: (theo mô hình Communicator Quartz) có kích thước hình 208x320 pixel bao gồm: Sony Ericsson P800, P900, P910, BenQ P30, P31, Motorola A920, A925, A1000, ArimaASP805 -Series 80: (theo mô hình Communicator Crystal) có kích thước hình 480x320 pixel bao gồm: Nokia 9210, 9210i, 9300, 9500 -Series 90: hệ lai UIQ Series 80 mà người ta gọi media phone với sản phẩm Nokia 7710 (cải tiến từ sản phẩm trước Nokia 7700) -Mạng điện thoại NTT Docomo Nhật với dòng máy Fujitsu FOMA F900i, FOMA F2102V, FOMA F2051 (chỉ hỗ trợ Java) Các hệ thống có khác biệt nên hầu hết ứng dụng có giao diện chạy dòng máy Tuy nhiên với chương trình cấp thấp server (chương trình file exe) điều hoàn toàn Không nhà sản xuất tạo khác biệt riêng nên ứng dụng gặp trục trặc chạy loại máy khác dùng chung hệ thống Một đặc điểm máy hệ thống dùng phiên hệ điều hành khác có khác 1.6 TƯƠNG LAI SYMBIAN Mặc dù chiếm thị phần OS cao Mobile OS (khoảng 6070%), nhiều chuyên gia Mobile giới cho mạnh nhất, thị phần mạnh Mobile OS thuộc MobiLinux năm tới Hãng Symbian đẩy mạnh bước cải tiến nhằm tạo điều kiện thuận lợi tối đa cho người dùng mặt công nghệ, chức cực mạnh truy cập Wi-Fi, Camera, tăng cường khả phát triển ứng dụng, phần mềm bảo mật hệ thống với mục tiêu củng cố, giữ vững vị trí hàng đầu thị trường CHƯƠNG II KIẾN TRÚC HỆ THỐNG CỦA HỆ ĐIỀU HÀNH SYMBIAN 2.1 KIẾN TRÚC TỔNG QUAN CỦA HỆ ĐIỀU HÀNH SYMBIAN Symbian hệ thống kết hợp nhiều thành phần khác mà ứng dụng cho nhiều dạng thiết kế khác.Những thành phần tạo nên hệ điều hành Symbian: - Trung tâm hệ điều hành Symbian gọi kernel hay gọi nhân hệ điều hành - Bộ tổng hợp phần trung gian cho việc điều hành gọi midlleware - Tập quản lý tài nguyên, gọi application engines - Khung làm việc cho việc thiết kế giao diện, User Interface Framework - Các phương thức đồng với máy khác, Synchronization Technology * Trung tâm hệ điều hành Symbian gọi kernel hay gọi nhân hệ điều hành Nó bao gồm: Bộ tổng hợp điều khiển thiết bị, bảng liệu, chương trình cho phép người dùng làm việc với phần cứng máy tính Đây phần trung tâm Symbian, có tất thiết bị có hệ điều hành Symbian Hệ điều hành Symbian hệ điều hành dựa mô hình kernel Chỉ có chương trình chạy quản lý dịch vụ cung cấp cho người dùng Chương trình liệu cần phải nhỏ hiệu Chỉ có thành phần điều hành máy tính cần thiết có kernel; chức khác đưa phần (middleware) hay ứng dụng Việc thiết kế làm cho kernel chắn làm cho kiến trúc việc điều hành Symbian uyển chuyển Symbian hệ điều hành 32 bit hỗ trợ làm việc đa nhiệm đa tiến trình Cấu trúc tháo lắp hỗ trợ khuyến khích lượng lớn thành phần giao tiếp hỗ trợ khả thêm thành phần giao tiếp trung tâm để thích nghi với thiết bị phương thức * Một tổng hợp phần trung gian cho việc điều hành, gọi midlleware Thành ngữ middleware thành phần thư viện, kho liệu chương trình thực dịch vụ hệ thống không cần nằm kernel Trong Symbian bao gồm việc thực dịch vụ quản lý liệu, giao tiếp, đồ hoạ Symbian sử dụng server để thực cộng việc middleware Ý tưởng dùng máy chủ quản lý dịch vụ riêng biệt cách chấp nhận yêu cầu 10 từ nhiều nguồn khác - khách (clients) – phối hợp truy xuất thực cách trả lời yêu cầu Bằng cách tạo lớp cho middleware, người thiết kế Symbian làm cho dễ thiết kế dịch vụ hệ thống nâng cấp dịch vụ có sẵn mà không cần viết lại phần hệ điều hành * Một tập quản lý tài nguyên gọi Application Engines Những ứng dụng cấp người dùng Symbian có lợi ích từ việc phối hợp mà middleware cung cấp Việc phối hợp truy cập nguồn tài nguyên không thuộc chất thực thông qua application engines Nó định điểm truy cập đơn lẻ cho ứng dụng cấp người dùng họ truy cập tài nguyên Giống middleware, application engines làm dạng server Điểm khác biệt đến từ khu vực quản lý Application engines quản lý dịch vụ liệu ứng dụng, dịch vụ liệu hướng hệ thống Sự thật giống application engines tương tác với máy chủ middleware Application engines bao gồm Symbian là: -The Agenda engine - The Contacts engine - The Sheet engine - The Alarm server and World Time engine - The Spell engine - The Help engine * Một khung làm việc cho việc thiết kế giao diện, User Interface Framework Từ máy tính sử dụng Symbian thiết bị xách tay nhỏ hướng đến người dùng, giao diện trở nên quan trọng Nó quan trọng giao diện dễ sử dụng, dễ thay đổi, dễ lập trình Hơn nữa, có thiết bị thiết kế chạy Symbian , giao diện phải chuyển đổi Do đó, người thiết kế Symbian chọn khung làm việc, xây dựng giao diện phần trung tâm hệ điều hành Bằng cách chọn khung giao diện đồ họa giao diện cụ thể, người thiết kế đặt tảng cho nhiều giao diện khác xây dựng Trong phiên hành Symbian, có hai giao diện xây dựng khung giao diện đồ họa Những giao diện sử dụng thành phần GUI phổ biến, điều khiển hội thoại Hiện tại, thành phần GUI Uikon Standard Eikon Thư viện Uikon bao gồm thành phần phổ biến rộng rãi Standard Eikon bao gồm mã bắt đầu cho đoạn chương trình xảy thiết kế, hàm cụ thể phải thêm vào Ý nghĩa cấu trúc cho phép thêm điều khiển thay đổi giao diện mà không cần làm ảnh hưởng đến điều khiển riêng 49 CHƯƠNG XÂY DỰNG ỨNG DỤNG 4.1 HƯỚNG TIẾP CẬN Ứng dụng để mô chọn phần mềm tra cứu từ điển Đây ứng dụng đơn giản có tính phổ cập nên ứng dụng cần đáp ứng yêu cầu chạy nhiều dòng máy , đời máy Vì ứng dụng đuợc xây dựng tảng J2ME 4.2 THIẾT BỊ ĐƯỢC SỬ DỤNG ĐỂ MÔ PHỎNG - Chuơng trình đuợc xây dựng với mô … đuợc chạy thử máy Nokia N72 sử dụng Symbian OS 8.1, Series 60 UI 2.8 , MIDlet 2.0 4.3 THIẾT KẾ KIẾN TRÚC VÀ CHỨC NĂNG CỦA ỨNG DỤNG 4.3.1 Chức phần mềm tra cứu từ điển mobile Công cụ cần thiết học ngoại ngữ từ điển Người học vất vả nhiều thời gian phải tra từ từ điển dày cộp Giải pháp đáp ứng nhu cầu sử dụng ứng dụng từ điển thiết bị mobile nhỏ gọn, nhanh chóng, dễ dàng có khối lượng từ lớn 4.3.2 Thiết kế kiến trúc ứng dụng 4.3.2.1 Phân tích thiết kế hệ thống tra cứu từ điển chức a Mô hình hoạt động từ điển: Từ cần tra Thông tin Hệ thống User User b Mô hình hoạt động người dùng nhập vào từ cần tra: Từ cần tra Hệ thống User Thông tin User File liệu 50 c Hệ thống tra cứu từ điển moblie bao gồm chức sau: - Tra cứu từ điển Anh - Việt - Tra cứu từ điển Việt – Anh Biểu đồ phân cấp chức BPC: Hệ thống tra cứu từ điển Tra cứu từ điển Anh – Việt Tra cứu từ điển Việt - Anh Biểu đồ 1: Biểu đồ phân cấp chức BPC Biểu đồ luồng liệu: Từ cần tra Người sử dụng Hệ thống tra cứu từ điển Nghĩa từ Biểu đồ 2: Biểu đồ luồng liệu mức Biểu đồ luồng liệu mức 1: 51 từ cần tra Người sử dụng 1.0 2.0 Tra cứu từ điển Anh – Việt Tra cứu từ điển Việt - Anh nghĩa từ từ cần tra Người sử dụng nghĩa từ File liệu Biểu đồ 3: Biểu đồ luồng liệu mức 4.3.2.2 Kiến trúc ứng dụng a Giao diện Chương trình gồm form: - Tìm kiếm - Cài đặt Thông tin tác giả b Cơ sở liệu : CSDL chương trình thiết kế sử dụng file text (text) Các từ ghi vào file text khác dựa vào chữ đầu từ Cái file đánh tên chữ đầu , danh sách chữ đầu tên file lưu vào file mục để tiện cho việc tìm kiếm c Thuật toán sử dụng để tìm kiếm từ thuật toán tìm kiến nhị phân Nội dung thuật toán: Điều kiện để thực thuật toán danh sách có thứ tự Bước 1: Phạm vi tìm kiếm ban đầu toàn danh sách Bước 2: Lấy khóa phần tử phạm vi tìm kiếm ( gọi y so sánh với x) Nếu x = y ta tìm thấy khóa này, thuật toán kết thúc thành công Nếu x < y phạm vi tìm kiếm phần tử nằm phía trước y Nếu x > y phạm vi tìm kiếm phần tử nằm phía sau y Bước 3: Nếu tồn phạm vi tìm kiếm lặp lại bước 2, ngược lại giải thuật kết thúc thành công Hàm Binary_Search trả số phần tử tìm thấy trả giá trị không tìm thấy 52 d Mô tả hoạt động số đoạn mã chương trình 4.3.2.3 Mô tả hoạt động Giao Diện chương trình Hình 4.1: Giao diện chương trình Khi muốn tìm từ đó, ví dụ ta tìm từ “Hello”, ta gõ chữ muốn tìm 53 Khi chương trình bắt đầu chạy thread chạy theo: // Phương thức chạy chương trình public void startApp() throws MIDletStateChangeException { SearchThread.startSearch(); …… } Thread có tác dụng nhận liệu chuyển tới từ điều khiển (ô tìm kiếm), tìm kiếm từ * Hiển thị kết Tại form tìm kiếm, điều khiển theo dõi, lằng nghe kiện: //this – nhằm để đối tượng SearchForm setItemStateListener(this); setCommandListener(this); Khi điều khiển có thay đổi trạng thái (ở ô tìm kiếm ) phương thức tương ứng (itemStateChanged) kích hoạt Phương thức có tác dụng gửi liệu từ ô tìm kiếm đến luồng tìm kiếm xử lý 54 public void itemStateChanged(final Item item) { try { Thread.sleep(1500); // Lấy liệu từ ô tìm kiếm searchField String searchWord = this.searchField.getString(); if (!this.prevSearchWord.startsWith(searchWord)) { this.statusItem.setText(Strings.SEARCHING_FOR + ' ' + searchWord + '\n'); // Gửi đến luồng tìm kiếm tham số : từ cần tìm , số lượng kết hiển thị,chuỗi trạng thái SearchThread.getSearchThread().searchFor(searchWord, this.resultItem, this.statusItem); } this.prevSearchWord = searchWord; } catch (InterruptedException ex) { ex.printStackTrace(); } } Lớp SearchThread: public void searchFor(final String word, final StringItem stringItem, final StringItem statusItem) { if (!word.equals("")) { this.searchWord = word; this.refreshItem = stringItem; this.searchStatusItem = statusItem; synchronized(this) { notifyAll(); // gọi lại phương thức Run () } } } 55 Phương thức Run: public void run() { String word = ""; try { // Khi thread chạy , kết tìm thấy thread tạm dừng để đợi while (running) { if (this.searchWord.equals(word)) { waitToInterrupt(); } else { // Khi có từ nhập vào word = this.searchWord; // Khởi tạo đối tượng Dictionary final Dictionary dictionary = Dictionary.getDictionary(); // Thiết lập số lượng kết trả final int maxResults = AppSettings.getSettings() getMaxResultCount(); // Kết tìm kiếm trả việc với kiểu Vector (dạng mảng với kích thước động ) final Vector result = dictionary.findWord(word, maxResults); if (result == null) { this.searchStatusItem.setText(Strings.NO_MATCH_FOR + ' ' + word + '\n'); } else // Nếu có kết trả cật nhật lại hình updateScreen(result); } 56 Phương thức findWord: public Vector findWord(final String word, final int resultCount) { // chuyển từ cần tìm thành chữ thường final String wordSmallCases = word.toLowerCase(); // getFileName() : lấy tên file từ điển dựa vào chữ đầu từ cần tìm final String fileName = this.dictIndex.getFileName(wordSmallCases); if (fileName == null) return null; // lấy liệu từ file chứa từ vào nhớ if (!fileName.equals(this.currentFileName)) loadDictionary(fileName); // Tìm kiếm nhị phần trả thứ tự từ gần final int startIndex = binSearch(wordSmallCases); // linearSearch : tìm kiếm từ / gần theo số lượng kết trả từ gần final Vector resultsVector = linearSearch(startIndex, wordSmallCases, resultCount); return resultsVector.size() > ? resultsVector : null; } 57 Phương thức getFileName(final String word): có tác dụng dựa vào từ nhập vào (chữ đầu tiên) file mục index.dat trả tên tệp chứa từ File index.dat có cấu trúc: a:a-a.txt e:e-e.txt p:p-p.txt s:s-s.txt v:v-v.txt h:h-h.txt i:i-i.txt d:d-d.txt … Ví dụ ta tìm từ “ hello”, chữ đầu h thì: final String fileName = this.dictIndex.getFileName(wordSmallCases); filename = “h.txt” Sau chương trình load file h.txt , cấu trúc file “h.txt” sau 27 Ha |(n) Sự ngạc nhiên - ha Haaf|(n) - khu vực đánh cá biển Haar| (n) - Sương mù, sa mù Habanera| (n) - điệu nhảy Cuba Habascorpus| (n) - Luật định quyền giam giữ Haberdasher|(n) - Người bán đồ tạp hóa Haberdashery| (n) - Đồ tạp hóa, cửa hàng bán đồ tạp hóa Habergeon|(n) - áo giáp không tay đan sắt Habile| (n) - khéo léo, lưu loát, bay bướm Habiliment| (n) - đồ dùng, dụng cụ … 58 Dòng số từ có từ , từ file bắt đầu vần “H” , xếp theo thứ tự ABC Mỗi dòng gồm phần ngăn cách dấu “|” , phần bên trái từ cần tra , bên phải nghĩa từ Tương tự với từ có chữ đầu khác Khi load từ vào nhớ chương trình đọc dòng , dòng để lấy số phần tử để khởi tạo mảng lưu trữ , từ dòng cắt thành phần thông qua kí tự “|” lưu phần vào mảng Có mảng lưu trữ dictKeys[] dictValues[] final int startIndex = binSearch(wordSmallCases); Phương thức binSearch() : sử dụng thuật toán tìm kiếm nhị phân để trả lại thứ tự từ tìm thấy gấn private int binSearch(final String word) { int low = 0; int high = this.dictKeys.length - 1; int startIndex = low; int compar = 0; for (int i=0; i < BIN_ITER; i++) { startIndex = (high + low) / 2; final String dictWord = this.dictKeys[startIndex].toLowerCase(); compar = word.compareTo(dictWord); if (compar < 0) high -= (high - low) / 2; else if (compar > 0) low += (high - low) / 2; else break;//word found System.out.println("low=" + low + " high=" + high + " compare=" +compar + " startindex=" +startIndex ); } if (compar = 2*maxResults) return resultsVector; } if (exitFlag) break; } return resultsVector; } 60 Hình 4.2: Hoạt động chương trình 61 Gõ tiếp chữ “E” Hình 4.3: Hoạt động chương trình 62 63

Ngày đăng: 02/09/2016, 11:14

HÌNH ẢNH LIÊN QUAN

Hình 1.2: Thiết kế Quartz - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 1.2 Thiết kế Quartz (Trang 6)
Hình 1.1: Máy Nokia 9210 - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 1.1 Máy Nokia 9210 (Trang 6)
Hình 1.4: Các điện thoại Symbian dùng màn hình cảm ứng - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 1.4 Các điện thoại Symbian dùng màn hình cảm ứng (Trang 7)
Hình 1.3: Các điện thoại Symbian dùng bàn phím số - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 1.3 Các điện thoại Symbian dùng bàn phím số (Trang 7)
Hình 2.4:  Framework - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 2.4 Framework (Trang 14)
Hình 2.9: Java Runtime - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 2.9 Java Runtime (Trang 18)
Hình 2.11: Các APIs mà hệ điều hành Symbian cung cấp - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 2.11 Các APIs mà hệ điều hành Symbian cung cấp (Trang 20)
Hình 2.13: Bộ nhớ RAM - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 2.13 Bộ nhớ RAM (Trang 24)
Hình 3.1: So sánh giữa các phiên bản Java - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.1 So sánh giữa các phiên bản Java (Trang 31)
Hình 3.2: Kiến trúc J2ME - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.2 Kiến trúc J2ME (Trang 33)
Hình 3.3: Các tầng của DLDC J2ME - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.3 Các tầng của DLDC J2ME (Trang 33)
Hình 3.4: Tiến trình xây dựng MIDlet - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.4 Tiến trình xây dựng MIDlet (Trang 35)
Hình 3.5: Các dòng máy hỗ trợ MIDP - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.5 Các dòng máy hỗ trợ MIDP (Trang 38)
Hình 3.6: MIDlet - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.6 MIDlet (Trang 39)
Hình 3.7: Sơ đồ chu kỳ sống của MIDlet - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.7 Sơ đồ chu kỳ sống của MIDlet (Trang 40)
Hình 3.8: Sơ đồ các bộ MIDlet - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.8 Sơ đồ các bộ MIDlet (Trang 42)
Hình 3.9: Hai mức đồ họa - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.9 Hai mức đồ họa (Trang 43)
Hình 3.10: Phân cấp lớp đồ hoạ - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.10 Phân cấp lớp đồ hoạ (Trang 44)
Hình 3.11:Công cụ Wireless toolkit hỗ trợ phát triển Symbian OS - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 3.11 Công cụ Wireless toolkit hỗ trợ phát triển Symbian OS (Trang 48)
Hình 4.1: Giao diện chính của chương trình - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 4.1 Giao diện chính của chương trình (Trang 52)
Hình 4.3: Hoạt động của chương trình - Tìm hiểu lập trình trên mobile và xây dựng ứng dụng trên hệ điều hành symbian
Hình 4.3 Hoạt động của chương trình (Trang 61)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w