Tải bản đầy đủ (.docx) (43 trang)

Khoá luận tốt nghiệp ứng dụng đồ họa 2d vào phát triển game trên hệ điều hành android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (373.36 KB, 43 trang )

LỜI CẢM ƠN
Trước tiên, em muốn gửi lời cảm ơn sâu sắc nhất đến thầy giáo, PGS.TS Trịnh
Đình Thắng, người đã tận tình hướng dẫn em trong suốt quá trình thực hiện khóa luận
tốt nghiệp.
Em xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo đã giảng dạy em
trong bốn năm qua, những kiến thức mà em nhận được trên giảng đường đại học sẽ là
hành trang giúp em vững bước trong tương lai.
Và tôi xin cảm ơn tất cả những ngưòi bạn của tôi, những người đã và đang luôn
động viên, chia sẻ và giúp đỡ tôi tận tình trong suốt thời gian học tập cũng như thực
hiện khóa luận này.
Cuối cùng, con kính gửi lời cảm ơn sâu sắc nhất tới gia đình, cảm ơn cha mẹ đã
tạo điều kiện tốt nhất cho con học tập để có được như ngày hôm nay. Và xin cảm ơn
tất cả mọi người đã tin tưởng, khích lệ và động viên tôi trong suốt thời gian qua.
Hà Nội, ngày 08 tháng 05 năm 2015 Sinh viên
Vũ Quang Trung
LỜI CAM ĐOAN
Tên em là: Vũ Quang Trung
Sinh viên lớp: K37A - Tin học, khoa Công nghệ Thông tin, trường Đại học
Sư phạm Hà Nội 2.
Em xin cam đoan:
1. Nội dung đề tài: “ứng dụng đồ họa 2D vào phát triển Game trên hệ điều hành
Android” là nghiên cứu của liêng em.
2. Kết quả nghiên cứu của em không trùng vói bất cứ một kết quả nào của
những tác giả khác.
Nếu sai em xin hoàn toàn chịu trách nhiệm.
Hà Nội, ngày 08 tháng 05 năm 2015 Sinh viên
Vũ Quang Trung
DANH MUC HÌNH ẢNH
Hình ảnh Nội dung Trang
Hình 1.1 Kiên trúc hệ điêu hành Android 12
Hình 3.1 Sơ đô hoạt động của game 29


Hình 3.2 Sơ đô use case 30
Hình 3.3 Kiêm tra va chạm giữa 2 đôi tượng 36
Hình 3.4 Giao diện Menu chính 38
Hình 3.5 Giao diện hiên thị thông tin tác giả 38
Hình 3.6 Giao diện hiên thị phân giói thiệu, hướng dân 39
Hình 3.7 Giao diện chọn màn chơi 39
Hình 3.8 Giao diện chính của game 40
Hình 3.9 Giao diện tạm dừng 40
Hình 3.10 Giao diện khi người chơi thua cuộc 41
DANH MỤC BẢNG
Bảng Nội dung Trang
Bảng 3.1 Danh sách actor 29
Bảng 3.2 Danh sách use case 30
MỤC LỤC
MỞ ĐẦU
I. Lý do chọn đề tài
Ngày nay nền công nghiệp giải trí đang phát triển rất mạnh trên thế giới, bao
gồm các thành phần cơ bản như: Game, âm nhạc, thời trang, chương trình truyền
hình, điện ảnh, Gameshow, Các mảng nằm trong ngành giải trí không chỉ mang
tính giải trí mà còn mang nhiều giá trị về văn hóa, lối sống, phong tục của con người
từng vùng miền, từng quốc gia, đồng thời quảng bá hình ảnh của đất nước tói các
nước khác trên thế giới.
Có thể nói một trong những ngành giải trí mang lại nhiều lợi nhuận nhất đó là
game. Game là lĩnh yực giải trí tương tác quan trọng hàng đầu trong ngành công
nghiệp hiện đại. Theo báo cáo thị trường toàn cầu Newzoo năm 2014, ngành công
nghiệp Game ước tính doanh thu 81,5 tỷ USD, tăng trưởng 7,8%, dự kiến lên đến
102,9 tỷ USD (2017). Lý do quan trọng nhất của sự phát triển chính là thị
trường Châu Á chiếm đến 82% doanh thu và 45% thị phần ngành game thế giói
(2014). Với doanh thu hơn 1,2 tỷ USD (2014), tăng trưởng 6%, Yiệt Nam hiện
là thị trường game lớn nhất Đông Nam Á và top 10 thị trường game Online phát

