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

Tìm hiểu hệ điều hành android xây dựng ứng dụng trò chơi xếp hình trên điện thoại di động

81 16 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 81
Dung lượng 1,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tên đề tài Nghiên cứu công nghệ phát triển Trò chơi trên điện thoại di động sử dụng hệ điều hành android ứng dụng vào xây dựng trò chơi Xếp hình với 2 chức năng: người chơi offline với

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM

KHOA TIN HỌC



KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN

NGÀNH CÔNG NGHỆ THÔNG TIN

Trang 2

Đầu tiên, Em xin gởi lời cảm ơn chân thành đến các Thầy, Cô ở khoa Tin học, trường Đại học Sư Phạm, Đại học Đà Nẵng, đã tận tình dạy dỗ, dìu dắt em suốt các năm theo học đại học

Em xin gửi lời cảm ơn đến thầy Lê Văn Sơn, người tận tình hướng dẫn, giúp đỡ, động viên em hoàn thành luận văn này

Cuối cùng, con cảm ơn Ba, Mẹ và những người thân đã khích lệ, động viên con trong thời gian học tập, nghiên cứu để có được thành quả như ngày hôm nay

Em chân thành cảm ơn

Đà Nẵng, ngày 08 tháng 05 năm 2013 Sinh viên thực hiện

Nguyễn Văn Phương

Trang 3

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy Lê Văn Sơn

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm

Sinh viên

Nguyễn Văn Phương

Trang 4

MỤC LỤC

MỞ ĐẦU ……….1

I Đặt vấn đề 1

II Mục đích, ý nghĩa và phạm vi đề tài 1

II.1 Tên đề tài 1

II.2 Mục đích và ý nghĩa 2

II.3 Phạm vi đề tài 2

III Những việc sẽ giải quyết trong đề tài 2

III.1 Các bước thực hiện 2

III.2 Dự kiến kết quả đạt được 2

IV Nội dung luận văn tốt nghiệp 3

CHƯƠNG I GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID……… 4

I Sơ lược về các hệ điều hành 4

I.1 Các chức năng chính của hệ điều hành 4

I.2 Các thành phần của hệ điều hành 5

I.3 Phân loại hệ điều hành 5

II Tổng quan về hệ điều hành Android 6

II.1 Lịch sử Android 6

II.2 Các phiên bản của hệ điều hành Android (Android Platform) 7

II.3 Ứng dụng của Android và sự phát triển của Android trong tương lai 7

III Kiến trúc hệ điều hành Android 8

III.1 Các thành phần cấu tạo nên Android (Android Architecture) 8

III.2 Hệ thống tập tin trên hệ điều hành Android 11

III.3 So sánh giữa các hệ điều hành 13

III.4 Các thành phần tạo nên ứng dụng Android (Android Application Components) 14

CHƯƠNG II LẬP TRÌNH ỨNG DỤNG TRÊN HĐH ANDROID……… 23

I Lập trình ứng dụng Android 23

I.1 Thiết lập môi trường phát triển ứng dụng 23

I.2 Các thành phần trong Android Project 23

II Mô hình Web service 25

Trang 5

II.3 Kiến trúc của dịch vụ Web 28

II.4 Xây dựng dịch vụ Web 29

III Công nghệ Bluetooth và lập trình với Bluetooth trên Android 31

III.1 Khái niệm công nghệ Bluetooth 31

III.2 Lập trình với Bluetooth trên Android 31

CHƯƠNG III XÂY DỰNG ỨNG DỤNG TRÒ CHƠI XẾP HÌNH…… 37

I Phân tích 37

I.1 Mô tả bài toán 37

I.2 Luật chơi và cách chơi 39

I.3 Cách tính điểm 39

I.4 Đối tượng người chơi 40

I.5 Phân tích yêu cầu 40

II Thiết kế 41

II.1 Use Case 41

II.2 Xây dựng kiến trúc chương trình 42

II.3 Xây dựng cấu trúc dữ liệu và thuật toán 44

II.4 Biểu đồ lớp 47

II.5 Biểu đồ trạng thái 49

II.6 Các màn hình chính trong trò chơi 51

II.7 Cài đặt và kiểm thử 55

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……….66

III Kết quả đề tài 66

III.1 Những kết quả đã làm được 66

III.2 Những vấn đề chưa làm được 66

IV Hướng phát triển đề tài 66

IV.1 Lưu trạng thái của trò chơi khi Người chơi rời khỏi ứng dụng 67

IV.2 Hoàn thiện mô hình phát triển trò chơi online 67

PHỤ LỤC ………68

TÀI LIỆU THAM KHẢO……… 69

Trang 6

Hình 6 Truyền Intent và số liệu sang Activity khác 21

Trang 7

Hình 16 Biểu đồ lớp AndroidFileIO 47

Hình 21 Biểu đồ trạng thái cho toàn bộ hệ thống 50

Hình 25 Màn hình đăng nhập theo tài khoản đăng ký ở hệ thống 52

Hình 26 Màn hình đăng nhập theo tài khoản không cần đăng kí bởi

hệ thống

53

Hình 29 Màn hình thông tin về tác giả của sản phẩm 54

Hình 30 Màn hình thông tin chi tiết của người chơi 55

Trang 8

STT TÊN BẢNG TRANG

Bảng 3 Bảng hai phương thức trong một activity 15

Bảng 7 Các công cụ phát triển ứng dụng về phần cứng 68

Bảng 8 Các công cụ phát triển ứng dụng về phần mềm 68

Trang 9

STT TÊN VIẾT TẮT TÊN ĐẦY ĐỦ

Trang 10

MỞ ĐẦU

I Đặt vấn đề

Từ lâu trò chơi là một phần không thể thiếu trên các máy điện thoại di động Một trong số đó là trò chơi Snake được bắt nguồn từ một chiếc điện thoại di động mà Nokia trình làng năm 1997 có tên là Nokia 6110 đã mở ra một kì nguyên mới cho lĩnh vực lập trình trò chơi trên điện thoại di động

Nhưng với sự hạn chế về đồ họa, tốc độ xử lý, cốt truyện trò chơi đã nhanh chóng gây nhàm chán đối với người chơi Và các công nghệ lập trình game lần lượt

ra đời như Brew, App Store, J2ME và đặc biệt là Android Android là hệ điều hành

trên điện thoại di động được xây dựng dựa trên nền tảng Linux Ban đầu nó được phát triển bởi Android Inc, và đã được Google mua lại, và gần đây là liên minh thiết

bị cầm tay mở rộng (Open Handset Alliance) Android cho phép các nhà phát triển

viết mã được quản lý bằng ngôn ngữ Java, điều khiển thiết bị thông qua các thư viện Java do Google phát triển

Các thiết bị di động sử dụng hệ điều hành Android với phần cứng mạnh mẽ, các nút bấm chơi trò chơi chuyên dụng Thế giới trò chơi trên smart phone lại gần như thống trị cả thế giới Trò chơi được xây dựng trên các thiết bị di động này có hình ảnh mượt mà hơn, tốc độ xử lý mạnh mẽ hơn cùng với những hiệu ứng rất gần với thực tế hơn

Cùng với đó là các loại hình trò chơi trí tuệ luôn có khả năng thu hút số đông người chơi, đặc biệt là số người chơi thích thử thách, đấu trí

Vì vậy em quyết định phát triển trò chơi Xếp hình với phiên bản Slide Block trên thiết bị di động sử dụng hệ điều hành Android(2.2) Với mục đích tìm hiểu rõ hơn

về Android, các tính năng của nó và nâng cao kĩ thuật lập trình cá nhân Hi vọng sẽ tạo ra được một sản phẩm có ích, đẹp mắt thu hút người chơi

II Mục đích, ý nghĩa và phạm vi đề tài

II.1 Tên đề tài

Nghiên cứu công nghệ phát triển Trò chơi trên điện thoại di động sử dụng hệ điều hành android ứng dụng vào xây dựng trò chơi Xếp hình với 2 chức năng: người chơi offline với 3 cấp độ Dễ, Bình thường,Khó, và người chơi cũng có thể chơi online với nhiều người chơi khác thông qua bluetooth và internet Người chơi có thể

Trang 11

đăng nhập vào trò chơi thông qua 2 quyền user: người chơi đăng nhập với quyền Guest thông tin của người chơi không được lưu trữ lại trên hệ thống, và người chơi đăng nhập với tài khoản đã đăng kí của hệ thống thì thông tin sẽ được lưu trữ lại

II.2 Mục đích và ý nghĩa

Xây dựng ứng dụng trò chơi trên với mục đích và ý nghĩa như sau:

 Tạo ra một ứng dụng trò chơi Xếp hình trên thiết bị di động sử dụng hệ điều hành Android với giao diện trực quan, đẹp mắt phục vụ nhu cầu giải trí đặc biệt là những người đam mê, thích thử thách Trí tuệ

 Nâng cao kĩ năng lập trình, quản lý dự án, giải quyết vấn đề

 Nghiên cứu và nắm bắt được nền tảng lập trình trên hệ điều hành android

 Sử dụng thành thạo một số công cụ hỗ trợ trong môi trường làm việc

II.3 Phạm vi đề tài

Ứng dụng trên các thiết bị di động sử dụng trên hệ điều hành Android 2.2 có

hỗ trợ kết nối Internet và Bluetooth Slide Block là một trò chơi trí tuệ có khả năng:

 Người chơi có thể chơi nhiều cấp độ Nâng cao kĩ năng logic cũng như đây là một hình thức giải trí

 Chơi với bạn bè trên thiết bị di động có hỗ trợ kết nối Internet, nâng tính cạnh tranh giữa các người chơi, kích thước màn hình tương tự nhau

III Những việc sẽ giải quyết trong đề tài

III.1 Các bước thực hiện

 Tìm hiểu thông tin liên quan

 Xem xét bàn bạc tính khả thi của các yêu cầu trong ứng dụng

 Xác định thời gian thực hiện và hoàn thành dự án

 Lên kế hoạch để thực hiện dự án

 Phân tích các yêu cầu của dự án

 Phân tích thiết kế từng chi tiết của từng module

 Dựa vào bảng phân tích thiết kế tiến hành code ứng dụng

 Tiến hành kiểm thử ứng dụng

 Báo cáo sẽ được viết song song trong suốt quá trình làm dự án

III.2 Dự kiến kết quả đạt được

Slide Block hi vọng sẽ đáp ứng được một số yêu cầu như sau:

Trang 12

 Xây dựng hoàn chỉnh 2 chức năng

 Đồ họa của ứng dụng đẹp mắt, các thao tác khi chơi đơn giản và tiện dụng

IV Nội dung luận văn tốt nghiệp

Toàn bộ luận văn gồm có 3 chương và phần mở đầu:

Mở đầu

Chương 1: Hệ điều hành Android

Chương 2: Tìm hiểu lập trình ứng dụng trên nền tảng Android

Chương 3: Xây dựng ứng dụng trò chơi Xếp hình

Kết luận và hướng phát triển đề tài

Trang 13

CHƯƠNG I GIỚI THIỆU HỆ ĐIỀU HÀNH

ANDROID

I Sơ lược về các hệ điều hành

Hệ điều hành là chương trình chạy trên hệ thống máy tính, quản lý các tài

nguyên trên máy tính và là môi trường cho các chương trình ứng dụng chạy trên nó

[6]

Ngày nay, khái niệm hệ điều hành không chỉ là trên máy mà còn được mở

rộng cho nhiều thiết bị điện tử khác chẳng hạn như điện thoại thông minh (smart

phone), các thiết bị cầm tay PDA

Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống máy có tính

