Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 129 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
129
Dung lượng
2,09 MB
Nội dung
Xâydựngứngdụng3DvớiAndroid 1
______________________________________________________________________
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)
Xây dựngứngdụng3DvớiAndroid 2
______________________________________________________________________
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)
Xây dựngứngdụng3DvớiAndroid 3
______________________________________________________________________
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
Xây dựngứngdụng3DvớiAndroid 4
______________________________________________________________________
DANH MỤC HÌNH
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
Xây dựngứngdụng3DvớiAndroid 5
______________________________________________________________________
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 ứngdụ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âydựng các ứngdụ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 ứngdụ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 ứngdụ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ứngdụng3Dvớ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âydự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.
Xây dựngứngdụng3DvớiAndroid 6
______________________________________________________________________
Đề tài bao gồm:
Phần A: Xâydựngứngdụng3Dvới Android
Chương 1: Tổng quan về ứngdụng trên Android
Chương 2: Các thành phần cơ bản của một ứngdụ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 ứngdụng3D 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ÂYDỰNGỨNGDỤNG3DVỚI ANDROID
Chương 1: Tổng quan về ứngdụng trên android
1.1 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ớiAndroid 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
Xây dựngứngdụng3DvớiAndroid 7
______________________________________________________________________
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à ứngdụ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âydự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 ứngdụ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 ứngdụ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 ứngdụ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 ứngdụ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à phát triển có thể tận dụng tối đa lợi thế của thiết bị cầm tay đểxâydựng nên các
ứng dụng thực sự thuyết phục. Họ có thể tạo một ứngdụng có thể gọi thực hiện các
chức năng lõi trong điện thoại như thực hiện cuộc gọi, gửi tin nhắn SMS, dùng camera
… hay chia sẻ thông tin cá nhân lên trang web chẳn hạn như thông tin liên lạc, vị trí
địa lí, lịch biểu… Các nhà phát triển còn có thể làm bất cứ việc gì trên thiết bị Android
Xây dựngứngdụng3DvớiAndroid 8
______________________________________________________________________
bởi vì hệ thống Android giao tiếp thông qua các Intents – nó đơn giản là một chuỗi mô
tả một hành động nào đó – ví dụ: “android.provider.Telephony.SMS_RECEIVED”.
Android còn cung cấp sẵn các dịch vụ định vị (và đây là một thế mạnh của Google)
cùng với một tập các ứngdụng về “Map” với các tính năng rất ấn tượng như dò đường,
tính khoảng cách địa điểm, tìm bạn … Ngoài ra còn có một số tính năng nổi bật
khác như Animation và đồng thời cũng hỗ trợ media-playback.
Android đã dần hoàn thiện qua các phiên bản, mà phiên bản mới nhất hiện nay
là Android 3.1.
1.2 Nền tảng Android:
Với khả năng rộng rãi của Android, sẽ rất dễ dàng nhầm lẫn nó với một hệ điều
hành máy tính để bàn. Android là một môi trường phân tầng, xâydựng trên nền của hệ
điều hành nhân Linux, và nó bao hàm nhiều chức năng phong phú. Hệ thống giao diện
người sử dụng gồm có:
Cửa sổ
Khung hình
Các tiểu trình để hiển thị các phần tử phổ biến như các hộp biên soạn,
danh sách, danh sách thả xuống.
Android gồm một trình duyệt có thể nhúng vào được, được xâydựng dựa trên
WebKit, chính là máy (engine) trình duyệt mã nguồn mở cũng đang là động cơ của
trình duyệt Safari của iPhone.
Android khoe ra một mảng dồi dào nhiều tùy chọn kết nối, gồm WiFi, Bluetooth
và dữ liệu không dây qua một kết nối di động (như GPRS, EDGE và 3G). Một kỹ thuật
phổ biến trong các ứngdụngAndroid là liên kết tới Google Maps để hiển thị một địa
chỉ trực tiếp trong một ứng dụng. Việc hỗ trợ cho các dịch vụ dựa trên địa điểm (chẳng
hạn như GPS) và các dụng cụ đo gia tốc cũng có sẵn trong gói phần mềm Android,
mặc dù không phải tất cả các thiết bị Android được trang bị với các phần cứng cần
thiết. Ngoài ra còn có cả hỗ trợ máy ảnh nữa (camera).
Xây dựngứngdụng3DvớiAndroid 9
______________________________________________________________________
Về mặt lịch sử, có hai lĩnh vực mà các ứngdụng di động đã gắng sức theo kịp
các đối tác máy tính để bàn là đồ họa/đa phương tiện và phương thức lưu trữ dữ liệu.
Android giải quyết thách thức về đồ họa bằng sự hỗ trợ dựng sẵn cho đồ họa 2D và 3D,
gồm cả thư viện OpenGL. Gánh nặng lưu trữ dữ liệu được giảm nhẹ vì nền Android có
gồm cả cơ sở dữ liệu SQLite mã nguồn mở phổ biến. Hình 1 cho thấy một khung hình
đơn giản hóa về các tầng phần mềm Android.
Hình 1 – Cấu trúc Android
1.3 Kiến trúc ứngdụng Android:
1.3.1 Máy ảo Dalvik:
Các ứngdụngAndroid được viết bằng ngôn ngữ lập trình Java và chúng chạy
trong một máy ảo (VM). Điều quan trọng phải lưu ý rằng VM không phải là một máy
ảo Java mà là máy ảo Dalvik (Dalvik Virtual Machine), một công nghệ mã nguồn mở.
Chiếc máy ảo này dựa trên việc đăng kí (register-based) và được thiết kế bởi Dan
Xây dựngứngdụng3DvớiAndroid 10
______________________________________________________________________
Bornstein và một vài kĩ sư của Google. Thuật ngữ “register-based” đã nói lên sự khác
biệt giữa máy ảo Androidvới máy ảo JAVA thông thường. Tương tự như máy ảo JAVA,
đây cũng chỉ là một máy ảo thông dịch, nhưng thông dịch các file có định dạng .dex
(Dalvik Execute) – một định dạng giúp tối ưu bộ nhớ và khả năng lưu trữ của máy ảo –
Các máy ảo JAVA ngày nay chủ yếu dựa trên ngăn xếp (Stack-based), với tính chất này
cho phép rút ngắn thời gian thực thi chương trình. Mỗi ứngdụngAndroid chạy trong
một cá thể của máy ảo Dalvik, khi đến lượt, cá thể máy ảo này nằm trong một tiến trình
do nhân Linux quản lý, như trình bày dưới đây.
Hình 2 – Máy ảo Dalvik
1.3.2 Các thành phần của một ứngdụng Android:
Một ứngdụngAndroid gồm 4 thành phần chính sau:
Hoạt động (Activity): một ứngdụng có một giao diện người dùng nhìn
thấy được, sẽ được thực hiện bằng một Activity. Activity dùng Views để
tạo nên giao diện đồ họa người dùng, để hiển thị thông tin và đáp lại các
hành động của người dùng. Khi người dùng chọn một ứngdụng từ màn
[...]... tương ứngvới phiên bản Android Xây dựngứngdụng3DvớiAndroid 17 - Nhấn nút Finish Hình 5 – Tạo một Android project 1.7.2 Cấu trúc một project: Một Android project gồm các thư mục sau: • Thư mục src chứa source code ứngdụng Gồm các package và các class • Thư mục gen chứa các file tự động phát sinh (mà thường gặp nhất là R.class) Xây dựngứngdụng3Dvới Android. .. ứngdụng giúp việc chia sẽ cũng như trao đổi giữa các ứngdụng khác trở nên dễ dàng hơn 1.4 Vòng đời của ứngdụng Android: Không giống như các ứngdụng trên các nền tảng khác, các ứngdụngAndroid không có một điều khiển đến vòng đời của chúng Thay vào đó, các thành phần ứngdụng phải lắng nghe việc thay đổi trạng thái bên trong của ứngdụng đó và tác động trở lại một cách hợp lý Mỗi một ứngdụng Android. .. cả tập tin AndroidManifest.xml 1.5.2 Android SDK: Bộ công cụ phát triển ứngdụngAndroid SDK là công cụ giả lập thiết bị ảo trên máy tính để phát triển ứngdụngvới các hàm API hỗ trợ cho những lập trình viên lập trình trên các thiết bị di động sử dụng nền tảng Android thông qua ngôn ngữ lập trình Java SDK gồm có: Xây dựngứngdụng3DvớiAndroid 13 android. jar.. .Xây dựngứngdụng3DvớiAndroid 11 hình chủ hoặc trình khởi chạy ứngdụng thì một Activity được khởi động Activity trong Android cũng tương tự như một Form trong các ứngdụng desktop truyền thống Dịch vụ (Services): các service làm việc ẩn dưới ứng dụng, được sử dụngđể thực hiện các xử lý thông thường khi cần và... ứngdụng khác truy xuất và Xây dựngứngdụng3DvớiAndroid 29 ngược lại Nếu ứngdụng rất đơn giản thì không nhất thiết phải tạo ra một trình cung cấp nội dung Content Provider giúp tách biệt tầng ứngdụng ra khỏi tầng dữ liệu Nó có đầy đủ các quyền điều khiển và được truy xuất thông qua mô hình URI đơn giản như là có thể thêm, xóa, cập nhật dữ liệu của các ứng dụng. .. samples chứa bộ mã nguồn đầy đủ dùng cho một loạt các ứng dụng, gồm cả ApiDemo, nó sử dụng nhiều API Ứngdụng mẫu là một nơi khám phá tuyệt vời khi bắt đầu phát triển ứngdụngAndroid Thư mục tools (các công cụ): chứa toàn bộ các công cụ dòng lệnh đểxâydựng nên các ứngdụngAndroid Công cụ được dùng phổ biến và hữu ích nhất là tiện ích adb (Android Debug Bridge) Usb_driver: thư mục chứa các trình... tương ứng sẽ không được khởi chạy Ví dụ sau mô tả cách làm thế nào để khai báo Activity đã được tạo ở phần trên: 2.1.2 Vòng đời của Activity: Xây dựngứngdụng3Dvới Android. .. đây: Xây dựngứngdụng3DvớiAndroid 15 Hình 3– Tạo một AVD - Mục Name: đặt tên cho thiết bị, tên gì cũng được, cốt là dễ nhớ và để phân biệt, không chứa khoản trắng và các ký tự đặc biệt - Mục Target: chọn phiên bản hệ điều hành Android - Mục SD Card: điền kích thước bộ nhớ của thiết bị hoặc lấy một file SD Card có sẵn - Nhấn nút Create AVD Xây dựngứngdụng3D với. .. nguyên cho các ứngdụng có độ ưu tiên cao 1.5 Các công cụ để tạo một ứngdụng Android: Để bắt đầu phát triển các ứngdụng Android, chúng ta cần có Bộ công cụ phát triển phần mềm Android (SDK) và môi trường phát triền tích hợp Eclipse (Eclipse IDE) Việc phát triển Android có thể diễn ra trên Microsoft Window, Mac OS X hoặc Linux Trong tiểu luận này, nhóm thực hiện sẽ phát triển ứngdụngAndroid bằng Microsoft... Activity nổi, hoặc các dialog Xây dựngứngdụng3DvớiAndroid 19 2.1.1 Tạo một Activity: Để tạo một Activity mới, cần thừa kế từ lớp Activity, sử dụng các View để cung cấp các tương tác với người dùng, khai báo các thành phần giao diện và thực thi các chức năng của ứngdụng package com.paad.myapplication; import android. app.Activity; import android. os.Bundle; public . ứng dụng 3D với Android 6
______________________________________________________________________
Đề tài bao gồm:
Phần A: Xây dựng ứng dụng 3D với Android
Chương. 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
1.1 Lược sử về Android:
Android được phát hành phiên