triển nhanh nhất thế giới. Riêng game Online thu hút sự tham gia của khoảng 40
công ty phát hành game, giải quyết việc làm cho hơn 7.500 người.
Trong đó, thị trường nội dung di động toàn cầu trị giá 10,5 tỷ đô (2014) và dự
kiến đạt 18,6 tỷ đô (2017), tỷ lệ tăng trưởng hàng năm 19% (2014-2017). Riêng khu
vực Châu Á, thị trường nội dung di động trị giá 7,4 tỷ đô (2014), dự kiến đạt
II, 4 tỷ đô (2017) - chiếm trên 60% doanh thu toàn cầu. Tháng 10/2013,
Mercer, Talentnet (2 công ty hàng đầu thế giói về tư vấn nhân sự) khảo sát 418
doanh nghiệp Việt Nam cho thấy: Yiệc đầu tư công nghệ quay trở lại mạnh mẽ.
Vì thế, nhu cầu nhân lực CNTT tăng nhanh, trong đó lập trình di động là ngành
mới nên cần nhân lực nhiều hơn hết. Theo báo cáo tổng nhu cầu tuyển có đến
20% liên quan CNTT và 20% trong số đó liên quan lập trình di động.
4
Tuy nhiên, ngành game đang đứng trước khó khăn nguồn nhân lực. Theo
PGĐ.Trung tâm dự báo nhu cầu nhân lực và thị trường lao động Tp.HCM: “Ngành lập
trình game không có trường Đại học hay Cao đẳng chuyên nghiệp đào tạo chuyên sâu.
Học phí lập trình phần mềm nói chung, lập trình game nói riêng khá đắt đỏ, nhưng lại
xứng đáng vì mức lương và thu nhập không có điểm dừng, giống như trường hợp của
tác giả game Flappy Bừd”.
Với sự phát triển bùng nổ của ngành CNTT như hiện nay, việc nghiên cứu và
phát triển Game là một hướng đi khá tốt cho các lập trình viên. Với việc chọn đề tài
“ứng dụng đồ họa 2D vào phát triển Game trên hệ điều hành Android” để làm khóa
luận, em nghĩ rằng nó sẽ giúp một phần nào đó cho việc tìm hiểu và phát triển Game
nói riêng cũng như ngành công nghiệp giải trí nói chung trong tương lai gần.
2. Mục đích nghiên cứu
Tìm hiểu hệ điều hành Android, ứng dụng của đồ họa 2D vào việc lập trình
game cho hệ điều hành Android.
3. Nhiệm vụ nghiên cứu
Nhiệm yụ của khóa luận là nghiên cứu về đồ họa 2D và hệ điều hành Android.
Từ những kiến trúc hệ thống của hệ điều hành Android đến ưu nhược điểm của hệ
điều hành cho đến nay, em sẽ ứng dụng đồ họa 2D vào lập trình game để phù họp vói

hệ điều hành và thân thiện với người chơi.
4. Đối tượng và phạm vỉ nghiên cứu
Hệ điều hành Android, các công cụ hỗ trợ lập trình game và đồ họa 2D.
5. Giả thuyết khoa học
Đồ họa 2D sử dụng để lập trình game giúp hiểu rõ hơn các kỹ năng lập trình,
khả năng sáng tạo. Chương trình được xây dựng nếu được đưa vào thị trường cho
người sử dụng sẽ giúp người dùng có thời gian thư giãn chơi game bên chiếc điện
thoại.
5
6. Phương pháp nghiên cứu
• Phương pháp nghiên cứu lý luận
Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng
cơ sở lý thuyết của đề tài và các biện pháp cần thiết để giải quyết các vấn đề của
đề tài.
• Phương pháp chuyên gia
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình phù
hợp với yêu cầu thực tiễn. Nội dung xử lý nhanh đáp ứng nhu cầu ngày càng cao
của người dùng.
• Phương pháp thực nghiệm
Thông qua kinh nghiệm chơi game, quan sát thực tế, yêu cầu của cơ sở,
những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp trên.
7. Cấu trúc khóa luân
• Chương 1: Hệ điều hành Android
Nội dung chính của chương một là giói thiệu một cách tổng quan về
hệ điều hành Android. Hệ điều hành Android qua từng giai đoạn phát triển
và kiến trúc, hệ thống tệp tin trên hệ điều hành này.
• Chương 2: Lý thuyết đồ họa 2D
Giới thiệu lý thuyết đồ họa 2D.
Những thành phần cơ bản của đồ họa máy tính.
Các ứng dụng sử dụng kỹ thuật đồ họa 2D.

