1. Trang chủ
  2. » Thể loại khác

LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI:NGHIÊN CỨU HỆ ĐIỀU HÀNH ANDROID VÀ XÂY DỰNG CHƯƠNG TRÌNH DEMO GAME CARO ONLINE

77 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 77
Dung lượng 2,08 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ừ thực tế đó, với những kiến thức đã được học ở trường và trong thời gian thực tập, kết hợp vớinền tảng công nghệ trên di động mở của Google chúng tôi đã chọn đề tài tốt nghiệpcho mình:

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ

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

MÃ NGÀNH : 05115

ĐỀ TÀI:

NGHIÊN CỨU HỆ ĐIỀU HÀNH ANDROID VÀ

XÂY DỰNG CHƯƠNG TRÌNH DEMO GAME CARO ONLINE

Trang 2

LỜI CẢM ƠN

Chúng tôi xin chân thành cảm ơn các thầy cô trường ĐHBK Đà Nẵng, đặc biệt

là các thầy cô khoa Công Nghệ Thông Tin, đã truyền đạt những kiến thức quí báu vàchỉ dẫn tận tình cho chúng tôi trong những năm học qua

Đặc biệt, chúng tôi xin chân thành cảm ơn thầy giáo ThS Trần Đình Sơn, khoaCông Nghệ Thông Tin, trường Đại học Bách Khoa đã tận tình hướng dẫn, động viên

và giúp đỡ chúng tôi trong suốt thời gian thực hiện đề tài Và cảm ơn các bạn trongkhoa Công Nghệ Thông Tin – khóa 06T đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinhnghiệm và tài liệu cho nhóm chúng tôi trong quá trình nghiên cứu và thực hiện đề tài

Và để có được kết quả như ngày hôm nay, chúng tôi rất biết ơn gia đình đãđộng viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũngnhư quá trình thực hiện đề tài tốt nghiệp này

Tuy nhiên, trong quá trình thực hiện đề tài không thể tránh khỏi những thiếusót Chúng tôi mong nhận được nhiều ý kiến phê bình của quí thầy cô, các anh chị vàcác bạn

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

Đà Nẵng, ngày 05/06/2011

Sinh viên thực hiện

Phan Ngọc Huy – 06T3Hoàng Đức Nhân – 06T3

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan :

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 ThS Trần Đình 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,

Phan Ngọc Huy – 06T3 Hoàng Đức Nhân – 06T3

Trang 4

TỔNG QUAN VỀ ĐỀ TÀI 11

-I Tổng quan 11

-II Đặt vấn đề 11

-III Lý do chọn đề tài 12

-IV Hướng nghiên cứu của đề tài 12

-IV.1 Cơ sở lý thuyết 12

-IV.2 Công cụ thiết kế 12

-V Dự kiến kết quả đạt được 13

-VI Nội dung tổ chức luận văn 13

GIỚI THIỆU TỔNG QUAN VỀ ANDROID 14

-I Giới thiệu về Android 14

-II Những tính năng của Android 16

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

-III.1 Applications layer (Tầng ứng dụng) 17

-III.2 Application Framework (Nền tảng ứng dụng) 18

-III.3 Libraries Layer (Tầng thư viện) & Android Runtime (Tầng thực thi) - 19

-III.4 Linux Kernel (Nhân Linux) 21

-IV Hệ thống tập tin trên hệ điều hành Android 22

-IV.1 Tổng quan về hệ thống file trên Android 22

-IV.2 Các kiểu file trên Android 22

-IV.3 Tổ chức quyền sở hữu và quyền hạn trên file 23

-IV.4 Cây thư mục trên hệ điều hành Android 24

-V Cách thức tổ chức file trên Android Java Application 25

Trang 5

-VII Bộ SDK (Software Development Kit – Bộ phát triển phần mềm) của Google

phát triển dành cho Android 28

-VII.1 Giới thiệu bộ Android SDK 28

-VII.2 Cấu hình bộ Android SDK trong Eclipse 3.5 28

-VII.3 Cập nhật ADT Plugin 30

-VII.4 Sử dụng bộ công cụ Eclipse để phát triển các ứng dụng Android 30

-VIII Giới thiệu một số gói cơ bản của Android 31

CƠ SỞ LÝ THUYẾT 33

-I Giới thiệu về các loại Game 33

-I.1 Game hành động – Action 33

-I.2 Game nhập vai – Role Playing Game (RPG) 33

-I.3 Game phiêu lưu – Adventure 33

-I.4 Game chiến thuật – Strategy 34

-I.5 Các thể loại game nhỏ hơn 34

-I.5.1 Kinh dị (Survival horror) 34

-I.5.2 Mô phỏng (Simulation) 34

-I.5.3 Thể thao (Sport) 35

-I.5.4 Giải đố (Puzzle) 35

-I.5.5 Đối kháng (Fighting) 35

-II Các thành phần về đồ họa (graphics) 35

-II.1 File bitmap 35

-II.2 Các mô hình màu 35

-II.3 Background Image 36

-II.4 Frame 36

Trang 6

-II.7 Map (Bản đồ) 37

-II.8 Layer 38

-III Kỹ thuật xây dựng đồ họa 38

-III.1 Graphics techiques (kỹ thuật đồ họa) 38

-III.2 Kỹ thuật chuyển tiếp địa hình 39

-III.3 Tổ chức map 40

III.3.1 Dùng tile 40

III.3.2 Dùng background 41

-III.4 Cuộn map 41

-III.5 Tạo chuyển động (animation) 42

-III.6 Đồng bộ frame 42

-IV Kỹ thuật thiết kế game 43

-IV.1 Game loop 43

IV.1.1 Tổng quan về game loop 43

IV.1.2 Sơ đồ trực quan về vòng lặp trong game 44

-IV.2 Game AI (Artificial Intelligent) 45

IV.2.1 Game AI là gì 45

IV.2.2 Mô hình artificial intelligent 45

-IV.3 Game Physics 46

-IV.4 Thread 47

-IV.5 Sound (âm thanh) 48

THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 49

-I Đặc tả game Caro 49

-I.1 Giới thiệu về game Caro 49

-I.2 Một số thủ thuật chơi Caro 49

Trang 7

-I.4 Mô tả cách chơi 51

-II Xây dựng và thiết kế hệ thống 52

-II.1 Phân tích yêu cầu 52

-II.2 Thiết kế hệ thống 52

-II.2.1 Sơ đồ Use Case 52

II.2.1.1 Mô hình Use Case Menu Game 52

II.2.1.2 Mô hình Use Case Player 53

II.2.1.3 Mô hình Use case Board (bàn cờ) 54

