BÁO CÁO MÔN PROJECT 2 Đề tài : LẬP TRÌNH GAME SUDOKU TRÊN ANDROID Sinh viên thực hiện: Nguyễn Vũ Hải SHSV : 20090966 GV hướng dẫn : TS. Nguyễn Thị Oanh ThS. Phạm Thị Phương Giang MỤC LỤC MỤC LỤC 1 PHẦN NỘI DUNG 3 CHƯƠNG 1 TỔNG QUAN GIỚI THIỆU VÀ TÌM HIỂU ĐỀ TÀI 3 1.1. MÔ TẢ ĐỀ TÀI 3 1.2. MỤC TIÊU CẦN ĐẠT ĐƯỢC 4 1.3 HƯỚNG GIẢI QUYẾT 4 1.5 CÔNG CỤ PHÁT TRIỂN 4 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5 2.1 SƠ LƯỢC QUÁ TRÌNH PHÁT TRIỂN CỦA ANDROID 5 2.1.1 Android là gì? 5 2.1.2 Lịch sử ra đời 5 2.1.3 Tính năng mở của hệ điều hành Android 5 2.1.4 Tất cả các ứng dụng có thể được tạo ra cho Android? 5 2.1.5 Cộng đồng phát triển Android: 5 2.2 Máy ảo Dalvik 5 2.3 Kiến trúc của Android 6 2.3.1 Tầng ứng dụng 6 2.3.2 Application framework 6 2.3.3 Library 7 2.3.4 Android Runtime 7 2.3.5 Linux kernel 7 2.4 Android Emulator 7 2.5 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT 8 2.5.1 AndroidManifest.xml 8 2.5.2 File R.java 9 2.6 CÁC THÀNH PHẦN CHÍNH VÀ CHU KỲ CỦA MỘT ỨNG DỤNG ANDROID 10 2.6.1 Các thành phần chính trong một ứng dụng của Android 10 2.6.2 Chu kỳ sống của ứng dụng Android 13 2.7 THÀNH PHẦN GIAO DIỆN ANDROID CÁC CONTROL 15 2.7.1 View 15 2.7.2 ViewGroup 16 2.7.3 Button 17 2.7.4 ListView 17 2.7.5 EditText 18 2.7.6 TextView 18 2.7.7 CheckBox 19 2.7.8 MenuOption 19 2.7.9 ContextMenu 20 CHƯƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG GAME SUDOKU 21 3.1 ĐỒ HỌA 2D ỨNG DỤNG 21 3.1.1 Màu sắc 21 3.1.2 Paint 21 3.1.3 Canvas 22 3.1.4 Path 22 3.1.5 Drawable 22 3.2. Phân tích thiết kế UML 23 3.2.1 Biều đồ usecase 23 3.2.2 Biều đồ lớp 24 CHƯƠNG 4 DEMO ỨNG DỤNG 25 4.1 MÀN HÌNH GIAO DIỆN CHÍNH 25 4.2 MÀN HÌNH ĐIỀN SỐ 27 PHẦN KẾT LUẬN ĐÁNH GIÁ 29 CHƯƠNG 5 KẾT LUẬN ĐÁNH GIÁ 29 5.1 KẾT QUẢ ĐẠT ĐƯỢC 29 5.2 HẠN CHẾ 29 5.3 HƯỚNG PHÁT TRIỂN 29 TÀI LIỆU THAM KHẢO 30 PHẦN NỘI DUNG CHƯƠNG 1 TỔNG QUAN GIỚI THIỆU VÀ TÌM HIỂU ĐỀ TÀI 1.1. MÔ TẢ ĐỀ TÀI Ngày nay, với sự phát triển của công nghệ, đặc biệt là lĩnh lực công nghệ thông tin đã đem lại nhiều thành tựu phục vụ nhu cầu của con người như văn hóa, giáo dục, an ninh quốc phòng….Đặc biệt trong lĩnh vực di động nó đã góp phần mang lại nhiều lợi ích cho con người, như dễ dàng và thuận tiện liên lạc với nhau dù ở rất xa nhau làm giảm chỉ phi đi lại... Ngày nay điện thoại đã rất phổ biến với mỗi con người. Điện thoại bây giờ không chỉ đơn thuần là để nghe và gọi mà nó chứa rất nhiều ứng dụng và tiện ích của một chiếc điện thoại thông mình nhằm phục vụ nhu cầu của con người. Các nhà phát triển đã tạo ra chiếc điện thoại thông minh và cài đặt hệ điều hành cho chúng để các thể phát huy được hết tất cả các chức năng. Cùng với sự phát triển của những chiếc điện thoại thông mình thì bên cạnh đó hệ điều hành Android ra đời và đã tạo ra sự phát triển mạnh mẽ cho sự phát triển của công nghệ di động. Với sự phát triển nhanh chóng đó thì những ứng dụng giải trí cũng đang phát triển mạnh mẽ nhằm phục vụ nhu cầu giải trí của con người. Lập trình ứng dụng, lập trình game đang là xu thế thực tế là bước đột phá và cũng là tiềm năng trong sự phát triển của công nghệ di động. Và từ đó các game trên điện thoại di động xuất hiện ngày càng nhiều, trên các hệ điều hành khác nhau như Android, iOS, RIM Blackberry OS, Symbian…. Và Android là hệ điều hành do Google mua về và cho ra đời vào năm 2007, đây là hệ điều hành tương đối mới và đang rất được ưa chuộng trên thị trường từ khi nó ra đời, vì thế em quyết định chọn đề tài “Lập trình game Sudoku trên Android”. Game Sudoku là một game ra đời từ rất lâu và là game trí tuệ hấp dẫn người chơi mà luật chơi lại đơn giản. Đây là game có một mạng lưới các ô bao gồm 81 ô, được xếp thành 9 hàng ngang và dọc. Người chơi phải lắp đầy các ô trống sao cho số của các ô trong hàng và cột là các số từ 1 đến 9 không được trùng nhau. Khi trò chơi bắt đầu chỉ ít các con số đã được điền vào và người chơi không được thay đổi và phải điền đầy đủ các con số còn lại. Trước kia game Sudoku thường chơi trên giấy với bút chì, nhưng hiện nay đã có rất nhiều phần mềm chơi game trên máy tính và điện thoại. Khi so sánh game Sudoku với các loại game khác ta thấy, game này đã cũ nhưng vẫn rất được ưa chuộng bởi tính trí tuệ cao của nó. Không yêu cầu đồ họa cao, nhưng người chơi vẫn thích thú, mỗi bàn chơi là một thách thức tư duy logic. Kích thích tính hiếu thắng của người chơi, tính tò mò của các em nhỏ muốn chinh phục các con số. Hi vọng sau khi em làm xong đề tài này em sẽ có được một số ít kiến thức về hệ điều hành Android và cách lập trình ứng dụng cho hệ điều hành đang rất được ưa chuộng trên thị trường, để giúp ích em sau này khi ra trường và đi làm. Mô tả sơ lược về hệ thống: • Ứng dụng game Sudoku giao diện gồm 4 button là Bắt Đầu, Tiếp Tục, Hướng Dẫn, Thoát. • Giao diện bàn game gồm có 9x9 ô số là 9 hàng và 9 cột, và được chia thành 3x3 vùng, mỗi vùng gồm các số từ 1 đến 9. • Khi người chơi chưa biết luật chơi thì người chơi nhấp vào button Hướng Dẫn khi đó sẽ hiện ra một dialog hướng dẫn cụ thể về luật và cách chơi game. • Ứng dụng game có 3 mức để cho người dùng chơi gồm Dễ, Bình Thường và Khó với các mức chơi sẽ có các ô số khác nhau phù hợp với từng mức.
BÁO CÁO MÔN PROJECT 2 Đề tài : LẬP TRÌNH GAME SUDOKU TRÊN ANDROID Sinh viên thực hiện: Nguyễn Vũ Hải SHSV : 20090966 GV hướng dẫn : TS. Nguyễn Thị Oanh ThS. Phạm Thị Phương Giang - 1 - MỤC LỤC MỤC LỤC 2 PHẦN NỘI DUNG 4 CHƯƠNG 1 TỔNG QUAN GIỚI THIỆU VÀ TÌM HIỂU ĐỀ TÀI 4 1.1. MÔ TẢ ĐỀ TÀI 4 1.2. MỤC TIÊU CẦN ĐẠT ĐƯỢC 5 1.3 HƯỚNG GIẢI QUYẾT 5 1.5 CÔNG CỤ PHÁT TRIỂN 5 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6 2.1 SƠ LƯỢC QUÁ TRÌNH PHÁT TRIỂN CỦA ANDROID 6 2.1.1 Android là gì? 6 2.1.2 Lịch sử ra đời 6 2.1.3 Tính năng mở của hệ điều hành Android 6 2.1.4 Tất cả các ứng dụng có thể được tạo ra cho Android? 6 2.1.5 Cộng đồng phát triển Android: 6 2.2 Máy ảo Dalvik 6 2.3 Kiến trúc của Android 7 2.3.1Tầng ứng dụng 7 2.3.2Application framework 7 2.3.3Library 8 2.3.4Android Runtime 8 2.3.5Linux kernel 8 2.4Android Emulator 8 2.5CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT 9 2.5.1AndroidManifest.xml 9 2.5.2File R.java 10 2.6CÁC THÀNH PHẦN CHÍNH VÀ CHU KỲ CỦA MỘT ỨNG DỤNG ANDROID 11 2.6.1Các thành phần chính trong một ứng dụng của Android 11 2.6.2Chu kỳ sống của ứng dụng Android 14 2.7THÀNH PHẦN GIAO DIỆN ANDROID & CÁC CONTROL 16 2.7.1View 16 2.7.2ViewGroup 17 2.7.3Button 18 2.7.4ListView 18 2.7.5 EditText 19 2.7.6TextView 19 2.7.7CheckBox 20 2.7.8 MenuOption 20 2.7.9ContextMenu 21 CHƯƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG GAME SUDOKU 22 3.1ĐỒ HỌA 2D ỨNG DỤNG 22 3.1.1Màu sắc 22 3.1.2Paint 22 3.1.3Canvas 23 3.1.4Path 23 3.1.5Drawable 23 3.2. Phân tích thiết kế UML 24 3.2.1 Biều đồ usecase 24 - 2 - 3.2.2 Biều đồ lớp 25 CHƯƠNG 4 DEMO ỨNG DỤNG 26 4.1MÀN HÌNH GIAO DIỆN CHÍNH 26 4.2MÀN HÌNH ĐIỀN SỐ 28 PHẦN KẾT LUẬN - ĐÁNH GIÁ 30 CHƯƠNG 5 KẾT LUẬN - ĐÁNH GIÁ 30 5.1KẾT QUẢ ĐẠT ĐƯỢC 30 5.2HẠN CHẾ 30 5.3HƯỚNG PHÁT TRIỂN 30 TÀI LIỆU THAM KHẢO 31 - 3 - PHẦN NỘI DUNG CHƯƠNG 1 TỔNG QUAN GIỚI THIỆU VÀ TÌM HIỂU ĐỀ TÀI 1.1. MÔ TẢ ĐỀ TÀI Ngày nay, với sự phát triển của công nghệ, đặc biệt là lĩnh lực công nghệ thông tin đã đem lại nhiều thành tựu phục vụ nhu cầu của con người như văn hóa, giáo dục, an ninh quốc phòng….Đặc biệt trong lĩnh vực di động nó đã góp phần mang lại nhiều lợi ích cho con người, như dễ dàng và thuận tiện liên lạc với nhau dù ở rất xa nhau làm giảm chỉ phi đi lại Ngày nay điện thoại đã rất phổ biến với mỗi con người. Điện thoại bây giờ không chỉ đơn thuần là để nghe và gọi mà nó chứa rất nhiều ứng dụng và tiện ích của một chiếc điện thoại thông mình nhằm phục vụ nhu cầu của con người. Các nhà phát triển đã tạo ra chiếc điện thoại thông minh và cài đặt hệ điều hành cho chúng để các thể phát huy được hết tất cả các chức năng. Cùng với sự phát triển của những chiếc điện thoại thông mình thì bên cạnh đó hệ điều hành Android ra đời và đã tạo ra sự phát triển mạnh mẽ cho sự phát triển của công nghệ di động. Với sự phát triển nhanh chóng đó thì những ứng dụng giải trí cũng đang phát triển mạnh mẽ nhằm phục vụ nhu cầu giải trí của con người. Lập trình ứng dụng, lập trình game đang là xu thế thực tế là bước đột phá và cũng là tiềm năng trong sự phát triển của công nghệ di động. Và từ đó các game trên điện thoại di động xuất hiện ngày càng nhiều, trên các hệ điều hành khác nhau như Android, iOS, RIM Blackberry OS, Symbian…. Và Android là hệ điều hành do Google mua về và cho ra đời vào năm 2007, đây là hệ điều hành tương đối mới và đang rất được ưa chuộng trên thị trường từ khi nó ra đời, vì thế em quyết định chọn đề tài “Lập trình game Sudoku trên Android”. Game Sudoku là một game ra đời từ rất lâu và là game trí tuệ hấp dẫn người chơi mà luật chơi lại đơn giản. Đây là game có một mạng lưới các ô bao gồm 81 ô, được xếp thành 9 hàng ngang và dọc. Người chơi phải lắp đầy các ô trống sao cho số của các ô trong hàng và cột là các số từ 1 đến 9 không được trùng nhau. Khi trò chơi bắt đầu chỉ ít các con số đã được điền vào và người chơi không được thay đổi và phải điền đầy đủ các con số còn lại. Trước kia game Sudoku thường chơi trên giấy với bút chì, nhưng hiện nay đã có rất nhiều phần mềm chơi game trên máy tính và điện thoại. Khi so sánh game Sudoku với các loại game khác ta thấy, game này đã cũ nhưng vẫn rất được ưa chuộng bởi tính trí tuệ cao của nó. Không yêu cầu đồ họa cao, nhưng người chơi vẫn thích thú, mỗi bàn chơi là một thách thức tư duy logic. Kích thích tính hiếu thắng của người chơi, tính tò mò của các em nhỏ muốn chinh phục các con số. Hi vọng sau khi em làm xong đề tài này em sẽ có được một số ít kiến thức về hệ điều hành Android và cách lập trình ứng dụng cho hệ điều hành đang rất được ưa chuộng trên thị trường, để giúp ích em sau này khi ra trường và đi làm. Mô tả sơ lược về hệ thống: • Ứng dụng game Sudoku giao diện gồm 4 button là Bắt Đầu, Tiếp Tục, Hướng Dẫn, Thoát. • Giao diện bàn game gồm có 9x9 ô số là 9 hàng và 9 cột, và được chia thành 3x3 vùng, mỗi vùng gồm các số từ 1 đến 9. • Khi người chơi chưa biết luật chơi thì người chơi nhấp vào button Hướng Dẫn khi đó sẽ hiện ra một dialog hướng dẫn cụ thể về luật và cách chơi game. - 4 - • Ứng dụng game có 3 mức để cho người dùng chơi gồm Dễ, Bình Thường và Khó với các mức chơi sẽ có các ô số khác nhau phù hợp với từng mức. • Khi người chơi nhập số vào một ô số bất kỳ nếu số ở trong vùng đã có hoặc trong hàng hoặc cột đã có thì màn hình sẽ rung qua lại thông báo cho người chơi biết là số đó không thể nhập vào nữa. • Khi người chơi đã nhập một số vào ô, nếu muốn xóa thì người dùng nhấn tổ hợp phím Ctrl+Space thì sẽ xóa mất số đã nhập vào. 1.2. MỤC TIÊU CẦN ĐẠT ĐƯỢC Ứng dụng game về cơ bản phải đạt được các yêu cầu như sau: Giao diện hài hòa, thân thiện, dễ sử dụng. Phải có menu hướng dẫn người chơi về luật chơi cũng như cách chơi game. Game phải có được 3 mức chơi cho người chơi lựa chọn. Ở mỗi mức độ chơi thì độ khó phải tương ứng với mức độ chơi đó. Khi người chơi nhập một số vào ô bất kỳ, kiểm tra xem số đó có đúng không, nếu không thì thông báo lại cho người chơi biết 1.3 HƯỚNG GIẢI QUYẾT Tìm hiểu về ngôn ngữ XML, Java, . Cách cài đặt Android SDK, cách plugin Android SDK cho eclipse. Cách tạo máy ảo Android Virtual Device. Cài đặt chương trình : • Với yêu cầu của đề tài, ta cần thực hiện các vấn đề sau: - Thiết kế giao diện và các chức năng cần thiết của chương trình. - Đề tài thực hiện ở phạm vi nhỏ nên không thể hiện hết chức năng của chương trình, nếu như hoàn chỉnh tất cả các yêu cầu của chương trình thì bao gồm rất nhiều công viêc. • Giao diện chính của chương trình gồm : - Button Bắt đầu, Button Tiếp tục, Button Hướng dẫn, Button Thoát, Hình nền của chương trình. • Giao diện lúc chơi game : - Bàn game gồm 9x9 ô số. - Mỗi hàng, cột và một vùng gồm 9 con số. Viết báo cáo tổng hợp kết quả thực hiện đề tài. 1.5 CÔNG CỤ PHÁT TRIỂN • Android SDK (installer_r16-windown.exe) là tập hợp các công cụ để phát triển các ứng dụng trên nền tảng hệ điều hành Android. • Công cụ phát triển: Eclipse IDE for Java Developers dùng để viết code cho game. - 5 - CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 SƠ LƯỢC QUÁ TRÌNH PHÁT TRIỂN CỦA ANDROID 2.1.1 Android là gì? • Là một hệ thống điều hành, middleware và các ứng dụng di động chủ chốt. • Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player, TV) phát triển bởi Google và dựa trên nền tảng Linux. 2.1.2 Lịch sử ra đời Trước đây, Android được phát triển bởi công ty liên hợp Android ( sau đó được Google mua lại vào năm 2005). Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai. 2.1.3 Tính năng mở của hệ điều hành Android Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp. Nó được xây dựng để được thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản, hoặc bằng cách sử dụng máy ảnh, cho phép các nhà phát triển để tạo ra phong phú hơn và nhiều hơn nữa những kinh nghiệm cố kết cho người dùng. Android được xây dựng trên mở Linux Kernel. Hơn nữa, nó sử dụng một máy ảo tuỳ chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động. 2.1.4 Tất cả các ứng dụng có thể được tạo ra cho Android? Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba. Tất cả chúng có thể được xây dựng để truy cập bằng khả năng của một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng dụng và dịch vụ. Với các thiết bị xây dựng trên hệ điều hành Android, người dùng có thể hoàn toàn thích ứng với điện thoại đến lợi ích của họ. 2.1.5 Cộng đồng phát triển Android: Android có một cộng đồng phát triển ứng dụng rất lớn, hiện có khoảng hơn 70.000 ứng dụng có sẵn cho Android và đang liên tục được cập nhật. Ứng dụng được phát triển bằng ngôn ngữ Java kết hợp với thư viện Java có sẵn của Google. Các nhà phát triển ứng dụng có thể sử dụng máy tính chạy hệ điều hành Windows hoặc MacOS hoặc Linux kết hợp với Android SDK để phát triển ứng dụng cho Android. Hệ điều hành Android bao gồm 12.000.000 dòng mã trong đó có 3.000.000 dòng XML, 2.800.000 dòng C, 2.100.000 dòng Java, và 1.750.000 dòng C + +. 2.2 Máy ảo Dalvik Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị độ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ý. Dalvik trông giống như máy ảo Java (Java Virtual Machine) nhưng thực tế thì hoàn toàn khác dưới gốc nhìn của nhà phát triển. 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 các 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 - 6 - công cụ có tên là dx. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng 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. 2.3 Kiến trúc của Android Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành Android. Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây. Hình 2.1: Cấu trúc stack hệ thống Android. 2.3.1 Tầng ứng dụng Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts, browser, camera, Phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều được viết bằng Java. 2.3.2 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 khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái, và nhiều, nhiều hơn nữa. Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ). Cơ chế này cho phép các thành phần tương tự sẽ được thay thế bởi người sử dụng. Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm: - 7 - • Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,… • Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó. • Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files. • Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom alerts trong status bar. • Activity Manager được dùng để quản lý chu trình sống của ứng dụng và điều hướng các activity. 2.3.3 Library Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua nền tảng ứng dụng Android. Một số các thư viện cơ bản được liệt kê dưới đây: • System C library: một dẫn xuất BSD có nguồn gốc từ hệ thống thư viện chuẩn của C (LIBC), được gắn vào các thiết bị Linux • Media Libraries - Căn cứ vào OpenCORE trong các gói Video, hỗ trợ các thư viện phát lại, ghi âm và đọc các định dạng video phổ biến, cũng như các tập tin hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG • Surface Manager – Quản lý việc truy xuất vào hiển thị hệ thống • LibWebCore – Trình duyệt web hiện đại có đầy đủ cả trình duyệt Android và 1 trình xem web hệ nhúng • SGL – công cụ đồ họa 2D • 3D libraries - thực hiện dựa trên các API OpenGL ES 1.0, các thư viện sử dụng tăng tốc phần cứng 3D (nếu có) cùng với bộ quét tối ưu hóa cao cho phần mềm 3D. FreeType - bitmap và vẽ phông chữ bằng vector • SQLite – Cơ sở dữ liệu nhẹ và đầy đủ có sẵn cho tất cả các ứng dụng 2.3.4 Android Runtime Android bao gồm một tập hợp các thư viện cơ bản mà 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. Tất cả các ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các tập tin Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp. 2.3.5 Linux kernel Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như security, memory management, process management, network stack, and driver model. Kernel Linux 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 stack. 2.4 Android Emulator Android SDK và Plugin Eclipse được gọi là một Android Deverloper Tool (ADT). Người lập trình Android sẽ cần phải sử dụng công cụ IDE (Integrated Development Enveronment) này để phát triển, debugging và testing cho ứng dụng. - 8 - Android Emulator được trang bị đầy đủ hầu hết các tính năng của một thiết bị thật. Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB, camera và video, nghe phone, nguồn điện giả lập và bluetooth. Android Emulator thực hiện các công việc thông qua một bộ xử lý mã nguồn mở, công nghệ này được gọi là QEMU (http://bellard.org/qemu/) được phát triển bởi Fabrice Bellard. Hình 2.2: Android Emulator. 2.5 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT 2.5.1 AndroidManifest.xml Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và version. Dưới đây là nội dung của một file AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.me.mysudokugame" - 9 - android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".About" android:label="@string/about_title" android:theme="@android:style/Theme.Dialog" > </activity> <activity android:name="Game" android:label="@string/game_title" ></activity> </application> </manifest> • Application Bên trong thẻ <application> có các thuộc tính định nghĩa cho Android như sau: android:icon="@drawable/ic_launcher": Chỉ đường dẫn đến file icon khi cài đặt ứng dụng. android:label="@string/app_name": Thuộc tính này đặt tên cho ứng dụng. Tên này sẽ được hiển thị sau khi chạy ứng dụng Ngoài ra còn có nhiều thuộc tính khác… • SDK version (API) <uses-sdk android:minSdkVersion="8" />: Thẻ này xác định phiên bản SDK đang sử dụng. Ở đây SDK version là 8. 2.5.2 File R.java File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài nguyên hình ảnh. Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn kéo và thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá. Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây dựng ứng dụng. - 10 - [...]... nay Qua quá trình thực hiện báo cáo đã giúp em tìm hiểu sâu hơn về việc xây dựng ứng dụng game cho điện thoại di động sử dụng hệ điều hành Android Với tính mới mẽ và cấp thiết của đề tài em đã cố gắng tìm hiểu và xây dựng chương trình game Sudoku trên nền điện thoại hệ điều hành Android Ứng dụng game Sudoku là một chương trình giải trí mới đã được xây dựng hoàn thành trên hệ điều hành Android và đã... tiến bộ nhanh chóng của hệ điều hành Android đã thúc đẩy và kéo theo sự phát triển của lập trình ứng dụng tiện ích cho điện thoại và đáp ứng nhu cầu game giải trí trên điện thoại Xu hướng lập trình ứng dụng game cho điện thoại di động đang là xu hướng mới trong lập trình nói chung và trong truyền thông di động nói riêng đang hứa hẹn những tiềm năng và thành công trên con đường phát triển không ngừng... Android: text="Hello Android! " Android: singleLine="true" Android: inputType="textCapWords" /> Hình 2.10:EditText 2.7.6 TextView TextView có tác dụng là để hiển thị văn bản - 19 - Trong đoạn mã trên, Android: text=""... trực tiếp trên đó 2.7.5 EditText Trong Android đối tượng EditText được sử dụng như một TextField hoặc một TextBox Giá trị Android: singleLine bằng false, edittext sẽ là 1 Texbox, ngược lại nó là 1 Textfield . SUDOKU 22 3.1ĐỒ HỌA 2D ỨNG DỤNG 22 3.1.1Màu sắc 22 3.1.2Paint 22 3.1.3Canvas 23 3.1.4Path 23 3.1.5Drawable 23 3 .2. Phân tích thiết kế UML 24 3 .2. 1 Biều đồ usecase 24 - 2 - 3 .2. 2 Biều đồ lớp 25 CHƯƠNG. & CÁC CONTROL 16 2. 7.1View 16 2. 7.2ViewGroup 17 2. 7.3Button 18 2. 7.4ListView 18 2. 7.5 EditText 19 2. 7.6TextView 19 2. 7.7CheckBox 20 2. 7.8 MenuOption 20 2. 7.9ContextMenu 21 CHƯƠNG 3 : PHÂN TÍCH. Android 7 2. 3.1Tầng ứng dụng 7 2. 3.2Application framework 7 2. 3.3Library 8 2. 3.4Android Runtime 8 2. 3.5Linux kernel 8 2. 4Android Emulator 8 2. 5CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT 9 2. 5.1AndroidManifest.xml