Tìm hiểu lý thuyết đồ họa của hệ điều hành Android, một số thành
phần quan trọng của đồ họa 2D của hệ điều hành này.
• Chương 3: ứng dụng đồ họa 2D vào phát triển game trên hệ điều hành
Android
Xây dựng ý tưởng và lập trình game mobile.
6
• Chương 4: Kết luận và hướng phát triển
Trình bày các kết quả đạt được và những khó khăn cần giải quyết.
Định hướng phát triển.
CHƯƠNG 1: HÊ ĐIỀU HÀNH ANDROID
1.1Giới thiệu chung về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt
vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: Một hiệp
hội gồm các công ty phần cứng, phần mềm, và viễn thông vói mục tiêu đẩy mạnh các
tiêu chuẩn mở cho các thiết bị di động. Hiện tại thì Android xuất hiện hầu như trong
các sản phẩm của các nhà sản xuất lớn như Samsung, Sony, Htc từ điện thoại thông
minh cho tới máy tính bảng, ti vi Và có thể nói đây là một trong những nguyên
nhân để nó phát triển mạnh tói vậy.
Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho
phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được
điều chỉnh và phân phối Android một cách tự do khiến cho kho ứng dụng của hệ điều
hành Android phát triển một cách nhanh chóng.
Tính đến thời điểm hiện tại, Android đã trở thành hệ điều hành dành cho nền
tảng di động phổ biến nhất thế giới (chiếm đến 85%). Android phổ biến tới mức mặc
dù được thiết kế để chạy trên điện thoại và máy tính bảng, nó còn được các nhà sản
xuất tùy chỉnh để cài đặt trên các Smart TV, máy chơi game và các thiết bị điện tử
khác. Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và

những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản
lý. Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm
tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
7
1.2Hệ điều hành Androỉd qua từng giai đoạn
Cho đến nay, hệ điều hành Android đã trải qua hàng loạt các thay đổi, nâng
cấp.
1.2.1 Androỉd 1.0
Hệ điều hành Android thời gian đầu ra mắt mang những đặc điểm, tính năng
thú yị như:
• Thanh thông báo kéo từ trên xuống cho phép người dùng xem nhanh các thông
tin ngày giờ, tin nhắn, cuộc gọi
• Màn hình chính gồm các biểu tượng chương trinh người dùng hay truy cập.
• Tiện ích là các ứng dụng nhỏ trên màn hình chính, hoạt động và cung cấp thông
tin liên tục.
• Tích hợp chặt chẽ với Gmail.
1.2.2 Android 1.1
• Phiên bản cập nhật đầu tiên của hệ điều hành Android giúp chỉnh sửa các lỗi
gặp phải trên phiên bản 1.0.
• Cập nhật phần mềm tự động qua OTA (Over The Aừ) được bổ sung.
1.2.3 Androỉd 1.5 Cupcake
Giao diện trông bóng bẩy, mượt hơn. Nhưng giao diện không phải là một điểm
nhấn của Android 1.5, người dùng quan tâm đến các tính năng mới mà nó mang
lại, chẳng hạn như:
• Bàn phím ảo lần đầu tiên xuất hiện.
• Cải tiến Tiện ích: Kho ứng dụng tiện ích phong phú và đa dạng hơn.
• Hỗ trợ khả năng quay phim cho camera.
• Cải tiến vùng đệm để nâng cao khả năng Copy, Cut, Paste.
1.2.4 Androỉd 1.6 Donut
• Một vài điểm trong giao diện được cải thiện, vài tính năng nhỏ được thêm vào,

chức năng hỗ trợ cho mạng CDMA.
8
• Bổ sung tính năng có thể chạy trên nhiều độ phân giải và tỉ lệ màn hình khác
nhau, cho phép những thiết bị có nhiều độ phân giải hơn.
• Bạn có thể tìm kiếm danh bạ, ứng dụng, nhạc, tin nhắn, tất cả đều chỉ thao tác
trong một hộp tìm kiếm.
• Giao diện màu xanh trắng đặc trưng của Android, có thể hiển thị các ứng dụng
miễn phí và trả phí hàng đầu. Giao diện camera mới, tích họp vói trình xem ảnh
tốt hơn, giảm thời gian chờ giữa hai lần chụp ảnh.
1.2.5 Androỉd 2.0 và 2.1
Eclaỉr Androỉd 2.0
Đầu tháng 9 năm 2009, Android 2.0 đã được ra mắt trên chiếc Motorola
Droid cùng các tính năng mói:
• Hỗ trợ nhiều tài khoản ngưòi dùng: Lần đầu tiên, nhiều tài khoản Google có thể
được đăng nhập trên cùng một thiết bị chạy Android. Google giờ đây cho phép
những nhà phát triển bên thứ ba tích hợp dịch vụ của họ vào trong mục Account
này, đồng thời hỗ trợ tự động đồng bộ hóa.
• Quick Contact: Gửi email, gọi điện, nhắn tin với thao tác đơn giản.
• Cải tiến bàn phím ảo.
• Trình duyệt mói: hỗ trợ HTML5, bao gồm luôn khả năng phát video ở chế độ
toàn màn hình. Hộp địa chỉ kết hợp với thanh tìm kiếm cũng lần đầu xuất hiện
trên Android.
• Giao diện mới: các biểu tượng đẹp hơn, sang trọng hơn, gọn gàng hơn nhiều so
với trước.
Android 2.1
Ra mắt chủ yếu để sửa lỗi và thêm hàm API để lập trình viên can thiệp sâu hơn
vào hệ thống và nó hỗ trợ thêm vài tính năng như Live Wallpaper, chuyển giọng nói
thành văn bản và một màn hình khóa mói.
9
1.2.6 Android 2.2 Froyo

Android 2.2 được ra mắt trong năm 2010. Giao diện màn hình chính đã được
thay đổi, từ 3 màn hình chính tăng lên thành 5 màn hình. Dãy nút kích hoạt nhanh chế
độ gọi điện, web và App Drawer cũng đã xuất hiện.
Tính năng trạm phát Wifi (Wifi Hotspot) cũng xuất hiện, cách copy, paste mói
tốt hơn. Nhiều tính năng bảo mật mới cũng xuất hiện. Yiệc hỗ trợ duyệt web với Flash
là điểm đáng quan tâm. Bổ sung thêm tính năng di chuyển một phần ứng dụng từ bộ
nhớ máy sang thẻ nhớ, giúp tiết kiệm dung lượng cho điện thoại.
1.2.7 Android 2.3 Gingerbread
Nửa năm sau khi FroYo xuất hiện, Google đã trở lại với bản Android 2.3.
Google giói thiệu nó với nhiều tính năng mới, tập trung vào việc phát triển game, đa
phương tiện và phương thức truyền thông mới.
Các tính năng mói:
• Giao diện: Giao diện màu đen tuyền, màu sắc này giúp các thiết bị tiết kiệm pin
hơn.
• Hai thanh chặn khi chọn văn bản: Thanh chặn này giúp người dùng có thể chọn
từng kí tự một, tiện lợi hơn.
• Bàn phím được cải tiến: Các phím đẹp hơn, đen hơn và cả kí tự cũng được thay
đổi.
• Công cụ quản lí pin và ứng dụng: Một công cụ mới đã ra mắt với biểu đồ nhằm
theo dõi mức độ tiêu thụ pin cùng việc quản lí ứng dụng đang chạy sẽ giúp đỡ
người dùng.
• Hỗ trợ máy ảnh trước.
• Hỗ trợ kết nối NFC.
1.2.8 Android 3.X HonyComb
Honeycomb là phiên bản Android dành riêng cho máy tính bảng. Android 3.0
là nền tảng cho Android 4.0 với các tính năng như sử dụng tông màu đen và xanh
1
0
dương làm tông màu chủ đạo, màn hình chính và tiện ích cũng được thiết kế lại,
không còn nút bấm vật lí (Home, Search, Menu), cải thiện thanh hành động (Action

Bar). Ngoài ra, Honeycomb còn hỗ trợ cho việc bố cục ứng dụng theo nhiều cột để
hướng đến việc hỗ trợ máy tính bảng tốt hơn.
1.2.9 Android 4.0 Ice Cream Sandwich
Cuối năm 2011, Google chính thức giói thiệu điện thoại Galaxy Nexus, thiết bị
đầu tiên trên thị trường sử dụng Android 4.0 Ice Cream Sandwich. Android 4.0 hỗ trợ
một bộ font mới tên là Roboto được cho là tối ưu hóa để dùng trên các màn hình độ
phân giải càng ngày càng cao, đồng thời để hiển thị được nhiều thông tin hơn trên
màn hình. Hệ thống thông báo của Android đã được làm mói hoàn toàn, đẹp hơn, tiện
dụng hơn, nhất là tính năng trượt ngang để xóa từng thông báo riêng lẻ. Bàn phím
cũng được làm mới với khả năng tự động sửa lỗi cao hơn, việc sao chép, cắt dán chữ
và nội dung cũng tốt hơn bao giờ hết.
1.2.10 Android 4.1 Jelly Bean
• Giao diện đơn giản hơn giúp chúng ta dễ dàng theo dõi những thông tin xuất
hiện trên màn hình, đặc biệt là khi điều khiển các ứng dụng.
• Sự xuất hiện của Google Now với việc nâng cao khả năng tìm kiếm, thay đổi
giao diện, tự động theo dõi thói quen sử dụng để đưa ra những thông tin chính
xác và thích hợp với người dùng hơn.
• Nhưng quan trọng hơn hết của Jelly Bean không phải là về giao diện hay ứng
dụng mới mà về Project Butter giúp mang lại độ mượt chưa từng có cho
Android.
1.2.11 Android 4.2 Jelly Bean
Ngày 30/10/2012, Google chính thức tuyên bố cập nhật hệ điều hành Android
của hãng lên phiên bản 4.2 và vẫn giữ nguyên tên gọi “Jelly Bean”. Android 4.2 mang
trong mình nhiều tính năng mới như hỗ trợ Miracast, bàn phím có thể nhập liệu bằng
1
1
cách vẽ các đường nét từ kí tự này đến kí tự khác, chế độ chụp ảnh toàn cảnh, ứng
dụng Gmail mới và còn rất nhiều thứ khác nữa.
Trong quá trình giói thiệu Android 4.2, Google rất tập trung nói về Miracast.
Google cũng đã áp dụng một số kĩ thuật từ camera Street View của hãng cho tính

