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
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 KHOA CÔNG NGHỆ THÔNG TIN
*************
VŨ QUANG TRUNG
ỨNG DỤNG ĐỒ HỌA 2D VÀO PHÁT TRIỂN GAME TRÊN
HỆ ĐIỀU HÀNH ANDROID
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuy n ng nh ho họ m y t nh
HÀ NỘI –2015
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 KHOA CÔNG NGHỆ THÔNG TIN
*************
VŨ QUANG TRUNG
ỨNG DỤNG ĐỒ HỌA 2D VÀO PHÁT TRIỂN GAME TRÊN
Trang 3LỜ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
Trang 4LỜ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 riê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
Trang 5DANH MỤC HÌNH ẢNH
Hình 3.3 Kiểm tra va chạm giữa 2 đối tượng 36
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
Trang 6MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1 HỆ ĐIỀU HÀNH ANDROID 5
1.1 Giới thiệu hung về hệ điều h nh Android 5
1.2 Hệ điều h nh Android qu từng gi i đoạn 6
1.2.1 Android 1.0 6
1.2.2 Android 1.1 6
1.2.3 Android 1.5 Cupcake 6
1.2.4 Android 1.6 Donut 7
1.2.5 Android 2.0 và 2.1 Eclair 7
1.2.6 Android 2.2 Froyo 8
1.2.7 Android 2.3 Gingerbread 8
1.2.8 Android 3.x HonyComb 9
1.2.9 Android 4.0 Ice Cream Sandwich 9
1.2.10 Android 4.1 Jelly Bean 9
1.2.11 Android 4.2 Jelly Bean 10
1.2.12 Android 4.3 Jelly Bean 10
1.2.13 Android 4.4 Kitkat 11
1.2.14 Android 5.0 Lollipop 11
1.3 iến trú hệ điều h nh Android 12
1.3.1 Tầng hạt nhân Linux 13
Trang 71.3.3 Phần Android Runtime 14
1.3.4 Tầng Appli tion Fr mework 15
1.3.5 Tầng Appli tion 15
1.4 Hệ thống tập tin tr n hệ điều h nh Android 16
1.4.1 Tổng qu n về hệ thống file tr n Android 16
1.4.2 C kiểu file tr n Android 17
1.4.3 Tổ hứ quyền sở hữu v quyền hạn tr n file 17
1.5 C th nh phần ủ một ứng dụng tr n Android 17
CHƯƠNG 2 LÝ THUYẾT ĐỒ HỌA 2D 21
2.1 Giới thiệu hung 21
2.2 Lị h sử ph t triển 21
2.3 C hệ m u thông dụng 22
2.3.1 Hệ m u RGB 22
2.3.2 Hệ m u CMY (hệ m u trừ) 24
2.3.3 Hệ m u HSB (hệ tổng hợp) 24
2.3.4 Hệ m u L b (hệ tổng hợp) 24
2.4 C ứng dụng ủ đồ họ 25
2.5 Đồ họ 2D 25
2.6 Đồ họ 2D trong Android 26
CHƯƠNG 3 ỨNG DỤNG ĐỒ HỌA 2D VÀO PHÁT TRIỂN GAME TRÊN HỆ ĐIỀU HÀNH ANDROID 27
3.1 Ý tưởng thự hiện 27
Trang 83.2.1 Sơ đồ hoạt động ủ g me 29
3.2.2 X định tor v mô hình use se 29
3.2.2.1 Danh sách actor 29
3.2.2.2 Sơ đồ Use Case 30
3.3 Thiết kế thuật to n 34
3.4 Thiết kế gi o diện hương trình 38
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
TÀI LIỆU THAM KHẢO 43
Trang 9MỞ ĐẦU
1 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 vự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%, Việ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 11,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: Việ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
Trang 10Tuy 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 Bird”
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ụ đ h nghi n ứ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 vụ 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 vi 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
Trang 116 Phương ph p nghi n ứ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
Trang 12 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
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
Trang 13CHƯƠNG 1 HỆ ĐIỀU HÀNH ANDROID
1.1 Giớ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
Trang 141.2 Hệ điều hành Android qua từng gi i đ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
Màn hình chính gồm các biểu tượng chương trình 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
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
Trang 15 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
Trang 16Android 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
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 Việ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
Trang 171.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
Trang 18 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 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ơ” riêng của mình và chỉ có thể làm được những gì được chỉ định trong “hồ sơ”
Trang 191.2.13 Android 4.4 Kitkat
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
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
Trang 20 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.3 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ên bản 2.6), tầng Libraries & Android runtime, tầng Application Framework và trên cùng là tầng Application
Hình 1.1: Kiến trúc hệ điều hành Android
Trang 211.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
- 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
Trang 22- M-System Driver: Quản lý việc đọc, ghi… lên các thiết bị như thẻ nhớ SD, 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
Trang 231.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, 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ầ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
Trang 24- 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.4 Hệ thống tập tin 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
Trang 25Tất cả các file trong Android có chung cấu trúc vậ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 directory 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.5 Cá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: