Lập trình ứng dụng game trên Android

38 513 0
Lập trình ứng dụng game trên Android

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO CUỐI KỲ Môn ĐỒ ÁN MÔN HỌC CHUYÊN NGÀNH Đề tài : Lập trình ứng dụng game Android Giảng viên : ThS Nguyễn Trác Thức Sinh viên: Nguyễn Công Huy 08520148 Võ Trường Thi TP.HCM, ngày 01 tháng 06 năm 2012 08520375 LỜI MỞ ĐẦU Ngày nay, điện thoại di động vật dụng thiếu sống Nó chức nghe gọi, mà thực hầu hết công việc mà máy tính làm, phục vụ cho nhu cầu văn phòng, giải trí công việc Đặc biệt ngành phần mềm, game lĩnh vực đặc biệt, có bước phát triển mạnh mẽ, mà nhu cầu giải trí thiết bị di động người sử dụng ngày tăng cao Do đó, lập trình game thiết bị di động xu hướng tất yếu nhà làm phần mềm Điện thoại Android với số lượng người dùng đông đảo, với đa dạng cấu hình, đa dạng chủng loại, mảnh đất màu mỡ cho nhà phát triển game Do đó, google hỗ trợ Android nhiều thư viện để lập trình game hiệu quả, kể đến OpenGL, thư viện đồ họa mạnh mẽ Với phát triển mạnh mẽ Android, lập trình game Android, hội cho lập trình viên lớn Vì vậy, nhóm chọn đề tài “Lập trình ứng dụng game Android” Trong đề tài này, nhóm trình bày nhìn lập trình game Android demo ứng dụng game Cảm ơn thầy Nguyễn Trác Thức tận tình hướng dẫn chúng em hoàn thành đồ án Mục lục Tìm hiểu Android 1.1 Giới thiệu Android hệ điều hành dành cho thiết bị di động, phát triển Open Handset Alliance, dẫn đầu Google Android phát triển Google, dựa tảng Linux phần mềm nguồn mở Ban đầu phát triển Android Inc (sau Google mua lại) gần trở thành phần mềm đứng đầu liên minh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm nhà sản xuất, nhà phát triển ứng dụng cho thiết bị di dộng mà dẫn đầu Google) Android phát triển nhằm cạnh tranh với hệ điều hành di động khác iOS (Apple), BlackBerry OS, Windows Mobile (Microsoft), Symbian (Nokia), Samsung (Bada), WebOS (Palm) Theo thống kê quý II năm 2010 Mỹ, hệ điều hành Android chiếm thị phần 33% (cao nhất) tổng số hệ điều hành di động bán ra, thứ BlackBerry OS 28% iOS (Apple) xếp thứ với 22% 5.1 Cấu trúc hệ thống Android gồm tầng thành phần sau : Application, Application Framework, Libraries, Linux Kernel Báo cáo môn Đồ án môn học chuyên ngànhTrang Các tầng tảng Android 9.1.1 Applications 10 Android cung cấp ứng dụng tiện ích email client, SMS, lịch, đồ, trình duyệt … Tất viết ngôn ngữ Java 10.1.1.Application Framework 11 Cung cấp tảng mở cho lập trình viên, giúp họ lập trình phần mềm với nhiều tính thú vị Ở tầng này, Android cung cấp khả truy cập tới phần cứng hệ thống, dịch vụ hệ điều hành cung cấp thông tin vị trí, truy cập mạng, thông báo … 12 Tầng bao gồm thành phần sau : - Một đối tượng View để xây dựng nên ứng dụng bao gồm list, grid, textboxes, buttons, trình duyệt nhúng Báo cáo môn Đồ án môn học chuyên ngànhTrang - Content Providers cung cấp khả truy cập tới liệu ứng dụng khác - Resource Manager cung cấp khả truy cập tới resource dạng code, chuỗi, đồ họa layout - Notification Manager giúp alert lên status bar - Activity Manager cung cấp khả quản lý vòng đời ứng dụng 12.1.1.Libraries 13 Android bao gồm thư viện C/C++ sử dụng thành phần khác Một số thư viện Android sử dụng : - System C library : Thư viện chuẩn C - Thư viện đa phương tiện : dựa PacketVideo's OpenCORE, thư viện hỗ trợ chơi định dạng âm video phổ biến MPEG4, H.264, MP3, AAC, JPG, PNG… - Quản lý surface : Quản lý việc truy cập hệ thống hiển thị bên dưới, lớp đồ họa 2D, 3D - LibWebCore : Một engine trình duyệt đại, sử dụng trình duyệt Android WebView control - SGL : Cơ sở đồ họa 2D - 3D libraries : thư viện đồ họa 3D OpenGL, sử dụng tăng tốc đồ họa phần cứng cho phép - FreeType : thư viện render vector bitmap font - SQLite : Engine hệ quản trị sở liệu mạnh mẽ nhẹ 13.1.1.Android Runtimes 14 Mỗi ứng dụng Android chạy tiến trình riêng, với máy ảo Dalvik Máy ảo thực thi file dex, dạng file tối ưu cho nhớ nhỏ 14.1.1.Nhân linux Báo cáo môn Đồ án môn học chuyên ngànhTrang 15 Android dựa nhân linux 2.6 cho dịch vụ hệ thống bảo mật, quản lý nhớ, network stack driver model Nhân coi lớp ảo trung gian phần cứng phần mềm 15.1 Các thành phần ứng dụng Android 16 Một ứng dụng Android tạo hay nhiều thành phần đây: 16.1.1.Activity 17 Activity thành phần có nhiệm vụ hiển thị giao diện ứng dụng Một ứng dụng bao gồm nhiều Activity Chúng tồn độc lập với nhau, gọi lẫn Một ứng dụng gọi tới Activity ứng dụng khác (nếu ứng dụng cho phép) • Vòng đời Activity 18 19 Actitvity thành phần quan trọng đóng vai trò xây dựng ứng dụng Android 20 21 Hệ điều hành Android quản lý Activity theo dạng stack: Activity khởi tạo, xếp lên đầu stack trở thành running activity, Activity trước bị tạm dừng hoạt động trở lại Activity giải phóng 22 23 Các trạng thái Activity: Báo cáo môn Đồ án môn học chuyên ngànhTrang 24 Báo cáo môn Đồ án môn học chuyên ngànhTrang 25 Running: Activity hiển thị hình (foreground) 26 Paused: Activity hiển thị (visible) tương tác (lost focus) 27 Stop: Activity bị thay hoàn toàn Activity tiến đến trạng thái stop 28 Killed: Khi hệ thống bị thiếu nhớ, giải phóng tiến trình theo nguyên tắc ưu tiên Các Activity trạng thái stop paused bị giải phóng hiển thị lại Activity phải khởi động lại hoàn toàn phục hồi lại trạng thái trước 29 30 • Khởi động Activity 31 - Khai báo tường minh: cung cấp xác thông tin activity cần gọi (nếu ứng dụng cần cung cấp tên class, ứng dụng khác cung cấp tên package, tên class) 32 33 Ví dụ: Gọi Activity tường minh 34 35 Intent intent = new Intent(getApplicationContext(), TargetActivity.class); 36 startActivity(intent); 37 - Khai báo không tường minh: cung cấp thao tác cần làm gì, với loại liệu nào, thao tác thuộc nhóm nào… hệ thống tìm activity tương ứng để khởi động 38 39 Ví dụ: Gọi Activity không tưởng minh 40 41 Intent intent = new Intent(Intent.ACTION_VIEW); 42 intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI) ; 43 startActivity(intent); 44 • Liên lạc Activity 45 46 Khi khởi động activity, ta gửi kèm liệu intent ví dụ sau: 47 intent.putExtra("value1", new String("Hello")); 48 intent.putExtra(“value2", new Long(100));Bên phía activity khởi động, lấy liệu gửi sau: Báo cáo môn Đồ án môn học chuyên ngànhTrang 49 getIntent().getExtras().getString("value1"); 50 getIntent().getExtras().getLong("value2"); 51 Có thể khởi động activity với yêu cầu activity làm xong công việc trả lại kết cho activity trước 52 53 Ví dụ activity A yêu cầu activity làm giúp việc chụp ảnh, activity B đáp ứng việc này, sau user chụp ảnh xong trả lại file ảnh cho activity A 54 55 Như đỡ tốn nhiều công sức làm việc mà người khác làm 55.1.1.Services 56 Service thành phần chạy nền, thực thi thời gian dài Một service không cung cấp giao diện người dùng, mà chạy phía dưới, không cần tương tác với người dùng Một activity khởi chạy dịch vụ tương tác với chúng 57 Một Service sử dụng theo cách: 58 59 - Nó bắt đầu cho phép hoạt động người dừng lại tự ngắt Ở chế độ này, bắt đầu cách gọi Context.startService() dừng lệnh Context.stopService() Nó tự ngắt lệnh Service.stopSelf() Service.stopSelfResult() Chỉ cần lệnh stopService() để ngừng Service lại cho dù lệnh startService() gọi lần 60 61 - Service vận hành theo lập trình việc sử dụng Interface mà định nghĩa Các người dùng thiết lập đường truyền tới đối tượng Service sử dụng đường kết nói để thâm nhập vào Service Kết nối thiết lập cách gọi lệnh Context.bindService() đóng lại cách gọi lệnh Context.unbindService() Nhiều người dùng kết nối tới thiết bị Nếu Service chưa khởi chạy, lệnh bindService() tùy ý khởi chạy Hai chế độ không tách biệt toàn Bạn kết nối với Service mà bắt đầu với lệnh startService() Ví dụ, Service nghe nhạc chế độ bắt đầu cách gọi lệnh startService() với đối tượng Intent Báo cáo môn Đồ án môn học chuyên ngànhTrang 10 207 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 208 209 210 211 212 213 214 215 216 217 // TODO Auto-generated method stub Log.i(TAG, "Upgrading DB"); db.execSQL("DROP TABLE IF EXISTS users"); onCreate(db); } } Mở CSDL public DBAdapter open() { mDbHelper = new DatabaseHelper(mContext, DATABASE_NAME, null, DATABASE_VERSION); 218 219 220 221 222 223 224 225 226 mDB = mDbHelper.getWritableDatabase(); return this; } Thêm giá trị vào CSDL public long createUser(String name){ ContentValues inititalValues = new ContentValues(); inititalValues.put(KEY_NAME, name); return mDB.insert(DATABASE_TABLE, null, inititalValues); } 227 Truy vấn Ta get toàn data get data theo ID ( tiện cho việc chỉnh sửa hay cập nhật thông tin ghi) 228 229 public Cursor getAllUsers(){ 230 } return mDB.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_NAME}, null, null, null, null, null); 231 Còn nhiều thao tác sửa, xóa, update ghi, tất chức cung cấp lớp SQLiteDatabase, ta cần cụ thể hóa câu truy vấn Báo cáo môn Đồ án môn học chuyên ngànhTrang 24 Đóng CSDL 232 233 234 235 public void close(){ mDbHelper.close(); } Sử dụng CSDL Để test CSDL mà bạn vừa tạo, ta thêm vài dòng code để thêm user hiển thị CSDL lên hình thông qua lớp Activity ban đầu: Ví dụ ta tạo user thông qua câu lệnh mDB.createUser("Username"); sau 236 237 238 239 240 241 242 243 244 245 246 247 248 249 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mDB = new DBAdapter(this); mDB.open(); mDB.createUser("Do Minh Thong"); getData(); } private void getData(){ mCursor = mDB.getAllUsers(); startManagingCursor(mCursor); String[] from = new String[]{DBAdapter.KEY_NAME}; int[] to = new int[] {R.id.text1}; SimpleCursorAdapter users = new SimpleCursorAdapter(this, R.layout.users_row, mCursor, from, to); 250 251 setListAdapter(users); } 252 252.1 - Các thư viện khác libzip : đọc file zip, giúp đọc liệu từ file apk - libpng : đọc file png thành liệu thô hình ảnh Báo cáo môn Đồ án môn học chuyên ngànhTrang 25 252.2 Vòng đời game 253 Như biết, game chu trình khép kín, lặp lặp lại Ban đầu nhận kiện input Sau xử lý tương ứng hàm Update(), cuối vẽ lên hình thông qua hàm Render() 254 Game Android có cấu trúc tương tự Nó bao gồm hàm xử lý input, update, render, gọi tự động 255 Hàm xử lý kiện: 256 257 258 259 260 @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: NativeLib.touchdown((short)event.getX(), (short)event.getY()); 261 262 263 break; case MotionEvent.ACTION_UP: NativeLib.touchup((short)event.getX(), (short)event.getY()); 264 265 266 break; case MotionEvent.ACTION_MOVE: NativeLib.touchmove((short)event.getX(), (short)event.getY()); 267 268 269 break; } return true; Báo cáo môn Đồ án môn học chuyên ngànhTrang 26 270 271 272 273 274 275 } Hàm update render: public void onDrawFrame(GL10 gl) { if(KimCuongActivity.isFirstInitApp == false){ if(KimCuongActivity.isNeedReloadResource == true){ 276 277 NativeLib.reloadTexture(); KimCuongActivity.isNeedReloadResource = false; 278 279 280 281 282 283 284 285 286 287 } } else { KimCuongActivity.isFirstInitApp = false; } NativeLib.update(); NativeLib.render(); } 288 Những khác biệt so lập trình game thiết bị di động máy tính 289 290 vs 291 292 293 Mặc dù năm gần đây, điện thoại thông minh ngày gần với máy tính với hình rộng hơn, CPU mạnh hơn, RAM nhiều hơn, Báo cáo môn Đồ án môn học chuyên ngànhTrang 27 điện thoại có hạn chế định Điều ảnh hưởng không nhỏ đến công việc lập trình phần mềm Android 294 295 298 K 296 Windows 299 Khả chạy ứng dụng lớn, CPU mạnh, RAM cao, đồ họa mạnh, cần phải ý đến việc tối ưu 301 N 302 Thường nhập liệu chuột bàn phím Việc nhập liệu dễ dàng Màn hình hiển thị lớn 304 M àn hình 305 Màn hình rộng, độ phân giải cao, dễ dàng thiết kế giao diện Các cửa sổ fix kích thước dễ dàng 307 308 Dùng điện lưới laptop pin có dung lượng cao (do hập xuất N guồn điện Báo cáo môn Đồ án môn học chuyên ngànhTrang 28 297 Di động 300 Ứng dụng phải tối ưu nhiều hơn, để thích ứng với CPU, RAM GPU hạn chế Các thiết bị thông thường có CPU khoảng -1.5GHz, Ram 1GB Do lập trình game phải lưu ý đến vấn đề này, đặc biệt game 3D 303 Sử dụng hình cảm ứng để thao tác, hình nhỏ Vì cần phải lưu ý thiết kế để có giao diện dễ nhập xuất thông tin Tuy vậy, việc sử dụng hình cảm ứng có điểm có lợi Ví dụ thao tác đa điểm giúp ta tạo nhiều cách xử lý độc đáo 306 Màn hình nhỏ, độ phân giải cao thấp tùy phân khúc điện thoại, phải ý nhiều thiết kế giao diện Ví dụ nút phải làm to hơn, bố trí giao diện hợp lý 309 Công nghệ CPU, GPU phát triển nhanh, công kích thước lớn), phần mềm chạy lâu 310 Đ ịnh vị 311 Thường khả định vị (nếu muốn có phải gắn ngoài) 313 T 314 Không có tính điện thoại nghe, gọi, nhắn tin ính điện thoại nghệ pin không phát triển thêm Do pin dung lượng thấp so với nhu cầu thực tế, tiêu tốn nhiều pin CPU xử lý nặng, sử dụng Wifi, 3G Cần giảm việc sử dụng tài nguyên tới mức thấp 312 Có khả định vị GPS Tận dụng khả điện thoại tạo nhiều ứng dụng hữu ích định vị, dẫn đường, tìm địa điểm 315 Các ứng dụng quản lý danh bạ, gọi, tin nhắn nhiều Tuy nhiên, bên cạnh cần lưu ý đến việc xử lý interrupt có gọi đến, hay tin nhắn tới 316 317 Những khác biệt so lập trình game Android tảng di động khác 318 319 Hiện có nhiều hệ điều hành di động phát triển sử dụng Tuy vậy, ba hệ điều hành đánh giá cao khả phát Báo cáo môn Đồ án môn học chuyên ngànhTrang 29 triển tương lai Android, iOS Windows Phone Do khác nhân, mục tiêu hướng đến, dòng điện thoại hỗ trợ, nên việc lập trình ứng dụng hệ điều hành có khác 320 321 Andr oid 322 324 Cấu hình 325 Điện thoại Android có đủ loại cấu hình từ thấp đến cao, với khác CPU, GPU, hình, …, lập trình phải lưu ý đến việc hỗ trợ cấu hình 326 Cấu hình cao, có dòng điện thoại, nên không bị phân mảnh, dễ dàng cho lập trình viên 328 Màn hình 329 Hỗ trợ nhiều loại hình, khác độ phân giải, đa điểm…, gây khó khăn việc thiết kế, đặc biệt lập trình game 330 Màn hình kích thước nhau, dễ dàng thiết kế phần mềm Báo cáo môn Đồ án môn học chuyên ngànhTrang 30 iOS 323 Wi ndows Phone 327 Có quy định cấu hình tối thiểu Cấu hình cao nhau, nên lập trình không cần nhiều phiên Tuy nhiên, sau có khả phân mảnh sách Microsoft 331 Có quy định khả tối thiểu hình độ phân giải, đa điểm… dễ dàng thiết kế phần mềm Tuy nhiên sau bị phân 332 Ngôn ngữ lập trình 336 Đa nhiệ m 340 Nhân 344 Công cụ phát triển 333 Java, C, C++ 334 Objecti ve C 337 Hỗ trợ đa nhiệm, chạy nhiều ứng dụng lúc 341 Linux 338 Chỉ số phiên sau hỗ trợ đa nhiệm 342 Lai (monolithic microkernel) 346 Mac OS, Xcode 345 Eclips e, Netbean … Android SDK, NDK SDK mảnh 335 C# (bản Tango hỗ trợ thêm C+ +) 339 Hỗ trợ đa nhiệm tốt 343 Win dows CE 347 Mic rosoft Visual Studio 2010, Windows Vista trở lên, Windows Phone SDK 348 349 350 Giới thiệu game Kim cương 350.1 Giới thiệu 351 Game kim cương game phổ biến giới game Người chơi rèn luyện nhanh tay, nhanh mắt cách tìm vị trí ăn được, nhằm đạt điểm số cao 352 Phiên game Kim cương với nhiều cải tiến cách chơi, giao diện phong phú, lạ, nhiều loại Kim cương đặc biệt, giúp người chơi không bị nhàm chán Báo cáo môn Đồ án môn học chuyên ngànhTrang 31 352.1 353 Giao diện người dùng 354 Báo cáo môn Đồ án môn học chuyên ngànhTrang 32 355 356 Giao diện mở đầu menu 357 Báo cáo môn Đồ án môn học chuyên ngànhTrang 33 358 359 Báo cáo môn Đồ án môn học chuyên ngànhTrang 34 360 Giao diện chọn màn, sau chọn Đảo, người chơi tiếp tục chọn Level 361 Báo cáo môn Đồ án môn học chuyên ngànhTrang 35 362 363 Màn hình chơi menu nhấn nút Tùy chọn 363.1 Cách chơi 364 Người chơi di chuyển viên kim cương cho tạo ba ô thẳng hàng trở lên Lúc viên kim cương bị ăn 365 Bên viên kim cương có ô có “khóa” Khóa ô có màu xanh dương, với độ đậm nhạt khác nhau, tương ứng với mức độ khóa khác Khi người chơi ăn viên kim cương, khóa ô bên phá Khi phá thành công viên kim cương qua 366 Một điểm khó trò chơi, ô “đá” Những ô không chứa kim cương mà cho phép kim cương qua Nó có tác dụng cản trở khả ăn kim cương người chơi, làm tăng độ khó trò chơi lên đáng kể 366.1 Tính mở rộng (item, mission) 367 Khi người chơi ăn bốn viên kim cương thẳng hàng trở lên, có viên kim cương đặc biệt xuất Hiện phiên có hai loại kim cương đặc biệt là: - Kim cương nổ : Khi ăn bốn viên kim cương thẳng hàng, xuất viên kim cương nổ Khi người chơi ăn viên kim cương này, tám viên kim cương xung quanh bị nổ theo - Kim cương sét : Khi ăn viên kim cương thẳng hàng, viên kim cương sét xuất Khi người chơi ăn viên kim cương sét này, hai tia sét ngang, dọc xuất hiện, phá viên kim cương theo hai hàng ngang dọc Báo cáo môn Đồ án môn học chuyên ngànhTrang 36 368 Ngoài ra, người chơi giải mission để đạt điểm cao Phía game có liệt kê loạt loại kim cương mà người chơi phải ăn theo thứ tự Nếu giải mission, người chơi đạt mức điểm cao thử thách với mission khó 368.1 369 Những điểm hấp dẫn game - Cách chơi lạ, so với game kim cương cổ điển Người chơi nhiệm vụ ăn mà phải tính toán cho phá nhiều lock, giải nhiều nhiệm vụ đạt nhiều điểm - Bộ resource với nhiều loại khác trái cây, bánh kẹo, … Ngoài sau bổ xung thêm - Nhiều chơi với độ khó tăng dần Game có tất sáu đảo, đảo gồm chín chơi Các đảo có Resource khác nhau, level có đồ lock khác - Chạy đua với thời gian để phá khóa, qua Người chơi có khoảng thời gian định để phá khóa Nếu phá khóa thành công qua Nếu thất bại phải chơi 370 371 Báo cáo môn Đồ án môn học chuyên ngànhTrang 37 372 TỔNG KẾT 373 Đây thể loại game phổ biến, để thu hút người chơi, ta cần phải làm thêm nhiều tính lạ Game có nhiều tính so với game kim cương bản, nhiên nhiều tính để phát triển sau Sau này, ta thêm vào game nhiều cách chơi khác nhau, nhiều nhiệm vụ khác nhau, yêu cầu người chơi phải tư nhiều hơn, bỏ thời gian nhiều 374 Qua việc làm game, nhóm tìm hiểu nhiều điều bổ ích kỹ thuật lập trình game Android, làm tiền đề cho việc lập trình game Android sau Những kỹ thuật nhóm tìm hiểu mẻ, hữu ích Những kiến thức không áp dụng cho môn học mà sử dụng thời gian tới Báo cáo môn Đồ án môn học chuyên ngànhTrang 38 [...]... bộ hệ thống, và một ứng dụng nào đó có thể nhận sự kiện này và xử lý tương ứng 88 Kỹ thuật lập trình game trên Android 89 Lập trình game về logic thì cũng giống như lập trình game trên các thiết bị khác Vấn đề ở đây là thiết bị di động Android có cấu hình khá thấp so với máy tính, màn hình nhiều kích cỡ khác nhau, việc nhập liệu cũng không linh hoạt bằng Vì vậy lập trình game trên Android cũng đòi hỏi... ứng dụng Nói chung chỉ nên sử dụng native lập trình nếu nó là cần thiết đối với ứng dụng của mình không nên vì chúng ta thích chương trình trong C/C++ 140 - Framework Android cung cấp 2 cách để dùng native code : Dùng Android framework để viết ứng dụng của mình và dùng JNI để truy cập API được cung cấp bởi Android NDK Kỹ thuật này cho phép chúng ta tận dụng các tiện ích của Android Framework, nhưng vẫn... về lập trình game trên Android 89.1 Thư viện đồ họa OpenGL 90 91 Như đã nói ở trên, thư viện đồ họa OpenGL là một thư viện đồ họa 3D, hỗ trợ tương tác trực tiếp với phần cứng, nhất là với bộ tăng tốc đồ họa Sử dụng thư viện đồ họa này, người dùng có thể tạo ra nhưng game có những hiệu ứng phức tạp, chất lượng hình ảnh cao, mà vẫn giữ được sử mượt mà cho game 92 OpengGL là một giao diện phần mềm độc lập. .. 300 Ứng dụng phải được tối ưu nhiều hơn, để thích ứng với CPU, RAM và GPU hạn chế Các thiết bị thông thường hiện nay có CPU khoảng 1 -1.5GHz, Ram 1GB Do đó khi lập trình game cũng phải lưu ý đến vấn đề này, đặc biệt là game 3D 303 Sử dụng màn hình cảm ứng để thao tác, màn hình nhỏ Vì vậy cần phải lưu ý khi thiết kế để có được một giao diện dễ nhập xuất thông tin Tuy vậy, việc sử dụng màn hình cảm ứng. .. của Android Framework, nhưng vẫn cho phép chúng ta viết native code khi cần thiết Chúng ta có thể cài ứng dụng sử dụng Native code thông qua JNI trên thiết bị chạy android 1.5 hoặc mới hơn 141 - Viết một native activity, cho phép chúng ta thực hiện cài đặt vòng đời của ứng dụng android trên native code Android SDK cung cấp lớp NativeActivity cho phép chúng ta cài đặt vòng đời thông qua các hàm sau (onCreate(),... biệt so giữa lập trình game trên thiết bị di động và trên máy tính 289 290 vs 291 292 293 Mặc dù những năm gần đây, điện thoại thông minh đang ngày càng gần với máy tính hơn với màn hình rộng hơn, CPU mạnh hơn, RAM nhiều hơn, nhưng Báo cáo môn Đồ án môn học chuyên ngànhTrang 27 điện thoại vẫn có những hạn chế nhất định Điều này cũng ảnh hưởng không nhỏ đến công việc lập trình phần mềm trên Android 294... này nên chúng ta nên sử dụng thư viện native Báo cáo môn Đồ án môn học chuyên ngànhTrang 20 được tạo ra với NDK trong ứng dụng mà được triển khai trên các thiết bị chạy trên nền tảng android 1.5 trở đi 153 Để đảm bảo tính tương thích, một ứng dụng dùng thư viện native tạo ra với NDK phải khai báo phần tử trong file mainfese của nó, với một giá trị thuộc tính của android: minSdkVersion 3... trợ, nên việc lập trình ứng dụng giữa những hệ điều hành này cũng có những khác nhau cơ bản 320 321 Andr oid 322 324 Cấu hình 325 Điện thoại Android có đủ loại cấu hình từ thấp đến cao, với những sự khác nhau giữa CPU, GPU, màn hình, …, khi lập trình phải lưu ý đến việc hỗ trợ những cấu hình nào 326 Cấu hình khá cao, có rất ít dòng điện thoại, nên không bị phân mảnh, dễ dàng cho lập trình viên 328... hành Android, bắt đầu từ Android 1.5 Từ phiên bản 2.3 trở đi, hệ điều hành android còn hỗ trợ them cách viết Activity bằng C/C++ 138 Khi nào thì dùng native code? 139 Không phải khi nào NDK cũng đều có lợi với tất cả các ứng dụng Vì vậy chúng ta cần cân bằng lợi ích với nhược điểm của nó Đặc biệt trong trường hợp sử dụng native code không làm tăng hiệu suất thực thi mà làm tăng sự phức tạp của ứng dụng. .. độ thực thi của chương trình Bên cạnh đó, có nhiều thư viện được viết bằng C/C++, do đó có thể sử dụng được những thư viện này ngay trên Android 137 NDK cung cấp một số hỗ trợ sau: o Một tập hợp các Toos và files build dùng để tạo ra các thư viện mã từ sources C và C++ o Cách để nhúng các thư viện mã vào một file (.apk) gói ứng dụng mà chúng ta có thể chạy được trên các thiết bị android o Tài liệu, ví ... Giới thiệu Android hệ điều hành dành cho thiết bị di động, phát triển Open Handset Alliance, dẫn đầu Google Android phát triển Google, dựa tảng Linux phần mềm nguồn mở Ban đầu phát triển Android... minh OHA (Open Handset Alliance - với khoảng 78 thành viên bao gồm nhà sản xuất, nhà phát triển ứng dụng cho thiết bị di dộng mà dẫn đầu Google) Android phát triển nhằm cạnh tranh với hệ điều... Notification Manager giúp alert lên status bar - Activity Manager cung cấp khả quản lý vòng đời ứng dụng 12.1.1.Libraries 13 Android bao gồm thư viện C/C++ sử dụng thành phần khác Một số thư viện Android

Ngày đăng: 14/01/2016, 18:13

Từ khóa liên quan

Mục lục

  • 1. Tìm hiểu về Android.

    • 1.1. Giới thiệu

    • 5.1. Cấu trúc hệ thống

    • 15.1. Các thành phần cơ bản của một ứng dụng Android.

    • 88. Kỹ thuật lập trình game trên Android.

      • 89.1. Thư viện đồ họa OpenGL

      • 111.1. Thư viện âm thanh OpenAL

      • 135.1. NDK

      • 173.1. Lưu trữ thông tin.

      • 252.1. Các thư viện khác.

      • 252.2. Vòng đời của một game.

      • 288. Những khác biệt so giữa lập trình game trên thiết bị di động và trên máy tính.

      • 317. Những khác biệt so giữa lập trình game trên Android và các nền tảng di động khác.

      • 350. Giới thiệu game Kim cương

        • 350.1. Giới thiệu cơ bản

        • 352.1. Giao diện người dùng.

        • 363.1. Cách chơi.

        • 366.1. Tính năng mở rộng (item, mission)

        • 368.1. Những điểm hấp dẫn trong game.

Tài liệu cùng người dùng

Tài liệu liên quan