năng chụp ảnh toàn cảnh mói có tên Photo Sphere.
Một cải tiến lớn và quan trọng của Android 4.2 đó là việc hỗ trợ nhiều tài
khoản người dùng trên máy tính bảng để có thể dễ dàng chia sẻ trong gia đình hoặc
nơi làm việc. Mỗi tài khoản sẽ có dữ liệu ứng dụng của riêng họ.
1.2.12 Android 4.3 Jelly Bean
Ngày 24/7/2013, Google đã chính thức ra mắt hệ điều hành này. Đây là phiên
bản Android mới nhất đang có mặt trên thị trường và đi kèm những tính năng mới
như hỗ trợ kết nối Bluetooth Smart, bộ API OpenGL ES 3.0, bổ sung tính năng sử
dụng Wifi để định vị ngay cả khi người dùng tắt kết nối này đi cùng nhiều thay đổi
lớn nhỏ khác.
Google bổ sung thêm một tính năng mới cho Android 4.3 đó là Restricted
Profile. Mỗi thành viên sẽ có một “hồ sơ” liêng của mình và chỉ có thể làm được
những gì được chỉ định trong “hồ sơ”.
1.2.13 Android 4.4 Kỉtkat
• Google tiết lộ rằng “mục tiêu của chúng tôi với Android KitKat đó là mang trải
nghiệm Android đáng kinh ngạc đến cho mọi người”. Những cải tiến trên
Android Kitkat bao gồm chế độ toàn màn hình, hiệu ứng chuyển cảnh màn
hình, Storage Access Framework, Chromium WebView, NFC, cổng hồng
ngoại
• Giao diện: Font chữ màu đen, thể hiện rõ các dòng chữ trên thanh thông báo.
Có bộ biểu tượng thư mục mói, giao diện nhìn chung được làm phẳng bớt, loại
bỏ các chi tiết đổ bóng và thêm hiệu ứng trong suốt vào nhiều phần.
1
2
• Thao tác nhanh hơn, kết họp dịch vụ tìm kiếm Google Search cho phép dò và tự
động liên kết các danh bạ có sẵn trên Internet vào số điện thoại mói.
• Nhắn tin Text Messages được gộp chung với ứng dụng nhắn tin và liên lạc
online.
• Bàn phím mặc định được bổ sung thêm các biểu tượng.
• Thay đổi giao diện dễ dàng hơn.

1.2.14 Android 5.0 Lollipop
Sau hơn một năm Android 4.0 KitKat ra mắt, Google đã chính thức ra mắt
phiên bản mới nhất vói tên gọi Android Lollipop, được đánh giá là hệ điều hành có
những thay đổi rõ rệt và đáng kể nhất trong lịch sử Android từ trước đến nay.
• Thiết kế "Material" mới.
• Ngôn ngữ đồ họa mới của Android được lấy cảm hứng từ thiên nhiên, vật lý và
phong cách đậm, đổ bóng giống như in ấn.
• Android trên mọi màn hình.
• Thiết kế báo nhắc hoàn toàn mói
• Hỗ trợ chip 64 bit
• Cải thiện thời lượng pin
1
3
• Mở khóa dựa trên bối cảnh
• Tách bạch công việc và giải trí
• Tìm kiếm bối cảnh cải tiến
1.3Kiến trúc hê điều hành Androỉd
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ên bản 2.6), tầng Libraries & Android runtime, tầng Application
Framework và trên cùng là tầng Application.
1
4
Applications
Application Framework
Hình 1.1: Kiến trúc hệ điều hành Android
1.3.1 Tầng hạt nhân Linux
Hệ điều hành Android được phát triển dựa trên hạt nhân Linux, cụ thể là hạt
nhân Linux 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 động của điện thoại muốn thi hành được thì đều thực hiện ở mức cấp thấp. Ở
lớp này bao gồm quản lý bộ nhớ, giao tiếp với phần cứng, thực hiện bảo mật, quản