di dộng cao Với đặc thù đó, hệ điều hành di động phải có những khả năng đặc biệt

mà những hệ điều hành thông thường không có được Chẳng hạn như nó phải chạy

trên hệ thống máy có cấu hình máy hạn chế về tốc độ xử lý, bộ nhớ sử dụng, phải

chạy được ổn định liên tục trong một thời gian dài mà chỉ sử dụng một lượng điện

năng nhỏ, trong suốt thời gian chạy đó có thể duy trì các kết nối mạng không dây để

đảm bảo việc liên lạc

Một số hệ điều hành tiêu biểu:

 Trên máy tính cá nhân: MS DOS, MS WINDOW, MACOS, LINUX,

UNIX

 Trên điện thoại thông minh: Android, Symbian, Window Mobile, iPhone

OS, BlackBerry, S60, Bada OS, Palm OS

 Ngoài ra còn có các hệ điều hành chạy trên mainframe, server, thẻ chip

I.1 Các chức năng chính của hệ điều hành

Hệ điều hành có 2 chức năng chính sau:

 Quản lý chia sẻ tài nguyên Tài nguyên ở đây là bao gồm:

+ Tài nguyên phần cứng (CPU, bộ nhớ, các thiết bị)

+ Tài nguyên phần mềm (các file, chương trình dùng chung)

Trang 14

 Tạo lập môi trường ảo ít phụ thuộc vào phần cứng để các phần mềm ứng dụng hoạt động, phục vụ người dùng [6]

I.2 Các thành phần của hệ điều hành

Hệ điều hành nói chung gồm các thành phần sau:

I.3 Phân loại hệ điều hành

Theo loại thiết bị mà hệ điều hành hoạt động gồm có:

 Hệ điều hành dành cho máy MainFrame

 Hệ điều hành dành cho máy Server

 Hệ điều hành dành cho máy nhiều CPU

 Hệ điều hành dành cho máy tính cá nhân (PC)

 Hệ điều hành dành cho máy PDA

 Hệ điều hành dành cho máy chuyên biệt

 Hệ điều hành dành cho thẻ chip (SmartCard)

Theo số user và số chương trình cùng hoạt động gồm có:

 Hệ điều hành đơn nhiệm một người dùng

 Hệ điều hành đa nhiệm một người dùng

 Hệ điều hành đa nhiệm nhiều người dùng

Theo góc độ người dùng gồm có:

 Một người dùng

Trang 15

 Nhiều người dùng (mạng ngang hàng, mạng có máy chủ)

Theo hình thức xử lý:

 Hệ thống xử lý theo lô

 Hệ thống xử lý theo lô đa chương

 Hệ thống chia sẻ thời gian

Tháng 7 năm 2005, Google mua lại Android Inc, đó là tên một dự án do một số công ty nhỏ thành lập có trụ sở tại Palo Alto, California, USA Những nhà đồng sáng lập nên Android được chuyển sang làm việc tại Google trong đó có Andy Rubin ( đồng sáng lập công ty Danger ), Rich Miner (đồng sáng lập công ty Wildlife Communication), Nick Sears (từng là phó chủ tịch T-Mobile) và Chris white (trưởng nhóm thiết kế và phát triển giao diện tại WebTV) Tại thời điểm đó có rất ít thông tin về dự án Android, ngoại trừ việc họ đang phát triển phần mềm cho điện thoại di động [7]

Ở trụ sở của Google, nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết

bị di động dựa trên nhân Linux Đến tháng 9 năm 2007, InformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động [7]

Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở rộng OHA (Open Handset Alliance) bao gồm nhiều công ty trong đó có Google, HTC, Intel, LG, Motorola, Nvidia, Qualcomm, Samsung Elecstronic, T-Mobile, Sprint Nextel, Tập đoàn Marvell Technology, Texas Instruments, Tập đoàn Broadcom được thành lập

Trang 16

lập OHA, họ đồng thời giới thiệu Android một nền tảng cho thiết bị di động được xây dựng trên nhân Linux version 2.6 [7]

II.2 Các phiên bản của hệ điều hành Android (Android Platform)

Hình 1 Biểu tượng cho một số phiên bản Android

II.3 Ứng dụng của Android và sự phát triển của Android trong tương lai

Android chỉ mới hiện diện trên thị trường điện thoại di động vào năm 2008 nhưng đã có những bước tiến vượt bậc trong lĩnh vực phát triển ứng dụng cho thiết

bị Mobile và Smartphone [7]

Tuy là một nền tảng đi sau nhưng số lượng ứng dụng Android tăng nhanh chóng, từ năm 2008 đến tháng 1 năm 2012 thì số ứng dụng của Android lên đến 130.000 ứng dụng tăng gấp 6 lần [7]

Các hãng sản xuất thiết bị di động như Samsung, HTC, Motorola, LG, Acer, Sony đã có hướng chọn việc phát triển các thiết bị di động của mình chạy hệ điều hành Android làm chiến lược Mặc dù hầu hết các ứng dụng hiện trên Android Market đa số là miễn phí ( 57 % ) nhưng bù lại Android lại đang có đông đảo người

sử dụng ưa thích cho đến hiện tại và số lượng sẽ còn tiếp tục tăng trong tương lai Bên cạnh đó sự ra mắt của các dòng sản phẩm Smartphone chạy nền Android gần đây như sự bùng nổ mạnh mẽ của công nghệ này, chứng tỏ vai trò của mình trong thế giới thiết bị thông minh

Trang 17

Lấy dẫn chứng cụ thể hãng điện thoại Samsung ra mắt chiếc điện thoại đình đám Samsung Galaxy SII chạy hệ điều hành Android 2.3 vào ngày 22 tháng 3 năm

2011 và ngày 14 tháng 3 vừa qua cho ra mắt chiếc điện thoại Samsung Galaxy S4

Hình 2 Samsung Galaxy S 4

Đầu tháng 3 năm 2011 Google cho phát hành phiên bản SDK r10 hỗ trợ công

cụ phát triển ứng dụng cho nền tảng Android 3.0, một nền tảng mới đầy hứa hẹn mở

ra kỷ nguyên cho các thiết bị thông minh Đặc biệt hơn phiên bản này đã được cài đặt trên một dòng máy của Motorola-Xoom Tablet [7]

III Kiến trúc hệ điều hành Android

III.1 Các thành phần cấu tạo nên Android (Android Architecture)

Trang 18

III.1.1 Tầng Application

Android cung cấp bộ ứng dụng cốt lõi bao gồm một ứng dụng email, chương trình tin nhắn SMS, lịch, bản đồ, trình duyệt, địa chỉ liên hệ Tất cả các ứng dụng được viết bằng ngôn ngữ lập trình Java

III.1.2 Tầng Application Framework

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển, lập trình viên khả năng xây dựng các ứng dụng vô cùng phong phú và sáng tạo Các nhà phát triển, lập trình viên có thể tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, chạy các dịch vụ nền, thiết lập hệ thống cảnh báo,

và thêm các thông báo trạng thái và nhiều hơn nữa

Các lập trình viên có toàn quyền truy cập đến các API trong cùng một Framework, thường được sử dụng bởi các ứng dụng cơ bản Kiến trúc của tầng ứng dụng được thiết kế đơn giản cho việc tái sử dụng các thành phần; bất kỳ ứng dụng nào cũng có thể public và các ứng dụng khác có thể sử dụng chúng Cơ chế này cho phép các thành phần tương tự được thay thế bởi người dùng

Tất cả các ứng dụng cơ bản là một tập hợp các dịch vụ và các hệ thống, bao gồm:

 Có nhiều thành phần phong phú và mở rộng cho việc thể hiện (Views)

UI và xây dựng ứng dụng như List, Grid, Text box, Button và thậm chí các mã nhúng cho một trình duyệt web

 Content Providers cho phép các ứng dụng có thể truy cập dữ liệu từ những ứng dụng khác ( như là Contact) hoặc để chia sẻ dữ liệu với các ứng dụng khác

 Một Resource Manager cung cấp truy cập đến các tài nguyên Phi Mã (Non-code) như Strings, Graphic, và các file Layout

 Một Notification Manager cho phép tất cả các ứng dụng hiển thị những thông báo trên thanh trạng thái

 Một Activity Manager thì quản lý vòng đời của một ứng dụng và cung cấp một Navigation Backstack phổ biến

Trang 19

 Sureface Manager: quản lý truy cập để hiển thị các subsystem và seamlessly

 Libwebcore một engine web mạnh mẽ chứa những tính năng của trình duyệt web Android và trình duyệt web nhúng

 SGL có các thư viện hỗ trợ cho lập trình 2D

 3D Libraries OPEN GL hỗ trợ cho lập trình 3D

 Freetype

SQLite một cơ sở dữ liệu nhỏ gọn nhưng mạnh mẽ cho tất cả các ứng dụng

III.1.4 Tầng Android Runtime

Android bao gồm một tập hợp các thư viện cơ bản cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java

Mỗi ứng dụng Android chạy trong quá trình riêng của nó với trường hợp riêng của mình, của máy ảo Dalvik Dalvik được viết sao cho thiết bị có thể chạy nhiều máy ảo (VMs) một cách hiệu quả Các máy ảo Dalvik thực thi các file trong một Dalvik Executable (.dex) được tối ưu hóa trong bộ nhớ một cách tối thiểu VM dựa trên đăng ký và chạy các lớp được biên dịch bởi trình biên dịch ngôn ngữ Java mà được chuyển đổi thành định dạng file dex bởi các công cụ “dx”

Các máy ảo Dalvik dựa trên nhân Linux cho các chức năng cơ bản như luồng

và quản lý bộ nhớ ở mức độ thấp

Trang 20

III.1.5 Linux Kernel

Android được xây dựng dựa trên Linux phiên bản 2.6 cho hệ thống bao gồm các dịch vụ cốt lõi như bảo mật, quản lý bộ nhớ, quản lý tiến trình, mạng ngăn xếp (network stack) và mô hình điều khiển (driver model) Hạt nhân (Kernel) cũng hoạt động như một lớp trừu tượng hóa giữa phần cứng và phần còn lại của phần mềm ngăn xếp

III.2 Hệ thống tập tin trên hệ điều hành Android

Vì được phát triển từ nhân Linux nên hệ thống tập tin trên Android cực kỳ giống hệ thống tập tin trên Linux như là về cách tổ chức, những quyền hạn của người sử dụng lên tập tin

III.2.1 Tổng quan về hệ thống tập tin trên Android

Trong Android, các tập tin được tổ chức thành các thư mục, theo mô hình phân cấp Tham chiếu đến một file bằng tên và đường dẫn Các câu lệnh thao tác tập tin cho phép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với các thư mục con chứa trong nó

Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phẩy để đặt tên tập tin Không được bắt đầu một tên tập tin bằng dấu chấm hay chữ số Những

ký tự khác như „/‟, „?‟, „*‟, là ký tự đặc biệt được dành riêng cho hệ thống Chiều dài của tên file có thể tới 256 ký tự Trong hệ điều hành Android có sự phân biệt tên file chữ hoa và chữ thường, điều đó có nghĩa là trong cùng 1 thư mục có thể tồn tại những file có tên là File, FILE, file và chúng là những file khác nhau

Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte (byte stream) Cấu trúc thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần dữ liệu trong hệ thống Thư mục cũng như các thiết bị được xem như file Chính việc xem mọi thứ như các file cho phép Android quản lý và chuyển đổi

dữ liệu một cách dễ dàng Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng đặc biệt Các thành phần được xem như các file, chúng

