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 (1.17 MB, 129 trang )
Xây dựng ứng dụng 3D với Android
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à ứ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à 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ây dựng nên các
ứng dụng thực sự thuyết phục. Họ có thể tạo một ứng dụ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 ứng dụng 3D với Android
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 ứng dụ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ây dự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ây dự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 ứng dụng Android 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 ứng dụng 3D với Android
9
______________________________________________________________________
Về mặt lịch sử, có hai lĩnh vực mà các ứng dụ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 ứng dụng Android:
1.3.1 Máy ảo Dalvik:
Các ứng dụng Android đượ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 ứng dụng 3D với Android
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 Android vớ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 ứng dụng Android 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 ứng dụng Android:
Một ứng dụng Android gồm 4 thành phần chính sau:
Hoạt động (Activity): một ứng dụ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 ứng dụng từ màn