lý tiến trình.
Tuy được phát triển dựa vào nhân Linux nhưng thực ra nhân Linux đã được
nâng cấp và chỉnh sửa 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ạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu
kết nối mạng không dây.
Tầng này có các thành phần chủ yếu:
Display Driver: Điều khiển việc hiển thị lên màn hình cũng như thu nhận
những điều khiển của ngưòi dùng trên màn hình (di chuyển, cảm ứng
Camera Driver: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ
camera trả về.
Bluetooth Driver: Điều khiển thiết bị thu và phát 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ín hiệu
dạ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ền thông
được thực hiện.
flash.
Power Management: Giám sát việc tiêu thụ điện năng.
1.3.2 Tầng Library
Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể
sử dụng, các thư viện đó được tập hợp thành một số nhóm như:
Thư viện hệ thống (System c library): Thư viện dựa trên chuẩn c, được sử
dụng bỏi hệ điều hành.
Thư viện Media (Media Libraries): Có nhiều codec để hỗ trợ việc phát và
ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
Thư viện web (LibWebCore): Đây là thành phần để xem nội dung trên web,
được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để

các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ được nhiều công
nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX
Thư viện SQLite: Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.
1.3.3 Phần Android Runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có
thể hoạt động. Runtime 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,
Collection, 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 Android
không được chạy trên JRE của Sun mà là chạy bằng máy ảo Dalvik do Google phát
triển.
1.3.4 Tầng Application Framework
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ụng chung để 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 đ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ó thể có nhiều mẫu mã, style họp thị hiếu người dù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
với Motorola, HTC, Т-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ầng
trê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ập hợ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
1.3.5 Tầng Application
Đây là tầng ứng dụng giao tiếp với người sử 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: Gọi điện, quản
lý danh bạ, duyệt web, nhắn tin, lịch làm việc, đọc email, bản đồ, quay phim chụp

ảnh
Các ứng dụng được cài thêm như các phần mềm học tiếng Anh, các trò chơi,
từ điển
Các chương trình có đặc điểm là:
Viết bằng Java có 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 (máy
ảo) được dựng lên để phục vụ cho nó.
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 ứng dụng
chỉ có duy nhất một thực thể được phép chạy. Đ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ằm 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
động khác, Android cho phép một ứng dụng của bên thứ 3 chạy nền. Các ứng dụng
đó chỉ có một hạn chế là không được phép sử dụng quá 5% công suất CPU. Điều
đó nhằm để tránh độc quyền trong sử dụng CPU.
ứng dụng không có điểm vào cố định, không có phương thức main để bắt
đầu.
1.4Hệ thống tập tín trên hệ điều hành Android
1.4.1 Tổng quan về hệ thống file trên Android
Trong Android các file được tổ chức lưu trữ thành các thư mục theo mô hình
phân cấp. Tham chiếu đến 1 file bằng tên hoặc đường dẫn. Các câu lệnh thao tác
file 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 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ê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 một 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 yật lý là chuỗi các byte, 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ư 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.
1.4.2 Các kiểu file trên Android
Trong hệ điều hành như Windows, 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ều hành
Android (cũng như Linux) thì coi dừectory cũng là file và nó là một loại file đặc
biệt.
1.4.3 Tổ chức quyền sở hữu và quyền hạn trên file
Tương tự trên Linux, vói 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 (execute).
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ý hiệu viết tắt đó, nghĩa
là không có quyền hạn đó.
1.5Các thành phần của một ứng dụng trên Android
Các thành phần: Việc hiểu được các thành phần tạo nên một ứng dụng
Android là rất cần thiết cho việc lập trình. Các thành phần này được chia làm 6 loại
bao gồm:
Activity: Hiểu một cách đơn giản Activity là nền của ứng dụng. Khi khỏi
động một ứng dụng Android nào đó thì bao giờ cũng có main Activity được gọi,
hiển thị màn hình của ứng dụng cho phép người dùng tương tác.
Service: Thành phần chạy ẩn trong Android. Service sử dụng để cập nhật dữ

liệu, đưa ra các cảnh báo và không bao giờ hiển thị cho người dùng thấy.
Content Provider: Kho dữ liệu chia sẻ. Content Provider được sử dụng để
quản lý và chia sẻ dữ liệu giữa các ứng dụng.
Intent: Nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các
thông báo đi nhằm khỏi tạo một hoạt động hay dịch vụ để thực hiện công việc bạn
mong muốn.
Broadcast Receiver: Thành phần thu nhận các Intent bên ngoài gửi tới.
Notification: Đưa ra các cảnh báo mà không làm các hoạt động phải ngừng.
Activity, Service, Broadcast Receiver và Content Provider là những thành
phần chính cấu thành nên ứng dụng Android và bắt buộc phải khai báo trong
AndroidManifest.
Cơ chế quản lý tiến trình: Android có cơ chế quản lý các tiến trình theo chế
độ ưu tiên. Các tiến trình có quyền ưu tiên thấp sẽ bị Android giải phóng mà không
cần cảnh báo để đảm bảo tài nguyên.
Foreground process: Là tiến trình của ứng dụng hiện thời đang được người
dùng tương tác.
Visible process: Là tiến trình của ứng dụng mà hoạt động đang hiển thị đối
với người dùng.
Service process: Là dịch vụ đang chạy.
Background process: Là tiến tình của ứng dụng mà các hoạt động của nó
không hiển thị với người dùng.
Empty process: Tiến trình không có bất cứ 1 thành phần nào hoạt động. Theo
chế độ ưu tiên thì khi cần tài nguyên, Android sẽ tự động xóa tiến trình, trước tiên
là các tiến trình rỗng.
Cơ chế hoạt động và các thành phần trong Android Activity: Như đã giói
thiệu ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc
xây dựng ứng dụng Android. Hệ điều hành quản lý Activity theo dạng ngăn xếp:
Khi một Activity mới được khởi tạo nó sẽ được xếp lên đầu của stack và trở thành
running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi
Activity mới được giải phóng.

Activity bao gồm 4 trạng thái:
Active (running): Activity đang hiển thị trên màn hình.
Paused: Activity vẫn hiển thị nhưng không thể tương tác. Ví dụ: một Activity
mới xuất hiện, hiển thị giao diện đề lên trên Activity cũ, nhưng giao diện này nhỏ
hơn giao diện của Activity cũ, do đó ta vẫn thấy một phần giao diện của Activity cũ
nhưng lại không thể tương tác vói nó.
Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái
stop.
Killed: Khi hệ thống bị 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 paused cũng có thể bị giải
phóng và khi nó 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 đó.
Miêu tả trạng thái Activity:
• Khi xây dụng Activity cho ứng dụng cần phải viết lại phương thức
onCreate() để thực hiện quá trình khởi tạo. Các phương thức khác có cần
viết lại hay không tùy vào yêu cầu lập trình.
• XML trong Android: Không giống như lập trình Java thông thường, lập trình
Android ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế
giao diện cho ứng dụng. Tất nhiên bạn hoàn toàn có thể thiết kế giao diện
như ý muốn mà không cần bất kỳ một dòng XML nào. Nhưng việc sử dụng
XML sẽ đơn giản hơn rất nhiều, và dễ chỉnh sửa về sau.
Trong xml layout được dùng để quản lý các thành phần giao diện khác theo
một trật tự nhất định.
FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào góc trên
bên trái của màn hình.
Linearlayout: Thêm các thành phần con theo 1 chiều nhất định (ngang hoặc
dọc). Đây là layout được sử dụng nhiều nhất.
RelativeLayout: Thêm các thành phần con dựa trên mối quan hệ vói các
thành phần khác hoặc biên của layout.
TableLayout: Thêm các thành phần con dựa trên 1 lưới các ô ngang dọc.

AbsoluteLayout: Thêm các thành phần con dựa theo tọa độ X, y.
Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân
giải. Thường khi lập trình thường kết hợp nhiều layout với nhau để tạo ra giao diện
như mong muốn.
CHƯƠNG 2: LÝ THUYẾT ĐỒ HOA 2D
2.1 Giới thiệu chung
Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về cơ sở
toán học, các thuật toán cũng như các kĩ thuật để cho phép tạo, hiển thị và điều khiển
hình ảnh trên màn hình máy tính. Đồ họa máy tính có liên quan ít nhiều đến một số
lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học, và kĩ thuật
máy tính, đặc biệt là chế tạo phần cứng (các loại màn hình, các thiết bị xuất, nhập, các
vi mạch đồ họa ).
Theo nghĩa rộng hơn, đồ họa máy tính là phương pháp và công nghệ dùng trong
việc chuyển đổi qua lại giữa dữ liệu và hình ảnh trên màn hình bằng máy tính. Đồ họa
máy tính hay kĩ thuật đồ họa máy tính còn được hiểu dưới dạng phương pháp và kĩ
thuật tạo hình ảnh từ các mô hình toán học mô tả các đối tượng hay dữ liệu lấy được
từ các đối tượng trong thực tế. Thuật ngữ “đồ họa máy tính” (computer graphics)
được đề xuất bỏi một chuyên gia người Mĩ tên là William Fetter vào năm 1960. Khi
đó ông đang nghiên cứu xây dụng mô hình buồng lái máy bay cho hãng Boeing.
William Fetter đã dựa trên các hình ảnh 3 chiều của mô hình người phi công trong
buồng lái để xây dựng nên mô hình buồng lái tối ưu cho máy bay Boeing. Đây là
phương pháp nghiên cứu rất mới vào thời kì đó. Phương pháp này cho phép các nhà
thiết kế quan sát một cách trực quan vị trí của người lái trong khoang buồng lái.
William Fetter đã đặt tên cho phương pháp của mình là computer graphics.
2.2 Lịch sử phát triển
Lịch sử của đồ họa máy tính vào thập niên 1960 còn được đánh dấu bỏi dự án
SketchPad được phát triển tại Học viện Công nghệ Massachusetts (MIT) bởi Ivan
Sutherland. Các thành tựu thu được đã được báo cáo tại hội nghị Fall Joint Computer
và đây cũng chính là sự kiện lần đầu tiên người ta có thể tạo mói, hiển thị và thay đổi
được dữ liệu hình ảnh trực tiếp trên màn hình máy tính trong thời

21
gian thực. Hệ thống Sketchpad này được dùng để thiết kế hệ thống mạch điện và bao
gồm những thành phần sau:
CRT màn hình.
Bút sáng và một bàn phím bao gồm các phím chức năng.
Máy tính chứa chương trình xử lí các thông tin.
Với hệ thống này, người sử dụng có thể vẽ trực tiếp các sơ đồ mạch điện lên
màn hình thông qua bút sáng, chương trình sẽ phân tích và tính toán các thông số cần
thiết của mạch điện do người dùng vẽ nên.
Kỹ thuật đồ họa được liên tục hoàn thiện vào thập niên 1970 vói sự xuất hiện
của các chuẩn đồ họa làm tăng cường khả năng giao tiếp và tái sử dụng của phần mềm
cũng như các thư viện đồ họa.
Sự phát triển vượt bậc của công nghệ vi điện tử và phần cứng máy tính vào thập
niên 1980 làm xuất hiện hàng loạt các vi mạch hỗ trợ cho việc truy xuất đồ họa đi
cùng vói sự giảm giá đáng kể của máy tính cá nhân làm đồ họa ngày càng đi sâu vào
cuộc sống thực tế.
2.3 Các hệ màu thông dụng
2.3.1 Hê màu RGB
Hệ màu RGB mô tả màu sắc bằng ba thành phần Red, Green, Blue trong một
mô hình gọi là “không gian màu”. Không gian này được minh họa bằng một khối lập
phương vói các trục chính R, G, B.
Mỗi màu trong không gian RGB đều được biểu diễn như là một vector thông
qua ba vector cơ sở là Red, Green, Blue. Do đó, ứng vói các tổ hợp khác nhau của ba
màu này sẽ cho ta một màu mói.
Trong hình lập phương mỗi màu gốc (Red, Green, Blue) được đặt vào góc đối diện
vói các màu bù nó. (Hai màu bù nhau là hai màu mà khi kết hợp tạo thành
màu trắng hay xám (grey)). Như vậy Red đối diện với Cyan, Green đối diện với
Magenta, Blue đối diện với Yellow. Giá trị xám nằm trên đường chéo nối các đỉnh
(0,0,0) và (1,1,1) của hình lập phương. Thường thường các trục R, G, B được chuẩn
hóa. Khi kết hợp hai màu lại với nhau thì màu sinh ra có vector bằng tổng các vector

thành phần.
• Ưu điểm:
Không gian RGB là chuẩn công nghiệp cho các thao tác đồ họa máy tính. Các
thao tác màu sắc có thể được tính toán trên các không gian màu khác nhưng cuối cùng
cần phải chuyển về không gian RGB để có thể hiển thị trên màn hình (do thiết kế của
phần cứng dựa trên mô hình RGB).
Có thể chuyển đổi qua lại giữa không gian RGB với các không gian màu khác
như CIE, CMY, HSL, HSV,
Các thao tác tính toán trên không gian RGB thường đơn giản hơn.
• Nhược điểm:
Các giá trị R,G,B của một màu là khác nhau đối với các màn hình khác nhau:
Nghĩa là các giá trị R,G,B của một màu trên màn hình màu này sẽ không sinh ra đúng
màu đó trên một màn hình khác.
Sự mô tả các màu trong thế giới thực đối vói không gian RGB còn nhiều hạn
chế bởi vì không gian RGB không hoàn toàn phù hợp với sự cảm nhận màu sắc của
con người. Hai điểm phân biệt trong không gian RGB, với mắt ngưòi có thể hoặc
không thể là thể hiện của hai màu khác nhau.
2.3.2 Hệ màu CMYK (hệ màu trừ)
Hệ màu CMYK tái tạo màu bằng mực, dùng trong in ấn, in offset, in phun màu.
Gồm 3 màu mực cơ bản:
• Cyan (С).
• Magenta (M).
• Yellow (Y).

×