được phân biệt dựa trên kiểu file: ordinary file, directory file, character device file,

và block device file

III.2.2 Các kiểu file trên Android

Trong nhiều hệ điều hành như Window, người ta phân biệt rõ file (tập tin)và folder (hay directory: thư mục) là 2 thành phần khác hẳn nhau Tuy nhiên trên hệ

Trang 21

điều hành Android (cũng như Linux) thì coi directory cũng là file và nó là một loại file đặc biệt Thực tế còn một số loại file nữa có thể liệt kê theo bảng sau:

B File kiểu khối (block-type special file)

C File kiểu ký tự (character-type file)

L Liên kết tượng trưng (symbolic link)

- File bình thường (regular file)

Bảng 1 Kiểu file trong Linux III.2.3 Tổ chức quyền sở hữu và quyền hạn trên file

Tương tự trên hệ thống Linux, trên hệ điều hành Android, một file có thể liên kết với một người sử dụng và một nhóm người sử dụng Sự liên kết đó là một tập hợp các quyền hạn truy cập bao gồm quyền được phép đọc (read), được phép ghi (write) và được phép thực thi (excute)

Cụ thể như sau: Một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau: Với ký tự r w x nghĩa là có quyền tương ứng với ký tự viết tắt đó, - nghĩa

là không có quyền hạn đó

r/- w/- x/- r/- w/- x/- r/- w/- x/-

Bảng 2 Quyền sở hữu và quyền hạn trên file

 3 ký tự đầu tiên là quyền hạn chủ nhân file

 3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file

 3 ký tự cuối là quyền hạn của những người không thuộc nhóm sở hữu file

Trang 22

III.2.4 Cây thư mục trên hệ điều hành Android

Thư mục (có thể gọi là file) root là thư mục gốc của tất cả các file thư mục còn lại Dưới nó có chứa một số file thư mục hệ thống Mỗi thư mục (trừ thư mục root) đều có một thư mục cha chứa nó, bản thân nó cũng có thể có nhiều file thư mục con

III.3 So sánh giữa các hệ điều hành

III.3.1 So sánh giữa hệ điều hành trên di dộng và hệ điều hành trên máy tính

Giống nhau về bản chất hệ điều hành, những thành phần lõi hệ điều

hành

Khác nhau:

 Hệ điều hành di động: hoạt động trên các thiết bị nhỏ gọn, hạn chế nhất là

về vấn đề năng lượng Pin thì có hạn, vì thế tất cả các thành phần trên thiết bị đều phải tối ưu để tiết kiệm pin, điều đó nảy sinh nhiều mâu thuẫn với nhu cầu sử dụng của người dùng

 Đa số các hệ điều hành trên desktop đều cho phép nhiều ứng dụng chạy đồng thời (đa nhiệm) và khá tự do Trong khi đó, các hệ điều hành chạy

Trang 23

trên di động thường không cho phép chạy đa nhiệm, hoặc có đa nhiệm thì các ứng dụng bị giới hạn khá nhiều

 Việc hiển thị giao diện trên một khung hình nhỏ cũng là điều khó khăn hơn so với hệ điều hành chạy trên desktop, thường thì trên hệ điều hành

di động gần như không có giao diện cửa sổ cho phép nhiều ứng dụng cũng hiển thị một lúc mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một giao diện của một ứng dụng mà thôi

 Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghĩ để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần kết nối trong khi vẫn di chuyển Vì thế cần được thiết kế đặc biệt hơn so với hệ điều hành trên desktop

III.3.2 So sánh hệ điều hành Android với các hệ điều hành di động khác

Giống nhau: Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệ

điều hành di động nói chung

 Các ứng dụng chạy trên Android được viết bằng Java trong khi đó, ứng dụng trên các hệ điều hành khác chủ yếu viết bằng C/C++/Object C Ngay cả Symbian có hỗ trợ Java thì cũng khác so với Android, trong khi

hệ điều hành Android sử dụng máy ảo Java là Dalvik VM do chính Google phát triển thì Symbian lại sử dụng máy ảo Java là J2ME của Sun

III.4 Các thành phần tạo nên ứng dụng Android (Android Application

Components)

III.4.1 Activity

 Khái niệm Activity

Trang 24

Activity là một thành phần cơ bản của ứng dụng Android Mỗi activity thực hiện một chức năng của ứng dụng, trong một ứng dụng Android luôn có một MainActivity, khi ta chạy ứng dụng thì Activity này được gọi thực thi trước và thể hiện những giao diện hay các control lên màn hình để người dùng có thể tương tác Một ứng dụng thường bao gồm nhiều activity có mối liên quan với nhau, và các activity này hoạt động theo cơ chế hàng đợi (queue mechanism ) có nghĩa khi một activity đang hoạt động nhưng một activity khác được kích hoạt hoặc activity

đó có độ ưu tiên lớn hơn (priority) thì activity trước đó sẽ chuyển sang trạng thái Stop hoặc Pause để activity này thực hiện

 Tạo một Activity

Để tạo một activity bạn cần tạo một lớp con kế thừa từ lớp Activity Trong lớp con bạn cần thực hiện các phương thức callback (callback method) mà hệ thống sẽ thực hiện khi chuyển đổi giữa các activity trong vòng đời của nó, bao gồm các trạng thái như Khởi tạo, Dừng, Chạy lại hay Ngừng hẳn Trong đó có 2 phương thức hay dùng nhất là:

Bảng 3 Bảng phương thức trong một activity

 Thực hiện một giao diện người dùng Giao diện người dùng cho một hoạt động được cung cấp bởi một hệ thống các quan điểm, đối tượng dẫn xuất từ lớp View Mỗi đối tượng View được trình bày trên không gian hình chữ nhật (Màn hình Mobile) và ta có thể xử lý những sự kiện thông qua các câu lệnh trên các đối tượng View đó

onCreate() Phương thức này dùng để khởi tạo một Activity, ở trong

phương thức này bạn nên khởi tạo các thành phần thiết yếu cho activity đó Quan trọng nhất là bạn phải gọi câu lệnh

setContentView() để định nghĩa layout cho activity đó

một activity khác Bạn có thể thêm những câu lệnh hay gọi activity khác khi điều này xảy ra

Trang 25

 Khai báo activity trong manifest Bạn cần khai báo activity trong tập tin AndroidManifest để nó có thể truy cập vào hệ thống Để khai báo cần cần mở tập tin AndroidManifest trong Project của bạn rồi thêm một thẻ <activity> ở bên trong cặp thẻ <application> như sau:

<activity android:name= ".ExampleActivity" android:icon= "@drawable/app_icon" >

<intent-filter>

<action android:name= "android.intent.action.MAIN" />

<category android:name= "android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

Các phần tử trong thẻ tab <action> xác định thực hiện hành động của ứng dụng đối với activity đó Còn các phần tử trong thẻ <category> xác định activity này nên được liệt kê khi khởi tạo ứng dụng hệ thống (cho phép người dùng gọi activity đó)

 Bắt đầu một Activity

Trang 26

Bạn có thể gọi một activity bằng phương thức startActivity(), thông qua Intent

mà bạn đã miêu tả về activity đó khi bạn muốn bắt đầu

có thể xử lý các intent, thì người dùng có thể chọn bất kỳ một trong các intent để sử dụng Ví dụ nếu bạn muốn cho người dùng gửi email, bạn có thể tạo ra các intent sau đây:

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);

startActivity(intent);

Các EXTRA_MAIL được thêm vào intent là một mảng các chuỗi địa chỉ email

mà sẽ được gửi.Khi một ứng dụng email hồi đáp intent này, nó sẽ đọc mảng chuỗi được cung cấp bên trong extra và thay thế chúng trong trường “To” của Form gửi mail Trong trường hợp này activity của ứng dụng sẽ được gọi khi người dùng đã thực hiện và activity đó sẽ được resume lại

Trang 27

Hình 4 Activity Lifecycle

Trong đó:

 onCreate : Khởi tạo activity

 onStart : Thực hiện activity

 onResume : Thực hiện tiếp tục một activity đã bị dừng trước đó

 onPause : Tạm dừng một activity

 onStop : Dừng hẳn một activity

 onRestart : Thực hiện lại activity

Android có cơ chế quản lý các tiến trình theo độ ưu tiên Các tiến trình có độ

ưu tiên thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài

Trang 28

 Một Activity bao gồm 4 trạng thái

 active (running): Activity đang hiển thị lên màn hình (foreground)

 paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)

 stop: Một activity được thay thế hoàn toàn bởi một activity khác sẽ chuyển sang trạng thái stop

 killed: khi hệ thống thiếu bộ nhớ nó sẽ giải phóng các tiến trình theo nguyên tắc độ ưu tiên Các activity ở trạng thái stop hoặc pause cũng

có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó

 Vậy ta có thể hiểu vòng đời của Activity như sau

 Entire lifetime : Bắt đầu từ phương thức onCreate() cho tới phương thức onDestroy()

 Visible lifetime : Từ phương thức onStart() cho tới phương thức onStop()

 Foreground lifetime : Từ phương thức onResume() đến phương thức onPause()

III.4.2 Services

Services là những thành phần chạy ẩn trong ứng dụng Android.Service sử dụng

để cập nhật thông tin, dữ liệu hay đưa ra các cảnh cáo, nhắc nhở Một service có thể chạy nền và có thể tiếp tục chạy khi người dùng chuyển sang một Activity khác

Để bắt đầu một service bạn cần gọi phương thức startService() khi một thành phần của ứng dụng được bắt đầu, ví dụ như một Activity Service cần được khai báo trong file AndroidManifest.xml của ứng dụng:

Trang 29

Hình 5 Service Lifecycle III.4.3 Content Providers

Content Providers giúp lưu trữ và lấy dữ liệu và làm cho nó có thể truy cập đến tất cả các ứng dụng khác.Đây là cách duy nhất để chia sẻ dữ liệu qua các ứng dụng

Dữ liệu thường được lưu trữ ở file hệ thống hoặc trong một Sqlite Database Content Provider thực hiện một tập phương thức chuẩn mà các ứng dụng khác có thể truy xuất và lưu dữ liệu của loại nó điều khiển.Tuy nhiên những ứng dụng không thể gọi các phương thức trực tiếp Hơn thế chúng dùng content resolver và gọi những phương thức đó Một content resolver có thể giao tiếp đến nhiều content provider; nó cộng tác với các provider để quản lý bất kỳ giao tiếp nào liên quan Mỗi ứng dụng Android chạy trên Process của nó Bất cứ lúc nào Content Provider cũng có thể quản lý được các thành phần bên trong nó

Trang 30

 Khởi tạo nếu cần thiết

 Một trường hợp tương thích của các thành phần là có giá trị hoặc đang khởi tạo trong trường hợp cần thiết

III.4.4 Intent

 Khái niệm Itent Intent là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity Intent còn là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp chúng ta triệu gọi cũng như truyền các dữ liệu cần thiết để thực hiện một Activity từ một Activity khác

Hình 6 Truyền Intent và số liệu sang Activity khác

Intent là một khái niệm then chốt và đặc trưng của Android Platform Có thể nói lập trình Android chính là lập trình Intent base

 Các thuộc tính của một đối tượng Intent

Intent là một cấu trúc dữ liệu được mô tả trong lớp android.content.Intent

Action: Tên (string) của action mà Intent sẽ yêu cầu thực hiện, có thể

là action được android định nghĩa sẵn (built-in standard action) hoặc

do người lập trình tự định nghĩa

Data: Dữ liệu mà activity được gọi sẽ xử lý, định dạng URI thông qua

hàm Uri.parse(data)

Category: thông tin về nhóm của action

Type: định dạng kiểu dữ liệu (chuẩn MIME), thường được tự động

xác định

Component: chỉ định cụ thể lớp sẽ thực thi Activity, khi được xác

định các thuộc tính khác trở thành không bắt buộc (optional)

Trang 31

Extras: chứa tất cả các cặp (key, value) do ứng dụng thêm vào để

truyền qua Intent(cấu trúc Bundle)

III.4.5 Broadcast receivers

Là một thành phần của ứng dụng có chức năng thu nhận và phản ứng lại những thông báo được broadcast Nhiều broadcast gốc trong mã hệ thống và các ứng dụng cũng có thể khởi tạo broadcast

Broadcast receivers không hiển thị giao diện người dùng Tuy nhiên chúng có thể khởi tạo một Activity phản hồi lại những thông tin được nhận Chúng cũng có thể dùng Notification Manager để thông báo đến người dùng

III.4.6 DVM

DVM là máy ảo giúp các ứng dụng Java chạy được trên các thiết bị di động Android Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex).Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc

độ xử lý.DVM đã được thiết kế và viết bởi Dan Bornstein, ông đã đặt tên cho máy

ảo này sau khi đến thăm một ngôi làng có tên Dalvík ở đảo Eyjafjörður, nơi mà một

số tổ tiên của ông sinh sống

Từ góc nhìn của một nhà phát triển,DVM giống như một máy ảo Java (Java vitrual machine) nhưng thực tế thì hoàn toàn khác.Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường Java Sau

đó nó sẽ được biên dịch sang bytecode của Java, tuy nhiên để thực thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dx Đây

là công cụ dùng để chuyển đổi bytecode sang một dạng khác gọi là dex bytecode

“Dex” là từ viết tắt của Dalvik Executable đóng vai trò như cơ chế ảo thực thi các ứng dụng Android

Trang 32

CHƯƠNG II LẬP TRÌNH ỨNG DỤNG TRÊN HĐH ANDROID

I Lập trình ứng dụng Android

I.1 Thiết lập môi trường phát triển ứng dụng

Môi trường được thiết lập trên các hệ điều hành Windows và cụ thể là Windows 7 Để thực hiện việc này bạn cần có các gói cài đặt sau:

 JDK Java for windows

I.2 Các thành phần trong Android Project

Tạo mới Android Project:

Click menu File-> New -> Project chọn Android-> Android Application Project

Hoặc có thể tạo nhanh bằng cách click vào biểu tưởng trên thanh công cụ

Hình 7 Tạo mới 1 ứng dụng Android

Project name: Tên cho Project

Trang 33

Application name: Tên ứng dụng

Package name: Tên package, bạn đặt sao cũng được nhưng sao cho dễ nhớ và

không có các ký tự đặc biệt (chỉ gồm chữ thường và các số từ 0 ~ 9)

Min SDK Version: Tương ứng với API Level của Target Sau đó click Next rồi click chọn Create Activity để đặt tên cho Activity chính sẽ khởi tạo đầu tiên khi

chạy ứng dụng, hoặc không muốn tạo bằng cách bỏ dấu Tick.Cuối cùng click Finish

ta sẽ có 1 project như hình dưới

/src folder: chứa các mã nguồn (source code) là

các file Java

/gen: Chứa file R.java dùng để quản lý các tài

nguyên được tạo ra từ các tập tin nguồn, file này tự tạo nên không được chỉnh sửa hoặc thay đổi

/Android 1.6: bao gồm các API 1.6 tương ứng

với HĐH Android 1.6, các thư viện này được Import khi ta khởi tạo Project bằng cách chọn Target ở trên

/assets: chứa các file tài nguyên như database sẽ đi kèm với Project khi ta đóng gói

ứng dụng

/res/drawable-hdpi: nơi lưu hình ảnh sử dụng cho ứng dụng hdpi (High dpi: độ

phân giải cao) tương thích với điện thoại có màn hình WVGA800 (480x800), WVGA854 (480x854)

/res/drawable-ldpi: cũng là thư mục để chứa các file ảnh có độ phân giải thấp hơn

Low dpi: QVGA (240x320), WQVGA400 (240x400), WQVGA432 (240x432)

/res/drawable-mdpi: chứa các file ảnh có độ phân giải trung bình Medium dpi:

HVGA (320x480), WVGA800 (480x800), WVGA854 (480x854)

/res/layout/main.xml: file thiết kế giao diện cho ứng dụng, có thể tạo thêm nhiều

file khác cho nhưng màn hình khác nhau

/res/values/strings.xml: định nghĩa giá trị cho các tài nguyên trong project, giúp tối

ưu hóa trong việc quản lý giá trị mặc định các đối tượng String trên mỗi layout

Trang 34

Ngoài ra còn có một số folder và file do người lập trình tự định nghĩa

II Mô hình Web service

Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer) Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính Tuy nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI Với sự phát triển và lớn mạnh của Internet, dịch vụ Web thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống Chúng ta sẽ xem xét các dịch vụ Web từ mức khái niệm đến cách thức xây dựng

Hình 8 Mô hình web service

Trang 35

II.1 Giới thiệu công nghệ

Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML Dịch vụ Web là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên server

Trước hết, có thể nói rằng ứng dụng cơ bản của dịch vụ Web là tích hợp các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp)

Dưới đây, chúng ta sẽ xem qua những khái niệm và cách thức cơ bản nhất để xây dựng một dịch vụ Web trong tích hợp và phát triển hệ thống

II.2 Đặc điểm của dịch vụ web

II.2.1 Đặc điểm

Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này

Phần lớn kĩ thuật của dịch vụ Web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML

Một dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạng

Trang 36

lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet

Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server Nó

có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net

Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe

Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụ Web đang được quan tâm phát triển

là điều hoàn toàn dễ hiểu

II.2.2 Ưu điểm

 Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau

 Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được

 Nâng cao khả năng tái sử dụng

 Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình hay chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web

 Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán

Trang 37

 Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác

II.2.3 Nhược điểm

 Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành

 Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt

 Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật

II.3 Kiến trúc của dịch vụ Web

Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration) Hình 1 mô tả chồng giao thức của dịch vụ Web, trong

đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP

Trang 38

Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính: Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP)

Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để

có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST

Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô

tả giao tiếp và thực thi dựa trên XML Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp

Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này

Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn

và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy, Security, Transaction, Management

II.4 Xây dựng dịch vụ Web

Có 4 giai đoạn chính để xây dựng một dịch vụ Web là xây dựng, triển khai, tiến hành và quản lý, trong đó:

Giai đoạn xây dựng bao gồm phát triển và chạy thử ứng dụng dịch vụ Web, xây dựng các chức năng và định nghĩa dịch vụ Có hai cách khác nhau để tiến hành trong giai đoạn này, đó là Red-path- solod và Blue-path-dashed Với Red- path-

Trang 39

solod, chúng ta sẽ xây dựng một dịch vụ Web mới từ trạng thái ban đầu hoặc với một dịch vụ đã có sẵn Từ đó, xây dựng định nghĩa service (WSDL) với các đối tượng, hàm chức năng mà chúng ta mong muốn Nếu theo cách Blue-path-dashed, dịch vụ Web sẽ được xây dựng từ đầu hoặc từ một định nghĩa dịch vụ WSDL Sử dụng WSDL này, xây dựng hoặc sửa đổi lại mã để thực hiện các yêu cầu mong muốn trong dịch vụ Web

Giai đoạn triển khai: công bố định nghĩa dịch vụ, xây dựng WSDL và triển khai mã thực thi của dịch vụ Web Triển khai dịch vụ Web tới một ứng dụng phía server, sau đó sẽ công bố dịch vụ Web trên mạng Internet để các client có thể nhìn thấy Sử dụng UDDI registry để công bố lên mạng

Giai đoạn tiến hành: tìm kiếm và gọi thực thi dịch vụ Web bởi những người dùng muốn sử dụng dịch vụ

Quản lý: Quản lý và quản trị dịch vụ, duy trì sự ổn định của dịch vụ, cập nhật thông tin mới, sửa lỗi khi nó xảy ra

Để xây dựng một dịch vụ Web, chúng ta cần hiểu được những việc phải làm và nên bắt đầu từ đâu Có 3 cách tiếp cận chủ yếu để xây dựng nên một dịch vụ Web,

có thể từ một ứng dụng đã có (bottom-up); từ một định nghĩa dịch vụ, WSDL để phát sinh một ứng dụng mới (top-down) hoặc có thể từ một nhóm các dịch vụ Web hiện có, kết hợp lại với nhau để tạo nên các chức năng mới hoặc mở rộng thêm chức năng Những hướng tiếp cận này dựa trên những gì mà chúng ta đã có, tùy thuộc vào yêu cầu của hệ thống, trong đó tối đa việc sử dụng lại các chức năng, các thành phần, môđun đã được xây dựng

Qui trình xây dựng một dịch vụ Web bao gồm các bước sau:

1 Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp (sử dụng ngôn ngữ Java chẳng hạn)

2 Tạo WSDL cho dịch vụ

3 Xây dựng SOAP server

4 Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy

Trang 40

Lựa chọn một ngôn ngữ, xây dựng các tiến trình nghiệp vụ và chúng ta bắt đầu tạo nên một dịch vụ Web như ý muốn Sau đó là cung cấp dịch vụ Web này trên Internet

III Công nghệ Bluetooth và lập trình với Bluetooth trên Android

III.1 Khái niệm công nghệ Bluetooth

Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vô tuyến qua băng tầng chung ISM (Industrial, Scientific, Medical) trong dãy tầng 2.40 – 2.48 GHz Đây là băng tầng không cần đăng ký được dành riêng để dùng cho các thiết bị không dây trong công nghiệp, khoa học, y tế

Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một cách thuận lợi với giá thành rẻ

III.2 Lập trình với Bluetooth trên Android

III.2.1 Giới thiệu các API lập trình Bluetooth trên Android

Android hỗ trợ đầy đủ các thư viện API về Bluetooth để lập trình Tất cả các

thư viện này chứa trong gói thư viện android.bluetooth Bao gồm :

BluetoothAdapter : BluetoothAdapter là điểm vào cho tất cả các tương tác

trên Bluetooth Sử dụng BluetoothAdapter, bạn có thể tìm thấy những thiết bị Bluetooth khác,những thiết bị tìm thấy sẽ được tạo thành một danh sách (paired),sử

dụng địa chỉ MAC để khởi tạo BluetoothDevice và tạo mộtBluetoothServerSocket

để lắng nghe các thiết bị khác kết nối tới

BluetoothDevice: Đại diện cho một thiết bị Bluetooth Sử dụng để yêu cầu một kết nối với một thiết bị từ xa thông qua một BluetoothSocket hoặc truy vấn các

thông tin của thiết bị kết nối, như là: tên thiết bị, địa chỉ

BluetoothSocket: Đại diện cho cổng giao tiếp Bluetooth (tương tự như một

TCP Socket) Đây là điểm kết nối cho phép ứng dụng có thể trao đổi dữ liệu với một thiết bị Bluetooth khác thông qua InputStream và OutputStream

BluetoothServerSocket: Đại diện cho một cổng mở để lắng nghe các yêu cầu

được gửi đến (tương tự như một TCP ServerSocker) Để kết nối hai thiết bị Android với nhau, một thiết bị phải mở một cổng server để lắng nghe các kết nối bằng cách

Ngày đăng: 22/05/2021, 10:10

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w