II.2.1.4 Mô hình Use case Server 55

-II.2.2 Sơ đồ hoạt động 55

-II.2.3 Sơ đồ các lớp (Class) 56

-II.3 Các thuật toán chính của chương trình 65

-II.3.1 Xây dựng bàn cờ 65

-II.3.2 Xây dựng Server 65

-II.3.3 Xây dựng Client 66

-III Kết quả chương trình 67

-III.1 Giao diện menu của game 67

-III.2 Giao diện tùy chọn màu quân cờ 68

-III.3 Giao diện đăng nhập 68

-III.4 Giao diện đăng ký 69

-III.5 Giao diện khi đăng nhập vào 69

-III.6 Giao diện thay đổi thông tin User 70

-III.7 Giao diện chọn Room 71

-III.8 Giao diện chọn Paper (chọn bàn cờ) 72

Trang 8

-III.11 Giao diện chiến thắng 75

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

-I Kết quả đạt được 76

-I.1 Về lý thuyết 76

-I.2 Về thực nghiệm 76

-II Hướng phát triển của đề tài 77

Trang 9

Hình 1: Mô hình kiến trúc hệ điều hành Android 17

Hình 2: Bảng liệt kê một số kiểu file trong Linux 23

Hình 3: Sơ đồ cây thư mục trên hệ điều hành Android 25

Hình 4: Cách tổ chức file trên Android Java Application 26

Hình 5: Vòng đời Android 27

Hình 6: Các hướng di chuyển của Isometric tile 38

Hình 7: Sơ dồ tọa độ Isometric tile trên map 39

Hình 8: Các hướng di chuyển của Hexagon title 39

Hình 9: Sơ đồ tọa độ Hexagon tile trên map 39

Hình 10: Chưa chuyển tiếp 40

Hình 11: Sau khi chuyển tiếp 40

Hình 12: Xây dựng map dùng tile 41

Hình 13: Xây dựng map dùng background 41

Hình 14: Sơ đồ trực quan vòng lặp trong game 44

Hình 15: Sơ đồ Use Case Menu Game 52

Hình 16: Sơ đồ Use Case Player 53

Hình 17: Sơ đồ Use Case Board 54

Hình 18: Sơ đồ Use Case Server 55

Hình 19: Sơ đồ hoạt động 55

Hình 20: Lớp Caro 56

Hình 21: Lớp CaroGame 56

Hình 22: Lớp CaroView 57

Hình 23: Lớp Wingame 57

Hình 24: Lớp Login 58

Hình 25: Lớp Register 58

Hình 26: Lớp ServerManager 59

Hình 27: Lớp Current 59

Hình 28: Lớp Room 60

Hình 29: Lớp ListRoom 60

Hình 30: Lớp ListRoomLayout 60

Hình 31: Lớp ListRoomAdapter 61

Trang 10

Hình 34: Lớp ListPaperLayout 63

Hình 35: Lớp ListPaperAdapter 63

Hình 36: Lớp ViewPaper 64

Hình 37: Giao diện menu game 67

Hình 38: Giao diện chọn màu quân cờ 68

Hình 39: Giao diện đăng nhập vào game 68

Hình 40: Giao diện đăng ký account 69

Hình 41: Giao diện khi login vào 69

Hình 42: Giao diện thay đổi thông tin 70

Hình 43: Giao diện chọn room 71

Hình 44: Giao diện chọn bàn cờ 72

Hình 45: Giao diện vào bàn cờ và đợi người chơi 73

Hình 46: Giao diện playing game 74

Hình 47: Giao diện win game 75

Trang 11

-CHƯƠNG 1

TỔNG QUAN VỀ ĐỀ TÀI

Điện thoại di động là dùng để liên lạc Nhưng ngày nay, điện thoại di động còn

có nhiều mục đích sử dụng khác nữa, người ta có thể sử dụng điện thoại di động vàonhiều việc khác nhau và đôi khi chức năng phụ của điện thoại còn được sử dụng nhiềuhơn là chức năng chính là nghe và gọi Điện thoại di động không còn là thiết bị liên lạcthông thường, mà nó chứa đựng sức mạnh như một máy tính thông thường dưới mộtdạng thức bỏ túi Công nghệ có chuẩn mở của thiết bị di động đã thúc đẩy nhanh tínhhội tụ của nhiều chức năng và dịch vụ vào một thiết bị duy nhất Các bước tiến vượtbậc về công nghệ giúp cho bộ nhớ của điện thoại di động ngày càng lớn, tốc độ xử lýngày càng nhanh hơn Người ta còn tích hợp vào đó máy ảnh, máy quay video, radio,tivi, các phần mềm ứng dụng và nhiều tính năng khác Điều này làm cho chiếc điệnthoại trở thành công cụ rất hữu ích trong đời sống cũng như trong công việc

Trong thời gian qua, chúng ta đã chứng kiến được sự thay đổi ngoạn mục củacông nghệ di động Không chỉ dừng lại ở việc chụp ảnh, quay phim mà còn có thể gửiemail, chat với bạn bè, nghe nhạc, xem truyền hình, chơi game giải trí nữa

II Đặt vấn đề

Thị trường game những năm qua đang rất sôi động và nóng bỏng Ngoài nhữnggame trên các máy tính truyền thống còn xuất hiện các game cho các máy cầm tay nhưSony PSP của hãng Sony và Nintendo DS của hãng Nintendo với nhiều tính năng mới

lạ Game cho điện thoại di động cũng phát triển nhanh chóng, xuất hiện nhiều công tychuyên cung cấp game cho di động qua hệ thống tin nhắn và đặc biệt tại Việt Nam đã

có nhiều công ty lập trình game như công ty GameLoft, AsNet, VinaGame chuyên sảnxuất và gia công game di động Điều trên hứa hẹn sự phát triển mạnh mẽ của ngànhcông nghiệp giải trí điện tử trong tương lai

Trang 12

III Lý do chọn đề tài

Ngày nay do nhu cầu đời sống của con người ngày càng được nâng cao, và nhucầu giải trí cũng được quan tâm Cùng với sự phát triển các tính năng của điện thoại diđộng, vấn đề đặt ra là vì sao chúng ta không kết hợp các tiện ích giải trí trên chiếc điệnthoại để có thể giúp con người giảm stress sau những giờ làm việc vất vả Từ thực tế

đó, với những kiến thức đã được học ở trường và trong thời gian thực tập, kết hợp vớinền tảng công nghệ trên di động mở của Google chúng tôi đã chọn đề tài tốt nghiệpcho mình:

Nghiên cứu hệ điều hành Android

Và xây dựng chương trình demo game Caro online.

Dù chương trình game rất nhiều nhưng để viết ra một game hay và hoàn chỉnh,thu hút được nhiều người chơi là không dễ Tuy vậy với niềm đam mê lập trình và yêuthích game, chúng tôi muốn tiếp cận và thử sức với lĩnh vực còn khá mới mẻ này

IV Hướng nghiên cứu của đề tài

IV.1 Cơ sở lý thuyết

Tìm hiểu công nghệ và nền tảng di động mở Android của Google, quy trìnhphát triển game Online, nhằm xây dựng thành công một ứng dụng game Online trênnền di động Android Với mục đích đó, yêu cầu chúng tôi phải nắm được các kiến thức

cơ bản sau đây trên nền tảng công nghệ Android:

Quy trình phát triển một ứng dụng game trên nền di động.

 Các công cụ và ngôn ngữ lập trình

 Kiến thức về kĩ thuật và công nghệ sử dụng thiết kế game

 Thực thi chương trình trên thiết bị thực (điện thoại di động chạy trên nềnAndroid)

IV.2 Công cụ thiết kế

 Thiết kế chương trình: Eclipse 3.5

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 12

Trang 13

 Android SDK _r10-window tích hợp trên Eclipse.

V Dự kiến kết quả đạt được

Nắm rõ cơ sở lý thuyết thiết kế một game nói chung trên nền di động sử dụngcông nghệ Android, bên cạnh đó chúng tôi tiến hành xây dựng ứng dụng game Caroonline thỏa mãn các yêu cầu sau:

 Game phải hiển thị rõ phần chơi với các chức năng: thắng, thua game

 Cài đặt được trên các thiết bị di động có hổ trợ Android

VI Nội dung tổ chức luận văn

Với những kết quả dự kiến đạt được của chương trình, luận văn được tổ chứcthành 4 chương Cụ thể như sau:

Chương 1 Tổng quan đề tài: giới thiệu sơ lược về đề tài, hướng nghiên

cứu và dự kiến kết quả đạt được của đề tài

Chương 2 Giới thiệu tổng quan về nền tảng Android: khái niệm, lịch

sử phát triển, các tính năng, mô hình, vòng đời và các gói quan trọng củaAndroid

Chương 3 Cơ sở lý thuyết về game: giới thiệu các thể loại game, các

kỹ thuật sử dụng trong game, khái niệm về đồ họa, kỹ thuật xây dựng đồhọa trong game

Chương 4 Thiết kế và xây dựng chương trình : đặc tả về game, phân

tích thiết kế hệ thống game, cài đặt các thuật toán chính của chương trình

và kết quả đạt được

Phần kết luận và hướng phát triển: nêu ra những nhận xét về kết quả

đã đạt được, những hạn chế và chưa đạt được, từ đó đưa ra phươnghướng phát triển tiếp theo của đề tài

Trang 14

CHƯƠNG 2

GIỚI THIỆU TỔNG QUAN VỀ ANDROID

Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dànhcho các dòng điện thoại SmartPhone Đầu tiên được ra đời bởi công ty liên hợpAndroid, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một hệđiều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao trên thếgiới

Hệ điều hành android một hệ điều hành rất mạnh mạnh, có bảo mật cao, hỗ trợđược nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi tương thích với nhiềuphần cứng, hỗ trợ nhiều loại bộ nhập dữ liệu như keyboard, touch và trackball.Android là hệ điều hành di động nên có khả năng kết nối cao với các mạng không dây

Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt hìnhcũng như trình diễn các khả năng đồ họa khác cực tốt, là tiền đề để phát triển các ứngdụng có giao diện phức tạp chẳng hạn như là các trò chơi

Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần androidđược tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệmới Năm 2008, hệ điều hành android đã chính thức mở toàn bộ mã nguồn, điều đócho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao chophù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mởnày hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí pháttriển hệ điều hành Những điều đó là cực kỳ tốt không chỉ đối với các hãng sản xuấtđiện thoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC

Với Google, vì android hoàn toàn miễn phí, Google không thu tiền từ nhữnghãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ android nhưng bù lại,những dịch vụ của hãng như Google Search, Google Maps, nhờ có android mà có thể

dễ dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất

ra đều được tích hợp hàng loạt dịch vụ của Google Từ đó hãng có thể hưởng lợi, chủyếu là từ các nguồn quảng cáo trên các dịch vụ đó

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 14

Trang 15

Với các nhà phát triển ứng dụng (developers), việc hệ điều hành android được

sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nềnandroid với sự tin tưởng là ứng dụng đó sẻ có thể chạy được ngay trên nhiều dòng điệnthoại của các hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoạinào, phiên bản bao nhiêu vì nền tảng android là chung cho nhiều dòng máy, máy ảoJava đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại

mà nó đang chạy Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kếthợp với XML nên có khả năng khả chuyển cao

Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêu biểu :

 HTC với các dòng Desire HD, Evo 4G, DROID ERIS, Desire Z, Hero, Desire,Tattoo, Wildfire, Droid Incredible, Legend, Magic, Google Nexus One, Dream,Aria, Paradise

 LG với các dòng GT540 Optimus, Optimus Chic E720, Optimus One P500,GW620, Optimus Z, Optimus Q, KH5200 Andro-1, GW880, C710Aloha

 MOTOROLA với các dòng MILESTONE 2, BACKFLIP, Droid XTreme,MT710 ZHILING, MILESTONE, XT720 MOTOROI, A1680, XT800ZHISHANG, DEFY, CHARM, XT806

 SAMSUNG với các dòng máy I9000 Galaxy S, Galaxy Tab, Epic 4G, i5510,I5500 Galaxy 5, I7500 Galaxy, I5800 Galaxy 3, M110S Galaxy S, I6500UGalaxy, Galaxy Q, I5700 Galaxy Spica, I8520 Galaxy Beam, I909 Galaxy S

 SONY : XPERIA X10, XPERIA X10 mini, XPERIA X8

 ACER với các dòng máy beTouch T500, Liquid E, Stream, Liquid, beTouchE110, beTouch E130, beTouch E400, beTouch E120, Liquid Metal

 Ngoài ra còn nhiều hãng điện thoại vừa và nhỏ khác nữa cũng sử dụng hệ điềuhành android trong sản phẩm của mình

II Những tính năng của Android

Các tính năng mà Android hỗ trợ rất rộng, bao gồm đồ họa 2D, 3D (dựa trênOPENGL_ES), khả năng định vị (hiện chỉ dùng GPS), Bluetooth, EDGE, 3G, WiFi,

Trang 16

năng nâng cao như WiFi, GPS, 3D hardware…sẽ phụ thuộc vào từng dòng thiết bị cụthể Các bước phát triển ứng dụng trên Android rất đơn giản, với sự hỗ trợ của nhiềuthư viện có sẵn, mô hình lập trình khá sáng sủa cùng với Eclipse.

Google cho biết, Android cho phép điện thoại sẽ nối mạng đơn giản như máytính Ngoài ra, sẽ có hàng triệu phần mềm, các ứng dụng khác được tạo ra Ebay, mộtthành viên của liên minh bày tỏ, hy vọng người dùng điện thoại di động sẽ dễ dàngmua bán, sử dụng dịch vụ của hãng từ chính điện thoại

Android sẽ mang nhiều lợi ích cho khách hàng, các lập trình viên và nhà sảnxuất, nhà cung cấp mạng di động Điều này cũng có nghĩa các sản phẩm, dịch vụ cógiá rẻ hơn bởi điện thoại sẽ dễ sử dụng, ứng dụng nhiều hơn, khai thác các dịch vụInternet đơn giản hơn

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

Hệ điều hành android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiênbản 2.6), Tầng Libraries & Android runtime , Tầng Application Framework và trêncùng là tầng Application

Mô hình sau thể hiện các thành phần chính của hệ điều hành Android Mỗi phầnđược mô tả như sau:

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 16

Trang 17

