Hiện nay ngành công nghiệp phần mềm đang rất phát triển và ngành công nghiệp phần mềm trên điện thoại di động cũng không nằm ngoài xu thế đó. Tuy còn nhiều hạn chế trong phần cứng của điện thoại di động nhưng nó đã thể hiện được sức mạnh của mình trong rất nhiều các lĩnh vực khác nhau như giải trí, các tiện ích, thanh toán điện tử v.v Ngành công nghệ phần mềm di động vẫn còn khá non trẻ ở Việt Nam vì vậy việc nghiên cứu và phát triển các ứng dụng trên di động là rất cần thiết.
Các hệ điều hành như Window Mobile, Symbian phần nào cũng gây ít nhiều khó khăn cho những ai có ý định xây dựng các ứng dụng trên nó. Đối với Window Mobile là một công nghệ của Microsoft và hoàn toàn đóng đối với người dùng, nhà phát triển ứng dụng chỉ dựa hoàn toàn vào công nghệ mà Microsoft cung cấp, còn Symbian thì việc cấu hình để có thể lập trình trên nó cũng vô vàn khó khăn, đặc biệt là nó sử dụng ngôn ngữ C/C++ để làm nền tảng lập trình rõ ràng là không thuận tiện trong việc phát triển ứng dụng.
Xuất phát từ nhu cầu thực tế đó, Google đã mạnh dạn nghiên cứu và đưa ra một nền tảng hệ điều hành mới, đó chính là Android. Một nền tảng hệ điều hành mã nguồn mở hoàn toàn và dựa vào một ngôn ngữ lập trình rất mạnh là Java để phát triển ứng dụng. Chính vì Android hỗ trợ Java ngay từ trong nền tảng của nó, nên việc viết ứng dụng, ngay cả sử dụng các chức năng của phần cứng là hoàn toàn dễ dàng thông qua việc sử dụng bộ công cụ hỗ trợ lập trình được cung cấp hoàn toàn miễn phí, là Android SDK.
139 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 3058 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Xây dựng ứng dụng 3D với Android, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Ngày Tháng Năm
Giảng Viên Hướng Dẫn
(Ký và ghi rõ họ tên)
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Ngày Tháng Năm
Giảng Viên Phản Biện
(Ký và ghi rõ họ tên)
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin cùng toàn thể các thầy cô trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã truyền đạt cho chúng em những kiến thức quý giá trong suốt những năm học vừa qua.
Chúng em xin chân thành cảm ơn Thầy Nguyễn Minh Đạo đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt quá trình thực hiện đề tài.
Cuối cùng tôi xin cảm ơn các bạn trong khoa Công Nghệ Thông Tin, những người đã giúp đỡ, chia sẽ kiến thức, tài liệu... trong suốt quá trình thực hiện nghiên cứu đề tài.
Trong phạm vi khả năng cho phép, chúng em đã rất cố gắng để hoàn thành đề tài một cách tốt nhất. Song, chắc chắn sẽ không tránh khỏi những thiếu sót. Chúng em kính mong nhận được sự cảm thông và những ý kiến đóng góp của quý thầy cô và các bạn.
Nhóm sinh viên thực hiện
Nguyễn Chí Tâm
Nguyễn Phi Cường
06/ 2011
MỤC LỤC
DANH MỤC HÌNH
Hình 1 – Cấu trúc Android 15
Hình 2 – Máy ảo Dalvik 16
Hình 3 – Tạo một AVD 21
Hình 4 – Trình mô phỏng thiết bị Android. 22
Hình 5 – Tạo một Android project 23
Hình 6 – Vòng đời của Activity 27
Hình 7 – Vòng đời của service 33
Hình 8 – Hoạt động kết nối dịch vụ 36
Hình 9 - Quan hệ giữa các thành phần trên 49
Hình 10 - Hệ thống các view với các thông số layout được kết nối với mỗi view 51
Hình 11 – Icon menu 58
Hình 12 – Expanded menu 59
Hình 13 - Submenu 59
Hình 14 - Phép chiếu trực giao 72
Hình 15 – Kết quả phép chiếu trực giao 75
Hình 16 - Phép chiếu phối cảnh 76
Hình 17 – Mô tả góc nhìn của camera 78
Hình 18 – Kết quả phép chiếu phối cảnh 79
Hình 19 – Kết quả phép biến đổi 84
Hình 20 – Kết quả chiều sâu 87
Hình 21 – Kết quả màu sắc và tô bóng 89
Hình 22 – Kết quả hình khối 92
Hình 23 – Kết quả ánh sáng 97
Hình 24 – Kết quả định hướng ánh sáng 101
Hình 25 – Kết quả dán chất liệu 113
Hình 26 – Pha màu (GL_ONE, GL_ZERO) 117
Hình 27 – Pha màu (GL_ONE, GL_ONE) 118
Hình 28 – Pha màu (GL_ONE, GL_ONE_MINUS_DST_ALPHA) 119
Hình 29 – Pha màu (GL_SRC_ALPHA, GL_ONE) 119
Hình 30 – Pha màu (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) 120
Hình 31 – Hiệu ứng sương mù 125
Hình 32 - Menu chính 130
Hình 33 - Menu More 130
Hình 34 - Menu vẽ hình 131
Hình 35 - Menu pha màu 131
Hình 36 - Menu phép biến đổi 132
Hình 37 - Menu phép chiếu 132
Hình 38 – Kết hợp các phép biến đổi 133
Hình 39 – Demo chiều sâu 133
Hình 40 –Demo vẽ mặt trụ 134
Hình 41 – Demo vẽ mặt nón 134
Hình 41 – Demo vẽ mặt nón cụt 135
Hình 42 – Demo vẽ mặt cầu 135
Hình 43 – Mô phỏng đường hầm 3D 136
Mở đầu
Hiện nay ngành công nghiệp phần mềm đang rất phát triển và ngành công nghiệp phần mềm trên điện thoại di động cũng không nằm ngoài xu thế đó. Tuy còn nhiều hạn chế trong phần cứng của điện thoại di động nhưng nó đã thể hiện được sức mạnh của mình trong rất nhiều các lĩnh vực khác nhau như giải trí, các tiện ích, thanh toán điện tử v.v… Ngành công nghệ phần mềm di động vẫn còn khá non trẻ ở Việt Nam vì vậy việc nghiên cứu và phát triển các ứng dụng trên di động là rất cần thiết.
Các hệ điều hành như Window Mobile, Symbian… phần nào cũng gây ít nhiều khó khăn cho những ai có ý định xây dựng các ứng dụng trên nó. Đối với Window Mobile là một công nghệ của Microsoft và hoàn toàn đóng đối với người dùng, nhà phát triển ứng dụng chỉ dựa hoàn toàn vào công nghệ mà Microsoft cung cấp, còn Symbian thì việc cấu hình để có thể lập trình trên nó cũng vô vàn khó khăn, đặc biệt là nó sử dụng ngôn ngữ C/C++ để làm nền tảng lập trình rõ ràng là không thuận tiện trong việc phát triển ứng dụng.
Xuất phát từ nhu cầu thực tế đó, Google đã mạnh dạn nghiên cứu và đưa ra một nền tảng hệ điều hành mới, đó chính là Android. Một nền tảng hệ điều hành mã nguồn mở hoàn toàn và dựa vào một ngôn ngữ lập trình rất mạnh là Java để phát triển ứng dụng. Chính vì Android hỗ trợ Java ngay từ trong nền tảng của nó, nên việc viết ứng dụng, ngay cả sử dụng các chức năng của phần cứng là hoàn toàn dễ dàng thông qua việc sử dụng bộ công cụ hỗ trợ lập trình được cung cấp hoàn toàn miễn phí, là Android SDK.
Nhóm thực hiện nhận thấy nhu cầu của con người trong lĩnh vực giải trí trên di động ngày càng cao và Android chính là nền tảng ứng dụng có thể phát triển trong tương lai. Chính vì vậy nhóm thực hiện chọn đề tài “Xây dựng ứng dụng 3D với Android” nhằm hiểu rõ về các kĩ thuật lập trình trên thiết bị động, đặc biệt là các kĩ thuật xây dựng đồ họa 3D trên di động để có thể tạo nên một game 3D hoàn chỉnh.
Nhưng vì thời gian, cũng như năng lực của nhóm có hạn, cho nên chỉ giới hạn ở việc tìm hiểu cách thức hoạt động, nghiên cứu cơ bản các chức năng, sử dụng bộ công cụ Android SDK và một số hàm chức năng của OpenGL ES để vẽ một số hình ảnh 3D cơ bản mục đích nghiệm thu quá trình tìm hiểu.
Đề tài bao gồm:
Phần A: Xây dựng ứng dụng 3D với Android
Chương 1: Tổng quan về ứng dụng trên Android
Chương 2: Các thành phần cơ bản của một ứng dụng trên Android
Chương 3: Thiết kế giao diện
Chương 4: Xử lý bất đồng bộ
Chương 5: Áp dụng OpenGL ES để tạo ứng dụng 3D trên Androi
Phần B: Chương trình Demo
Chương 6: Demo kỹ thuật vẽ hình 3D trên Android
Phần C: Kết luận
Tài liệu tham khảo
PHẦN A: XÂY DỰNG ỨNG DỤNG 3D VỚI ANDROID
Chương 1: Tổng quan về ứng dụng trên android
Lược sử về Android:
Android được phát hành phiên bản đầu tiên 11/11/2007, là một môi trường hệ điều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux V2.6. Lúc đầu, đích triển khai đối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thông minh và các loại thiết bị điện thoại kiểu gập chi phí thấp. Tuy nhiên, phạm vi đầy đủ các dịch vụ điện toán của Android và sự hỗ trợ chức năng phong phú của nó có tiềm năng mở rộng ra ngoài thị trường điện thoại di động. Android còn có thể hữu ích đối với các nền tảng và ứng dụng khác.
Nền Android là sản phẩm của Open Handset Alliance (Liên minh thiết bị cầm tay mở), một tập đoàn các tổ chức cùng hợp tác với nhau để xây dựng nên một loại điện thoại di động tốt hơn. Tập đoàn do Google đứng đầu này gồm các nhà vận hành (điện thoại) di động, các nhà sản xuất thiết bị cầm tay, sản xuất linh kiện, các nhà cung cấp nền và giải pháp phần mềm và các công ty tiếp thị. Từ một quan điểm phát triển phần mềm, Android trở thành trung tâm của thế giới mã nguồn mở và rất có tiềm năng phát triển.
Thiết bị cầm tay có khả năng Android đầu tiên trên thị trường là thiết bị G1 do HTC sản xuất và được bán trên T-Mobile. Nó trở nên sẵn có sau gần một năm đồn đại, khi mà các công cụ phát triển phần mềm sẵn có duy nhất chỉ là một số bản phát hành Bộ công cụ phát triển phần mềm (SDK) được cải tiến dần từng bước. Khi ngày phát hành G1 gần đến, nhóm Android đã phát hành SDK V1.0 và các ứng dụng bắt đầu vượt lên nhằm hướng tới nền tảng mới này.
Để kích thích đổi mới và phát triển các ứng dụng của Android, Google đã tài trợ hai vòng cuộc thi “Các thách thức nhà phát triển Android”, và hàng triệu đô la đã được đổ vào các ứng dụng dự thi hàng đầu. Vài tháng sau G1, Android Market được phát hành, cho phép người sử dụng duyệt và tải về các ứng dụng trực tiếp vào điện thoại của họ. Trong vòng 18 tháng, một nền di động mới đã chính thức có mặt trên thị trường và sẽ là đối thủ cạnh tranh nặng ký của các nền di động phổ biến trước đó như Symbian hay Window Mobile.
Android cung cấp khá đầy đủ các công cụ cơ bản và được thiết kế sao cho các nhà