Xây dựng ứng dụng 3D với Android

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.

docx139 trang | Chia sẻ: lvbuiluyen | Lượt xem: 3058 | Lượt tải: 2download
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à