Hình 1: Mô hình kiến trúc hệ điều hành Android III.1 Applications layer (Tầng ứng dụng)

Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như : Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi điện(phone),quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc(Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh (camera) Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi(Game), từ điển

Các chương trình có các đặc điểm là :

 Viết bằng Java, phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựnglên để phục vụ cho nó Nó có thể là một Active Program : Chương trình có giaodiện với người sử dụng hoặc là một background : chương trình chạy nền hay làdịch vụ

Trang 18

 Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thờiđiểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứngdụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi Điều đó

có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn

 Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi

sử dụng tài nguyên, cấu hình phần cứng và hệ thống

 Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di độngkhác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền Cácứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụngCPU

 Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu

III.2 Application Framework (Nền tảng ứng dụng)

Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên cóthể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sử dụngchung để tiết kiệm tài nguyên

Đây là một nền tảng mở, điều đó có 2 điều lợi:

- Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấu hìnhđiện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếu ngườidùng Vì thế nên tuy cùng chung nền tảng android mà điện thoại của Google có thểkhác hẳn với Motorola, HTC, T-Mobile, Samsung

- Với lập trình viên: Cho phép lập trình viên có thể sử dụng các API ở tầngtrên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự

do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc Một tậphợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền,liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao

Giới thiệu một số thành phần của phần này:

- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng nhưcung cấp công cụ điều khiển các Activity

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 18

Trang 19

- Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọiđiện thoại

- XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực

- Location Manager: Cho phép xác định vị trí của điện thoại thoại dựa vào hệthống định vị toàn cầu GPS và Google Maps

- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện ngườidùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

- Notication Manager: Quản lý việc hiển thị các thông báo (như báo có tinnhắn, có e-mail mới )

- Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm cácfile hình ảnh, âm thanh, layout, string (Những thành phần không được viết bởi ngônngữ lập trình)

III.3 Libraries Layer (Tầng thư viện) & Android Runtime (Tầng

 Thư viện hệ thống C - một cài đặt dẫn xuất BSD của thư viện hệ thốngchuẩn C (libc), được điều chỉnh để nhúng vào các thiết bị cài đặt mãnguồn Linux

 Thư viện Media - dựa trên nền tảng mở của PacketVideo, những thưviện hỗ trợ phát lại và lưu nhiều định dạng audio và video phổ biến,chẳng hạn như những file hình ảnh tĩnh, bao gồm MPEG4, H.246, MP3,ARM, AAC, JPG và PNG

 Surface Manager - quản lý các truy cập vào hệ thống con hiển thị và tíchhợp các lớp đồ họa 2D và 3D từ nhiều ứng dụng

Trang 20

 LibWebCore - một engine trình duyệt web hiện đại với việc tích hợptrình duyệt Android và một trình duyệt web có thể nhúng được.

 SGL - một engine đồ họa 2D tầng dưới

 Thư viện 3D (3D libraries) - một cài đặt dựa trên các APIs của côngnghệ OpenGL_ES 1.0, các thư viện sử dụng phần cứng tăng tốc 3D hoặccác thư viện bao gồm các ứng dụng phần mềm 3D chuyển định dạng ảnhvector thành bitmap được tối ưu cao độ

 FreeType - trình bày font ảnh và vector

 SQLite - một hệ cơ sở dữ liệu quan hệ mạnh mẽ và tốn ít bộ nhớ có sẵncho tất cả các ứng dụng

b Phần Android runtime:

Phần này bao gồm một bộ các thư viện chính cung cấp hầu hết các chức năng

có sẵn trong các thư viện chính của ngôn ngữ Java

Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường

- Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA IO,Collections, File Access

- Thứ hai là một máy ảo java (Dalvik Virtual Machine)

Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điềuhành android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạybằng máy ảo Dalvik do Google phát triển

Mỗi ứng dụng Android chạy trên bộ xử lý riêng của nó, với mỗi một máy ảoDalvik

Dalvik được thiết kế để một thiết bị có thể chạy nhiều máy ảo hữu hiệu Máy ảoDalvik thực thi nhiều file định dạng (.dex), định dạng này có thể được tối ưu để ít tốn

bộ nhớ nhất Máy ảo dựa trên việc đăng ký, và chạy nhiều lớp được biên dịch bởi bộbiên dịch Java, nó được chuyển thành định dạng dex bằng công cụ “dx” có sẵn

Máy ảo Dalvik dựa trên hệ điều hành Linux cho những chức năng tầng dướinhư phân luồng và quản lý bộ nhớ cấp thấp

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 20

Trang 21

III.4 Linux Kernel (Nhân Linux)

Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhânlinux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt độngcủa điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp nàybao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (drivermodel), thực hiện bảo mật (security), quản lý tiến trình (process)

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nângcấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạnchế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạngkhông dây

 Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth

 USB driver : Quản lý hoạt động của các cổng giao tiếp USB

 Keypad driver : Điều khiển bàn phím

 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi

 Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệudạng audio thành tín hiệu số và ngược lại

 Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng

vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyềnthông được thực hiện

 M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD,flash

 Power Madagement : Giám sát việc tiêu thụ điện năng

Trang 22

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

Trong phạm vi một bài tìm hiểu về hệ điều hành, em chỉ xin tìm hiểu rõ mộtvấn đề của hệ điều hành android đó là vấn đề quản lý hệ thống tập tin Phần này cóđiểm thuận lợi để tìm hiểu đó là vì được phát triển từ nhân linux nên hệ thống tập tintrê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ữngquyền hạn của người sử dụng lên file

IV.1 Tổng quan về hệ thống file trên Android

Trong android, các file được tổ chức thành các thư mục, theo mô hình phâncấ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 file chophé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ớicá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 để đặttên file Không được bắt đầu một tên file 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ênfile 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 (bytestream) Cấu trúc thống nhất này cho phép android áp dụng khái niệm file cho mọithà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ệumộ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ựatrên kiểu file: ordinary file, directory file, character device file, và block device file

IV.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ệ điềuhành android (cũng như linux) thì coi directory cũng là file và nó là một loại file đặcbiệt Thực tế còn một số loại file nữa có thể liệt kê theo bảng sau :

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 22

Trang 23

Chữ cái biểu diễn Kiểu file

d Thư mục (Directory)

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

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

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

p File đường ống (pipe)

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

Hình 2: Bảng liệt kê một số kiểu file trong Linux

IV.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ếtvớ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ácquyề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 (execute)

Cụ thể như sau: Một file sẻ có những quyền hạn tương ứng với 9 ký tự theomẫ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 đó

x/-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

Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwxr-xr thì điều đó có

nghĩa :

3 ký tự đầu là rwx : Chủ nhân có thể đọc, ghi và thực thi file

3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu file có quyền đọc và thực thifile chứ không có quyền ghi, chỉnh sửa file

3 ký tự cuối là r nghĩa là những người không sở hữu file chỉ được phép đọc

mà không thể chỉnh sửa hay thực thi file

Trang 24

Trên hệ thống android, để biết xem được quyền hạn đó, ta có thể sử dụng câulệnh ls –l –d

Ví dụ: ls –l –d /mnt/sdcard/FanHy để xem quyền hạn của file

/mnt/sdcard/QuangHoa thì có thể trả về kết quả như sau:

d -rwxr-x system sdcard_rw 2010-12-29 21:00 FanHy

Thì những thông tin có thể lấy về là :

Ký tự đầu tiên là chữ d : vậy file đó có kiểu là thư mục hay là file bao hàm Chuổi ghi quyền hạn là -rwxr-x thì có nghĩa

 ( -)Người sở hữu không được phép đọc, ghi, thực thi file

 (rwx) Nhóm tài khoản sử hữu được phép đọc, ghi, thực thi file

 r-x : Những người không sở hữu file được phép đọc và thực thi filenhưng không được phép chỉnh sửa hay ghi lên file

Chuổi miêu tả file : sdcard_rw nghĩa là đây thuộc thiết bị thẻ nhớ sd, đọc vàghi được

2010-12-29 21:00 Thời gian chỉnh sửa lần cuối

FanHy : tên của file

Ngoài ra có 2 lệnh khác cũng hữu dụng là lệnh chown để thay đổi quyền sởhữu file, lệnh chmod để thay đổi quyền hạn liên quan đến file và lệnh chgrp để thayđổi nhóm người sở hữu file

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

Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file thư mụccò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.Cấu trúc đó có thể mô tả bằng một cây thư mục có dạng như sau :

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 24

/root

Trang 25

Hình 3: Sơ đồ cây thư mục trên hệ điều hành Android

Giới thiệu một vài thư mục tiêu biểu :

 /(root) : Là thư mục gốc Là thư mục duy nhất không có thư mục cha

 / mnt : thư mục chứa thiết bị lưu động (removeable)

 /system : chứa những thành phần cơ bản nhất của hệ thống

 /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạtđộng của hệ thống đều bị chi phối ở những file cấu hình này

 /system/lost+found : chứa những tập tin bị mất lúc khởi động máy

 /system/font : chứa những font chữ hiển thị được

 /system/lib : chứa các thư viện để các phần mềm hoạt động (các phần mềm viếtbằng ngôn ngữ java)

 /system/app : chứa các file apk của phần mềm (Các file cài đặt ứng dụng, kiểunhư MSI trong window hay dev trong Linux)

 /system/bin : Chứa các chương trình nội trú của hệ thống

V Cách thức tổ chức file trên Android Java Application

Tên File Chức năng

Activity.java File khởi động mặc định

R.java File chứa tất cả ID resource

Android Library/ Thư mục chứa file Android’s SDK

Assets/ Đa phương tiện và các file yêu cầu

res/ Chứa tài nguyên cần sử dụng Res/drawable Thư mục chứa file ảnh

Res/layout File XML-style view layout

Trang 26

Res/value File cấu hình

AndroidManifest.xml File miêu tả cho hệ điều hành bên ngoài của ứng dụng

Hình 4: Cách tổ chức file trên Android Java Application

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 26

Trang 27

VI Vòng đời Android

Hình 5: Vòng đời Android

OnCreate(): gọi khi hoạt động này lần đầu tiên tạo ra Đây là nơi bạn

nên làm tất cả các thiết lập của bạn bình thường tạo ra để xem, kết dữliệu vào danh sách

OnRestart(): gọi sau khi các hoạt động dừng lại, chỉ cần trước khi nó

được bắt đầu lại, nó luôn theo sau onStart()

OnStart(): được gọi ngay trước khi hoạt động sẽ được nhìn thấy bởi

người dùng

OnResume (): gọi trước khi hoạt động bắt đầu để tương tác với người sử

dụng, nó theo sau onPause()

Trang 28

Onpause(): được gọi khi hệ thống bắt đầu gọi lại hoạt động khác.

Phương pháp này được sử dụng để dừng các hoạt động đưa dữ liệu vào

hệ thống, dừng ảnh động

Onstop(): gọi khi hoạt động này không còn hiển thị cho người dùng bởi

vì một hoạt động khác đã được nối trở lại

OnDestroy(): gọi trước khi hoạt động được tiêu huỷ Đây là cuộc gọi

cuối cùng Nó có thể được gọi khi hoạt động đã xong, hay vì hệ thốngtạm thời phá hủy để tiết kiệm không gian

VII Bộ SDK (Software Development Kit – Bộ phát triển

phần mềm) của Google phát triển dành cho Android VII.1 Giới thiệu bộ Android SDK

Google đã phát triển bộ SDK (bộ phát triển phần mềm) cho Android giúp cáclập trình viên tạo các ứng dụng cho nền tảng di động Android một cách dễ dàng

Bộ SDK được thiết kế để cho phép các nhà phát triển “mở rộng, thay thế và tái

sử dụng” các thành phần phần mềm và đi kèm công cụ gỡ lỗi, thư viện, một chươngtrình device emulator (thiết bị giả lập) và các dự án mẫu

SDK cũng chứa chương trình hỗ trợ để kết hợp với các công cụ với nền tảngphát triển nguồn mở Eclipse

Để sử dụng SDK, các nhà phát triển cần tải vào máy tính dựa trên X86 chạyWindow XP, Vista, Mac OS 10.4.8 hoặc các đời sau đó, Linux Ubuntu Dapper Drakehoặc các đời sau

Các nhà phát triển cũng sẽ cần Eclipse 3.2 hoặc các đời sau, với công cụ pháttriển Java và chương trình hỗ trợ của Android SDK, Java 1.5 hoặc 1.6, Apache Ant,môi trường phát triển tổng hợp, Python 2.2 và các đời sau

VII.2 Cấu hình bộ Android SDK trong Eclipse 3.5

Sử dụng Eclipse như một môi trường để phát triển ứng dụng Android Bạn cóthể cài đặt plugin ADT (Android Development Tools), công cụ này hỗ trợ các công cụ

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 28

Trang 29

lập trình Android gắn liền với Eclipse với các chức năng bao gồm: tạo, chạy, gỡ lỗicác ứng dụng Android nhanh và dễ dàng hơn nhiều.

Nếu bạn chưa sử dụng Eclipse thì bạn hãy cài đặt nó ngay, vì nó là một công cụkhông thể thiếu để lập trình Android

Sau đó hãy tải về bộ SDK tại web www.code.google.com/android Giải nén tậptin zip đến một vị trí phù hợp trên máy bạn Mặc định, tập tin SDK được giải néntrong một thư mục có tên: android_sdk<flatform>_<release>_<build> Thư mục nàychứa thư mục con: tools/samples/

Hãy chú ý đến tên và vị trí của thư mục được giải nén của SDK trên hệ thốngcủa bạn Bạn sẽ cần đến thư mục SDK sau này khi cài đặt plugin Android hay dùngcác công cụ của SDK

Để tải và cài đặt Android plugin, bạn hãy làm thứ tự các bước sau:

1 Khởi động Eclipse, chọn Help>Software Update>Find and Install…

2 Xuất hiện hộp thoại tiếp theo, chọn Search for new features to intall và

nhấn Next

3 Nhấn New Remote Site

4 Gõ tên bất kỳ cho remote site (ví dụ: Android Plugin) và đánh vào địa chỉ

sau: https://dl-ssl.google.com/android/eclipse/

Nhấn OK.

5 Đánh dấu vào Android plugin mới xuất hiện và nhấn Next.

6 Trong hộp thoại mới Search Results, chọn Android Plugin>Eclipse Intergration>Android Development Tools và nhấn Next.

7 Đọc kỹ Accept terms of the license agreement và nhấn Next.

8 Nhấn Finish.

9 Lúc này ADT plugin chưa được đánh dấu chọn, bạn có thể chấp nhận cài

đặt bằng bất cứ giá nào, bằng cách nhấn Install All.

10 Khởi động lại Eclipse.

Trang 30

11 Vào Window>Preferences và mở mục Android plugin bạn chọn đường

dẫn vào thư mục cài đặt Android SDK, sau đó OK.

VII.3 Cập nhật ADT Plugin

Trong một vài trường hợp, mỗi phiên bản SDK mới của Android sẽ có một bộADT plugin mới tương thích với nó Bạn có thể làm theo các bước sau để cập nhậtADT plugin từ bên trong Eclipse

1 Chọn Help>Software Update>Find and Install…

2 Chọn Search for updates of curently installed features và nhấn Finish.

3 Nếu có sẵn bất cứ cập nhật nào cho ADT, thì chỉ cần chọn nó và cài đặt.

Ngoài ra, ta có thể chọn cách khác để cập nhật ADT plugin

1 Chọn Help>Software Updates> Manager Configuration

2 Chọn Android Development Tools <version>.

3 Chọn Scan for Updates bên dưới Available Tasks.

VII.4 Sử dụng bộ công cụ Eclipse để phát triển các ứng dụng

Android

Tạo một Android Project trong Eclipse

ADT plugin cung cấp các tác dụng tạo một dự án mới (New Project Wizard), do

đó bạn có thể nhanh chóng tạo một dự án trong Eclipse dựa trên mã có sẵn hoặc viết

mã mới Để tạo một dự án mới bạn hãy làm theo sau:

1 Chọn File>New>Project.

2 Chọn Android>Android Project, và nhấn Next.

3 Chọn tên cho dự án:

Chọn Create new project in workspace để bắt đầu dự án Ghi tên

dự án, tên gói cơ sở, tên của lớp Activity để khởi tạo cho một tập

tin *.java.

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 30

Trang 31

Chọn Create project from existing source để bắn đầu một dự án

mới Sử dụng tùy chọn này nếu bạn muốn xây dựng hoặc là chạy bất kỳ một ứng dụng nào sử dụng SDK Android Các ứng dụng

được định vị trong samples/ direstory của SDK.

Mở thư mục chứa mã và nhấn OK Nếu thư mục chứa một Android

manifest file hợp lệ thì ADT plugin sẽ tự động tạo ra package,activity và tên ứng dụng cho bạn

4 Nhấn Finish.

ADT plugin tạo những thư mục và tập tin thích hợp cho bạn theo từng loại dựán:

Thư mục src bao gồm tập tin Activity.java

Thư mục res chứa các tài nguyên như hình ảnh…

AndroidManifest.xml, tập tin quản lý các Activity cho dự án

Một số gói cơ bản cho Android SDK có thể phát triển những ứng dụng tốt hơn.Những gói đó được tổ chức như các tầng, được liệt kê từ cấp độ thấp đến cấp độ cao

Android.util: chứa những lớp tiện ích cấp độ thấp, chẳng hạn như các

lớp container được đặc biệt hóa, tiện ích XML, …

Android.os: cung cấp những dịch vụ hệ điều hành nền tảng, chuyển các

gói tin, giao tiếp giữa các tiến trình

Android.graphics: cung cấp những công cụ đồ họa mức độ thấp như

Canvas, bộ lọc màu, points trong map, và các khối chữ nhật giúp bạngiúp bạn có thể trang trí trực tiếp lên giao diện

Android.text, android.text.method, android.text.style: cung cấp bộ

công cụ xử lý văn bản mạnh mẽ, hổ trợ rich text, những phương thứcnhập…

Android.database: chứa các APIs cấp độ thấp để làm việc với cơ sở dữ

liệu

Trang 32

Android.content: cung cấp các dịch vụ khác nhau truy cập dữ liệu trên

thiết bị: những ứng dụng được cài đặt trên thiết bị và những tài nguyêngắn liền với chúng, và những bộ cung cấp dữ liệu chung lâu dài củariêng Android

Androi.view: cung cấp các lớp có thể đưa ra những lớp giao diện cơ bản

mà các lớp này có thể thao tác bố cục cho giao diện ứng dụng và tươngtác với người dùng

Android.widget: gói này chứa hầu hết các yếu tố về giao diện sử dụng

trên màn hình ứng dụng

Android.app: lớp cấp độ cao đóng gói mô hình ứng dụng tầng trên của

Android

Android.webkit: cung cấp các công cụ để lướt web.

Android.provider: cung cấp các lớp truy cập vào content providers

(bộ chia sẽ dữ liệu giữa các gói ứng dụng) được cung cấp trong Android

Android.opengl: cung cấp tiện ích OpenGL_ES, thư viện hỗ trợ đồ họa

3D

Android.media: cung cấp các lớp xử lý về các phương tiện như audio,

video, image, …

Android.net: cung cấp các hỗ trợ cho việc truy cập web

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 32

Trang 33

CHƯƠNG 3

CƠ SỞ LÝ THUYẾT

I Giới thiệu về các loại Game

Thị trường game hiện nay rất phong phú với nhiều thể loại game, chúng tôi xingiới thiệu một số thể loại game chính

I.1 Game hành động – Action

Là những game đề cao đến khả năng chiến đấu của nhân vật trong một khu vựcrộng lớn, sử dụng ít câu đố, thông điệp phức tạp

Dạng này yêu cầu người chơi phải có khả năng phản xạ nhanh, phối hợp mắt tốt, am tường các loại vũ khí trong game và hợp phong cách “chạy và bắn” Tiêubiểu nhất là game Half-Life Trong game, người chơi sẽ phải tự “nghiên cứu” côngdụng và sức sát thương của từng loại vũ khí để sử dụng hiệu quả nhất

tay-I.2 Game nhập vai – Role Playing Game (RPG)

Với RPG, người chơi vào vai một nhân vật hoặc một nhóm để tham gia các sựkiện, giao tiếp với các nhân vật “phụ” NPC (nonplayer characters), tham gia các cuộcchiến với một quá trình xây dựng nhân vật thông qua việc tăng cấp độ (level up), pháttriển các kỹ năng (skill), tính cách Tiêu biểu cho dòng game này như: Final FantasyTactics, Fantasy…

I.3 Game phiêu lưu – Adventure

Nét cơ bản của game phiêu là khám phá các vùng đất, tìm các vật dụng và giải

đố, có rất ít hoặc không có các cảnh mang tính “hành động” Game phiêu lưu có rất íthoặc không có sự phát triển nhân vật, cũng như không tăng cấp độ

Game phiêu lưu có cốt truyện rất chặt chẽ và rất dài, đòi hỏi người chơi phảivận dụng “trí tuệ”, lòng nhẫn nại và sự quyết đoán để chọn hướng đi tốt nhất Chuyến

du hành vào lòng đất Journey To The Center of The Earth sẽ là game điển hình về thểloại này

Trang 34

I.4 Game chiến thuật – Strategy

Strategy chú trọng cách quản lý nguồn tài nguyên và quân đội trước những đốithủ do máy hoặc người chơi khác điều khiển và hầu hết đều liên quan chiến tranh Nhìn chung, có 2 dạng phân biệt được là realtime strategy (chiến thuật thời gian thực,RTS) và turnbased strategy (chiến thuật theo lượt, TBS)

RTS có đặc trưng là hành động (diễn biến) xảy ra liên tục, không ngừng do danh sách các lệnh được đưa ra liên tục, đòi hỏi người chơi phải có cách “điều binhkhiển tướng” hợp lý Tiêu biểu là Starcraft: Brood War hay Warcraft III: FrozenThrone

Còn với đặc thù các hành động bắt buộc dừng theo định kỳ để đặt vào các lệnh,TBS đòi hỏi người chơi phải biết cách tính toán “nặng nhẹ” cho mỗi lượt đi của mình.Dòng game “trung thành” với TBS là Heroes of Might and Magic

Thể loại này có một số rất ít game không lấy đề tài chiến tranh mà hướng vềkinh tế hoặc chính trị, như Monopoly Tycoon

I.5 Các thể loại game nhỏ hơn

I.1 Kinh dị (Survival horror)

Gần giống action-adventure nhưng luôn tạo ra cảm giác sợ hãi và tình trạng hồihộp cho người chơi Yếu tố kinh dị thường được tạo ra từ ma quỷ, linh hồn, các xácchết di động (zombie) Game dạng này không dành cho những người mắc bệnh tim

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 34

Trang 35

Thể thao (Sport)

Được xem là một nhánh rẽ của simulation, sports mô tả một môn thể thao củathế giới thực diễn ra trong môi trường 3D Game thường được tổ chức theo cơ cấumùa giải, và cho phép người chơi đảm nhận các vị trí huấn luyện viên, ông bầu bêncạnh các tính năng trao đổi, chuyển nhượng cầu thủ, quản lý ngân sách Ở thể loại này,hiện nay ít game nào có thể qua mặt “vua bóng đá” FIFA của Electronic Arts

Giải đố (Puzzle)

Đây là lĩnh vực dành cho những người yêu thích các câu đố cực khó, hơn hẳnadventure Game đòi hỏi người chơi giải quyết nhanh chóng (và phải chính xác) cácvấn đề đã được đặt ra theo hướng suy luận logic Đôi khi các vấn đề này lại được lồngghép, xâu chuỗi để tăng độ khó Không ít người đã tỏ ra bối rối trước game ChainReaction vì không tìm được lời giải phù hợp

Đối kháng (Fighting)

Đặc trưng của thể loại này là những trận so tài tay đôi giữa các nhân vật Dònggame tiêu biểu: Tekken, Street Fighter

II Các thành phần về đồ họa (graphics)

II.1 File bitmap

Ảnh bitmap là một định dạng ảnh tạo thành từ một tập hợp các điểm màu đượcxếp liên tục theo một thứ tự nhất định do người định dạng ảnh quy định và có thể đượcnén lại Đây là loại ảnh có chất lượng lưu trữ tốt, hình ảnh và màu sắc trung thực,nhưng lại tốn không gian lưu trữ, tốc độ hiển thị chậm và tương đối phức tạp trongviệc xử lý Một vài ví dụ về các loại ảnh bitmap phổ biến là GIF, PCX, BMP, TIF,RLE, ICO, GEM Image

II.2 Các mô hình màu

Để biểu diễn màu sắc trong máy tính người ta dùng phương pháp hòa trộn cácmàu khác nhau Có 2 loại mô hình màu thường dùng là RGB và CMYK:

CMYK-Cyan Magenta Yellow Key: Key trong tiếng Anh nên hiểu theo

Trang 36

này có tên tiếng Anh là black do chữ B đã được sử dụng để chỉ màu xanhlam (blue) trong mô hình màu RGB Mô hình màu này được dùng trongcông nghệ in ấn vì khi 3 màu vì từ 3 màu CMY không thể tạo ra màuđen.

RGB-Red Green Blue: sửa dụng 3 màu cơ bản để tạo nên các màu sắc

khác nhau

II.3 Background Image

Background image là hình nền nằm ở dưới tất cả các đối tượng trong game Nóđược vẽ đầu tiên khi khung hình được cập nhật

II.4 Frame

Tất cả các thiết bị hiển thị hình ảnh chuyển động hiện nay như TV, monitor…đều dựa trên khả năng lưu ảnh của mắt người Sau khi hình ảnh biến mất mắt củachúng ta còn lưu lại tại vỏng mạc 1/24 giây Vì vậy để tạo các đoạn film người ta chỉcần thay đổi liên tục các hình ảnh theo tốc độ 24 hình/giây hoặc cao hơn Trong gamecũng áp dụng kỹ thuật này để tạo chuyển động và mỗi lần cập nhật màn hình gọi là 1frame

Trong một frame thể hiện tất cả sự thay đổi của các đối tượng so với frametrước Sự thay đổi của các đối tượng liên tiếp nhau trên mỗi frame nên với tốc độframe được cập nhật càng cao sẽ tạo ra những hình ảnh mịn đẹp

Trong 1 giây màn hình thường cập nhật 25 đến 60 frame (trong game) Đó cònđược gọi là chỉ số FPS (frame per second) của game

II.5 Tile

Tile là khái niệm chỉ đến một ảnh có kích thước nhỏ (thường là ảnh bitmap),thường là hình vuông hoặc hình chữ nhật Độ dài các cạnh của tile (tính theo pixel)thường là một ước số của khung nhìn (cửa sổ màn hình)

Các hình ảnh lớn trong game được tạo nên từ các tile nhỏ Việc chia nhỏ cáchình ảnh lớn này thành các tile nhỏ hơn sẽ thuận lợi cho việc lưu trữ và linh hoạt trongviệc tạo ra các kiểu hình ảnh đồ họa trong game Chẳng hạn, nếu có một tile là hìnhảnh một phần của một bức tường lớn, nếu ghép nhiều tile này lại ta sẽ có hình ảnh đầy

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 36

Trang 37

đủ của một bức tường Tùy số lượng và cách sắp xếp các tile này mà ta sẽ có các hìnhảnh khác nhau của các bức tường với các hình dạng và kích thước khác nhau Nhưvậy, thay vì với mỗi bức tường có kích thước và hình dạng khác nhau ta phải dùng mộtảnh lớn, việc này gây tốn bộ nhớ và chương trình sẽ chạy chậm hơn do tốc độ load ảnh

sẽ chậm hơn, ta có thể chỉ cần dùng một tile với kích thước nhỏ để tạo ra một bứctường với kích thước và hình dạng bất kỳ Việc dùng một ảnh nhỏ hơn nhiều lầnđương nhiên sẽ giúp tiết kiệm bộ nhớ rất nhiều và tốc độ chương trình cũng được cảithiện nhờ tốc độ load ảnh

Với những ưu điểm như vậy, tile thường được ứng dụng trong việc tạo map(bản đồ) cho game 2D

II.6 Sprite

Là tên gọi chung để chỉ các dạng hình ảnh của nhân vật, mỗi dạng hình ảnh nhưvậy thể hiện một trạng thái trong quá trình di chuyển của nhân vật, còn gọi là cácsprite Sprite là thành phần đồ họa chủ yếu tạo nên sự chuyển động trong game Sựchuyển động mà ta nhìn thấy thực chất là sự thay đổi liên tục của các sprite theo mộtthứ tự nhất định tùy theo kiểu chuyển động, mỗi kiểu chuyển động sẽ có một tập cácsprite khác nhau Độ mịn của chuyển động mà ta nhìn thấy phụ thuộc vào số lượng cácsprite của kiểu chuyển động đó, càng nhiều sprite thì chuyển động càng mịn và ngượclại Kích thước của các sprite khác nhau có thể khác nhau tùy theo từng đối tượng

II.7 Map (Bản đồ)

Map là vùng thể hiện tất cả các đối tượng trong game hay map chứa các đốitượng Tất cả các đối tượng di chuyển trong phạm vi của map không thể vượt ra ngoàiphạm vi của map Khi thiết kế map cần phải biết đối tượng nào chồng lên đối tượngnào để đối tượng nào cần vẽ lên trước, đối tượng nào vẽ lên sau Ví dụ như đối tượngnhân vật chạy trên gạch thì khi thiết kế phải vẽ gạch lên trước rồi mới vẽ đối tượngnhân vật lên sau Vì vậy map được thiết kế theo tầng hoặc có thứ tự ưu tiên cho từngđối tượng

Trang 38

II.8 Layer

Layer được hiểu là một khối hình ảnh trong game Các layer là những ảnh mà ta

có thể vẽ lên màn hình, ẩn đi, di chuyển hay là sắp xếp chúng theo độ sâu tức là khinhiều ảnh chồng chéo lên nhau thì layer có độ sâu lớn hơn sẽ bị layer có độ sâu nhỏhơn che khuất

III Kỹ thuật xây dựng đồ họa

III.1 Graphics techiques (kỹ thuật đồ họa)

Trong game 2D thường dùng góc nhìn từ trên xuống vuông góc với mặt đất Đểtạo cảm giác 3D người ta chuyển góc nhìn thành 1 góc nghiêng so với mặt đất bằngcách chuyển các tile thành hình thoi (Isometric tile) hoặc hình lục giác đều (Hexagonatile) Hình ảnh nhân vật (animation) sẽ được đặt sao cho phần chạm đất của nhân vậtnằm giữa tile mà nó đang đứng Từ vị trí đang đứng nhân vật có thể di chuyển theonhiều hướng tạo cho game giống thật hơn

Isometric là tile có dạng hình thoi Được lưu trữ kích thước với 3 thuộc tính:chiều dài, chiều rộng, chiều cao

Sự di chuyển của đối tượng trên map sử dụng Isometric tile sẽ có 8 hướng nhưhình sau với sự thay đổi tọa độ trên map như sau:

Hình 6: Các hướng di chuyển của Isometric tile

Phan Ngọc Huy, Hoàng Đức Nhân – 06T3 38

Ngày đăng: 20/04/2021, 23:40

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