Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp với đề tài "Lập trình đa phương tiện trên nền android" do sinh viên Nông Thế Hiệp thực hiện dưới sự hướng dẫn của TS. Đinh Đức Hùng, thuộc Khoa Công nghệ thông tin – Trường Đại học Hòa Bình, được hoàn thành vào tháng 5 năm 2011.
Bối cảnh thực tiễn được tác giả nêu rõ xuất phát từ sự chuyển dịch chức năng của điện thoại di động trong đời sống xã hội. Thiết bị cầm tay không còn dừng lại ở vai trò liên lạc cơ bản (gọi điện, nhắn tin) mà đã trở thành phương tiện giải trí đa năng, lưu trữ thông tin cá nhân và phục vụ các nhu cầu như tán gẫu trực tuyến, lướt web, nghe nhạc, xem video cũng như theo dõi truyền hình trực tiếp. Trong bối cảnh đó, hệ điều hành Android nổi lên như một nền tảng mã nguồn mở dành cho thiết bị di động với khả năng xử lý đa nhiệm linh hoạt, hỗ trợ cài đặt không giới hạn tài khoản thư điện tử và cung cấp bộ công cụ phát triển phần mềm (SDK) hoàn toàn miễn phí. Tác giả nhận định Android sở hữu tiềm năng phát triển ứng dụng di động lớn nhờ cơ chế cho phép tái sử dụng thành phần, can thiệp sâu vào phần cứng và hỗ trợ đa dạng định dạng truyền thông.
Mục tiêu nghiên cứu được tác giả xác định cụ thể trong văn bản:
- Xây dựng các chương trình nghe nhạc và xem video độc lập trên nền tảng Android.
- Liên kết hai chương trình thành một ứng dụng hoàn chỉnh về giải trí đa phương tiện trên thiết bị di động Android.
Hướng giải quyết của đề tài bao gồm hai nhiệm vụ trọng tâm:
- Tìm hiểu chuyên sâu về hệ thống đa phương tiện (Multimedia) trên hệ điều hành Android.
- Xây dựng chương trình hỗ trợ nghe nhạc và xem video bằng cách tận dụng tối đa bộ công cụ sẵn có của nền tảng Android, đồng thời tối ưu hóa giao diện tương tác người dùng.
Đối tượng nghiên cứu của khóa luận là các thành phần kiến trúc của hệ điều hành Android, bộ công cụ phát triển phần mềm Android SDK, các giao diện lập trình ứng dụng (API) thuộc gói android.media (đặc biệt là lớp android.MediaPlayer), cùng các mô hình giao diện đồ họa. Phạm vi nghiên cứu về mặt không gian công nghệ tập trung vào môi trường phát triển Eclipse tích hợp công cụ ADT, máy ảo Android Virtual Device (AVD) và thiết bị di động chạy Android. Về phạm vi dữ liệu, ứng dụng chỉ xử lý các tệp âm thanh và hình ảnh cục bộ lưu trữ trong bộ nhớ máy hoặc thẻ nhớ ngoài (SD card), hoạt động độc lập không phụ thuộc vào kết nối máy chủ dữ liệu ngoài. Về thời gian, đề tài khảo sát các phiên bản hệ điều hành Android từ 1.5 đến 3.0 phát hành tính đến đầu năm 2011.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết của khóa luận dựa trên nền tảng kiến trúc hệ điều hành Android do Google phát triển trên nền nhân Linux 2.6. Hệ thống được cấu trúc thành bốn tầng chính:
- Tầng ứng dụng (Applications): Gồm tập hợp các ứng dụng người dùng và ứng dụng hệ thống cốt lõi được xây dựng bằng ngôn ngữ Java.
- Tầng khung ứng dụng (Application Framework): Cung cấp các dịch vụ dùng chung bao gồm hệ thống hiển thị View (hỗ trợ Linear Layout, Table View, Grid View), cơ chế chia sẻ dữ liệu Content Provider, bộ quản lý tài nguyên phi mã nguồn Resource Manager, hệ thống thông báo trạng thái Notification Manager và bộ điều phối chu trình sống Activity Manager.
- Tầng thư viện (Libraries) và môi trường thực thi (Android Runtime): Hệ thống thư viện C/C++ chuyên dụng gồm thư viện C chuẩn cho thiết bị nhúng, thư viện đa phương tiện PacketVideo (hỗ trợ MPEG-4, H.264, MP3, AAC, JPG, PNG), Surface Manager quản lý hiển thị, WebKit, thư viện đồ họa 2D (SGL), thư viện đồ họa 3D (OpenGL ES 1.0), thư viện phông chữ FreeType và cơ sở dữ liệu quan hệ nhúng SQLite. Đi kèm là môi trường Android Runtime với máy ảo Dalvik VM vận hành theo cơ chế dựa trên thanh ghi (register-based), thực thi tệp mã đã được tối ưu hóa định dạng
.dex.
- Tầng nhân Linux (Linux Kernel 2.6): Đảm nhiệm các dịch vụ lõi cấp thấp gồm quản lý bộ nhớ, bảo mật, quản lý luồng/tiến trình, ngăn xếp mạng và các trình điều khiển phần cứng.
Khóa luận đi sâu vào các lớp đối tượng nền tảng trong bộ Android API:
Activity: Đơn vị giao diện tương tác với vòng đời khép kín được quản lý qua các hàm onCreate(), onRestart(), onStart(), onResume(), onStop(), onDestroy().
Intent: Cơ chế truyền thông điệp giữa các thành phần ứng dụng, phân định thành hai dạng là Intent tường minh (Explicit Intent - chỉ định đích danh lớp tiếp nhận) và Intent ngầm định (Implicit Intent - hệ thống tự điều phối theo hành động và dữ liệu).
Service: Thành phần thực thi ngầm không giao diện, giữ vai trò duy trì luồng phát âm thanh nền khi người dùng chuyển đổi màn hình tác vụ.
View và Surface: Cung cấp giao diện hiển thị; riêng đối tượng Surface (thông qua SurfaceView) quản lý các điểm ảnh trực tiếp với các phương thức đồng bộ luồng đồ họa như lockCanvas() và unlockCanvasAndPost().
android.media.MediaPlayer: Lớp điều khiển trung tâm của hệ thống giải trí, vận hành theo mô hình máy trạng thái nghiêm ngặt nhằm kiểm soát chu trình phát lại đa phương tiện.
Phương pháp nghiên cứu thực tế được tác giả áp dụng là phương pháp phân tích tài liệu kỹ thuật chuẩn từ nhà phát triển Google, kết hợp phương pháp phân tích thiết kế hệ thống hướng đối tượng thông qua biểu đồ phân rã chức năng và biểu đồ ca sử dụng (Use Case). Sau đó, tác giả sử dụng phương pháp thực nghiệm kỹ thuật phần mềm: hiện thực hóa mã nguồn trên môi trường Eclipse IDE, biên dịch và chạy thử nghiệm chức năng trên bộ giả lập AVD cũng như cài đặt trực tiếp trên phần cứng máy thật.
Nguồn dữ liệu thực nghiệm bao gồm các tập tin âm thanh và video chuẩn (MP3, WAV, 3GP, OGG) được nạp trực tiếp vào thẻ nhớ SD card ảo hoặc bộ nhớ máy điện thoại.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế dưới dạng ứng dụng giải trí độc lập chạy trên thiết bị di động, chia làm hai module chính: module quản lý danh sách tập tin và module phát trình diễn phương tiện.
| Nhóm yêu cầu |
Mã yêu cầu |
Nội dung chi tiết được đặc tả |
| Yêu cầu người dùng |
Yêu cầu 1 |
Thưởng thức các bài nhạc có sẵn trong thẻ nhớ SD card hoặc bộ nhớ máy. |
|
Yêu cầu 2 |
Thưởng thức các video có sẵn trong thẻ nhớ SD card hoặc bộ nhớ máy. |
|
Yêu cầu 3 |
Tự động cập nhật các bài hát và video từ thẻ nhớ hoặc bộ nhớ trong. |
|
Yêu cầu 4 |
Thao tác điều khiển phát: tua, tạm dừng, tắt, phát lại từ đầu. |
|
Yêu cầu 5 |
Giao diện đồ họa trực quan, thuận tiện và dễ sử dụng. |
| Yêu cầu hệ thống |
Yêu cầu 6 |
Vận hành ổn định các định dạng tệp đa phương tiện phổ biến: MP3, WAV, 3GP. |
|
Yêu cầu 7 |
Cho phép chuyển đổi vùng dữ liệu linh hoạt. |
|
Yêu cầu 8 |
Thao tác chuyển đổi bài hát diễn ra nhanh chóng, chính xác. |
|
Yêu cầu 9 |
Đảm bảo độ tin cậy và tính toàn vẹn của dữ liệu trong quá trình phát. |
|
Yêu cầu 10 |
Kiến trúc module hóa, hỗ trợ nâng cấp và bảo trì thuận lợi. |
Hệ thống phân rã chức năng người dùng thông qua biểu đồ ca sử dụng gồm 10 Use Case cụ thể:
| STT |
Tên Use Case |
Ý nghĩa và chức năng vận hành |
| 1 |
Chương trình |
Khởi động biểu tượng ứng dụng, tải dữ liệu ban đầu và hiển thị Activity MediaI508. |
| 2 |
List |
Giao diện TabHost phân loại, hiển thị danh sách bài hát và video theo thứ tự chữ cái. |
| 3 |
Play |
Kích hoạt luồng phát nội dung mới hoặc tạm dừng bài hát/video đang phát. |
| 4 |
Next |
Chuyển tiếp và phát tập tin kế tiếp trong danh sách hiện hành. |
| 5 |
Previous |
Lùi lại và phát tập tin đứng liền trước trong danh sách hiện hành. |
| 6 |
Backward |
Tua nội dung đang phát về phía sau theo khoảng thời gian xác định. |
| 7 |
Forward |
Tua nội dung đang phát về phía trước theo khoảng thời gian xác định. |
| 8 |
Shuffle |
Kích hoạt chế độ xáo trộn ngẫu nhiên thứ tự các bài hát trong danh sách. |
| 9 |
Repeat |
Kích hoạt chế độ phát lặp lại bài hát hiện hành hoặc toàn bộ danh sách. |
| 10 |
Exit |
Thoát ứng dụng và giải phóng các tài nguyên hệ thống liên quan. |
Quy trình triển khai và kiểm thử phần mềm được thiết lập với môi trường công nghệ cụ thể:
- Môi trường phát triển tích hợp (IDE): Eclipse (phiên bản Eclipse for Java Developers hoặc Eclipse for Java and Report Developers).
- Bộ công cụ lập trình: Android SDK Starter kết hợp gói phần mềm ADT (Android Development Tools) tích hợp trực tiếp vào Eclipse qua cổng kết nối tải về từ kho lưu trữ của Google.
- Trình giả lập máy ảo (AVD): Cấu hình thiết bị máy ảo với các thông số phân giải màn hình chuẩn gồm HVGA (320x480 tương thích HTC G1, G2), QVGA (240x320 tương thích HTC Wildfire) và WVGA854 (480x854 tương thích Motorola Milestone, Nexus One); gắn kèm phân vùng thẻ nhớ ảo (SD Card Size).
- Kiểm thử thực tế: Triển khai kiểm tra khả năng quét tập tin đa phương tiện, phát lại âm thanh, hiển thị hình ảnh video và phản hồi các nút bấm tương tác trên cả máy ảo AVD lẫn thiết bị di động thực tế thông qua trình điều khiển USB Driver.
Nội dung chính theo từng chương
CHƯƠNG I : GIỚI THIỆU CHUNG
Chương này thiết lập cơ sở khoa học và bối cảnh thực tiễn của đề tài. Tác giả chỉ ra sự bùng nổ của thị trường thiết bị di động thông minh, sự chuyển dịch từ thiết bị nghe gọi đơn thuần sang phương tiện giải trí đa phương tiện di động. Nội dung chương trình bày tổng quan về hệ điều hành Android, nêu rõ ưu điểm về tính mở, bộ công cụ SDK miễn phí và tiềm năng phát triển phần mềm trong tương lai. Tác giả công bố mục tiêu cần đạt được là xây dựng ứng dụng nghe nhạc và xem video hoàn chỉnh; xác định hướng giải quyết kỹ thuật dựa trên khai thác các API đa phương tiện sẵn có của Android; đồng thời vạch rõ phạm vi đề tài và bố cục 5 chương của quyển luận văn.
CHƯƠNG II : TỔNG QUAN VỀ ANDROID
Chương II trình bày cơ sở lý thuyết bao quát về hệ điều hành Android. Tác giả phân tích lịch sử thành lập Android Inc., thương vụ sáp nhập với Google năm 2005 và sự ra đời của Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) cuối năm 2007. Văn bản cung cấp số liệu thống kê thời điểm năm 2011: mã nguồn hệ điều hành chứa 12 triệu dòng mã (trong đó có 3 triệu dòng XML, 2,1 triệu dòng Java), kho ứng dụng Android đạt khoảng 200.000 ứng dụng với 100.000 ứng dụng đã được đệ trình.
Tác giả tổng hợp tiến trình phát triển các phiên bản hệ điều hành Android qua bảng dữ liệu:
| Tên phiên bản |
Nền tảng Linux Kernel |
Thời điểm phát hành |
Tính năng và cập nhật kỹ thuật chính |
| 1.5 (Cupcake) |
Kernel 2.6.27 |
30/04/2009 |
Ghi và xem video qua camcorder; tải video lên YouTube, ảnh lên Picasa; bổ sung bàn phím ảo đoán trước văn bản; hỗ trợ Bluetooth A2DP/AVRCP; widget màn hình chủ. |
| 1.6 (Donut) |
Kernel 2.6.29 |
15/09/2009 |
Cập nhật bộ SDK, nâng cấp giao diện tìm kiếm và hỗ trợ mạng CDMA. |
| 2.0 / 2.1 (Eclair) |
Kernel 2.6.29 |
26/10/2009 (2.0) 03/12/2009 & 12/01/2010 (2.1) |
Hỗ trợ nhiều tài khoản người dùng, cải tiến trình duyệt web, hỗ trợ chuẩn đồ họa và bản đồ số. |
| 2.2 (Froyo) |
Kernel 2.6.32 |
20/05/2010 |
Tối ưu hóa tốc độ hệ thống bằng trình biên dịch JIT, tối ưu hóa bộ nhớ và hiệu năng xử lý. |
| 2.3 (Gingerbread) |
Kernel 2.6.35 |
06/12/2010 (Cập nhật 02/2011) |
Nâng cấp giao diện người dùng, cải tiến bàn phím ảo, tăng cường hỗ trợ cảm biến con quay hồi chuyển và NFC. |
| 3.0 (Honeycomb) |
Kernel 2.6.36 |
22/02/2011 |
Phiên bản thiết kế tối ưu hóa chuyên biệt dành riêng cho thiết bị máy tính bảng. |
Chương này cũng phân tích chi tiết cấu trúc 4 tầng kiến trúc Android; phân loại các API trọng yếu (Activity, Intent, View, Service, Widget); cung cấp hướng dẫn cài đặt Eclipse, Android SDK và tạo máy ảo AVD. Đặc biệt, tác giả khảo sát chi tiết gói android.media và lớp android.MediaPlayer, cung cấp bảng tổng hợp các trạng thái vòng đời của đối tượng phát media:
| Tên trạng thái |
Mô tả trạng thái hoạt động của đối tượng MediaPlayer |
| Idle |
Trạng thái rỗi khi đối tượng vừa được khởi tạo mới hoặc sau khi gọi phương thức reset(). |
| Initialized |
Thiết lập thành công nguồn dữ liệu thông qua phương thức setDataSource(). |
| Preparing |
Thiết bị đang trong tiến trình chuẩn bị tài nguyên nội bộ để sẵn sàng phục vụ phát media. |
| Prepared |
Hoàn tất công tác chuẩn bị, thiết bị đã ở trạng thái sẵn sàng phát dữ liệu. |
| Started |
Đang thực hiện tác vụ phát lại tập tin âm thanh hoặc video qua lệnh start(). |
| Paused |
Tạm dừng tiến trình phát thông qua phương thức pause(). |
| Stopped |
Dừng hoàn toàn tiến trình phát media thông qua phương thức stop(). |
| PlaybackCompleted |
Quá trình phát lại tập tin đã hoàn thành toàn bộ thời lượng. |
| End |
Kết thúc hoạt động và giải phóng tài nguyên hệ thống qua phương thức release(). |
| Error |
Trạng thái phát sinh lỗi trong quá trình xử lý hoặc truyền thông dữ liệu media. |
CHƯƠNG III : PHÂN TÍCH – XÂY DỰNG ỨNG DỤNG MEDIA PLAYER
Nội dung chương tập trung vào giai đoạn phân tích thiết kế phần mềm. Tác giả đặt bài toán xây dựng hệ thống nghe nhạc và xem video từ thẻ nhớ SD card hoặc bộ nhớ trong, vận hành offline không cần kết nối mạng. Chương trình làm rõ các yêu cầu người dùng, yêu cầu hệ thống và quy định định dạng dữ liệu (MP3, WAV, 3GP, OGG). Tác giả xây dựng biểu đồ phân rã chức năng, mô tả 10 ca sử dụng và lập tài liệu đặc tả chi tiết cho từng ca sử dụng gồm tóm tắt, dòng sự kiện chính, trạng thái bắt đầu và trạng thái sau khi kết thúc tác vụ. Cuối chương là thiết kế giao diện dạng TabHost cho danh sách tập tin và giao diện điều khiển phát media tích hợp các nút bấm chức năng (Play, Next, Previous, Backward, Forward, Repeat, Shuffle, SeekBar, ProgressBar).
CHƯƠNG IV : XÂY DỰNG CÁC MODULE CỦA CHƯƠNG TRÌNH – TRIỂN KHAI VÀ CHẠY THỬ TRÊN MÁY ẢO VÀ MÁY THẬT
Chương IV trình bày quá trình hiện thực hóa thiết kế thành mã nguồn cụ thể. Tác giả mô tả chi tiết kiến trúc chương trình và vai trò từng thành phần; triển khai module quét và tạo danh sách bài hát/video sắp xếp theo tên; xây dựng module phát nhạc và hiển thị hình ảnh video bằng cách kết hợp MediaPlayer, Service nền và SurfaceView. Các module sau đó được ghép nối thành một ứng dụng thống nhất. Cuối cùng, tác giả trình bày quy trình triển khai, đóng gói tệp cài đặt và tiến hành chạy thử nghiệm kiểm thử chức năng trên trình giả lập AVD cũng như trên thiết bị phần cứng thật.
CHƯƠNG V : KẾT LUẬN - HƯỚNG PHÁT TRIỂN CHƯƠNG TRÌNH
Chương tổng kết đánh giá mức độ hoàn thành so với mục tiêu đặt ra ban đầu, xác nhận chương trình đã thực hiện được các chức năng nghe nhạc, xem video, quét tệp và thao tác điều khiển cơ bản trên nền tảng Android. Tác giả cũng chỉ ra các định hướng phát triển tiếp theo nhằm hoàn thiện và mở rộng năng lực ứng dụng trong các phiên bản tương lai.
Kết quả và đóng góp
Khóa luận đạt được các kết quả cụ thể theo đúng nội dung và dữ liệu được ghi nhận trong văn bản:
- Hệ thống hóa toàn diện cơ sở lý thuyết về kiến trúc hệ điều hành Android (từ nhân Linux 2.6, máy ảo Dalvik đến Application Framework) và khảo cứu chi tiết 7 phiên bản Android từ 1.5 (Cupcake) đến 3.0 (Honeycomb).
- Xây dựng thành công tài liệu đặc tả chức năng và hệ thống điều khiển phát đa phương tiện với 10 ca sử dụng, phản ánh đầy đủ chu trình thao tác của người dùng trên thiết bị di động.
- Hiện thực hóa ứng dụng Media Player chạy trên nền Android với khả năng nạp danh sách tệp âm thanh và video từ thẻ nhớ SD card hoặc bộ nhớ máy, hiển thị theo giao diện tab phân loại và sắp xếp theo tên tệp.
- Ứng dụng tích hợp đầy đủ các chức năng điều khiển phát media: phát (Play), tạm dừng (Pause), chuyển bài kế tiếp (Next), quay lại bài trước (Previous), tua tiến (Forward), tua lùi (Backward), lặp lại (Repeat), phát ngẫu nhiên (Shuffle) và theo dõi tiến trình qua SeekBar, ProgressBar.
- Triển khai chạy thử nghiệm ổn định trên môi trường máy ảo AVD ở các chuẩn phân giải màn hình khác nhau (HVGA 320x480, QVGA 240x320, WVGA854 480x854) và trên thiết bị di động Android vật lý.
Giải pháp tác giả đề xuất là mô hình phối hợp giữa Activity (hiển thị danh sách và tiếp nhận tương tác), Service (chạy ngầm để duy trì luồng âm thanh liên tục không bị ngắt quãng khi người dùng chuyển tác vụ), SurfaceView (kênh kết xuất hình ảnh video tối ưu) và MediaPlayer (quản trị máy trạng thái xử lý tín hiệu đa phương tiện).
Đóng góp của khóa luận thể hiện ở việc xây dựng một tài liệu hướng dẫn kỹ thuật bằng tiếng Việt chi tiết về quy trình thiết lập môi trường phát triển ứng dụng di động thời kỳ đầu (Eclipse, Android SDK, ADT, AVD) và cung cấp giải pháp lập trình thực tế cho bài toán khai thác API đa phương tiện trên hệ điều hành Android.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài được xác định trực tiếp dựa trên phạm vi và nội dung văn bản trình bày:
- Ứng dụng hoạt động theo cơ chế ngoại tuyến hoàn toàn (offline), chỉ hỗ trợ đọc dữ liệu từ thẻ nhớ SD card hoặc bộ nhớ cục bộ, chưa tích hợp khả năng truyền phát dữ liệu trực tuyến (streaming) qua kết nối mạng hoặc tương tác với máy chủ từ xa.
- Khả năng tương thích định dạng bị giới hạn ở các định dạng âm thanh và video tiêu chuẩn mà bộ giả lập AVD cũng như thiết bị thời điểm đó hỗ trợ tốt (chủ yếu là MP3, WAV, 3GP, OGG); chưa hỗ trợ giải mã các định dạng có dung lượng và tải tính toán lớn.
- Giao diện người dùng ở mức cơ bản, được xây dựng bằng các thành phần giao diện gốc của Android SDK, chưa có các hiệu ứng trực quan phức tạp hoặc tùy biến theo chủ đề nâng cao.
Hướng nghiên cứu và phát triển tiếp theo được tác giả nêu ra bao gồm:
- Mở rộng ứng dụng với khả năng kết nối mạng máy chủ (server) nhằm hỗ trợ tải dữ liệu từ xa và xem truyền hình hoặc phát nhạc/video trực tuyến qua Internet.
- Bổ sung các tính năng âm thanh nâng cao như bộ cân bằng âm thanh (Equalizer), tạo danh sách phát cá nhân hóa (Playlist) và mở rộng danh mục giải mã thêm nhiều định dạng tệp đa phương tiện khác.
- Hoàn thiện và nâng cấp giao diện đồ họa người dùng nhằm tối ưu hóa tính thẩm mỹ và trải nghiệm tương tác trên các dòng thiết bị có độ phân giải màn hình cao hơn.
Giá trị tham khảo
Báo cáo khóa luận có giá trị tham khảo chuyên ngành cụ thể:
- Đối tượng tham khảo: Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang bắt đầu tiếp cận lập trình ứng dụng di động; các lập trình viên cần tài liệu nghiên cứu về cơ chế vận hành của máy ảo Dalvik, kiến trúc hệ điều hành Android thế hệ đầu và kỹ thuật xử lý đa phương tiện.
- Nội dung giá trị nhất:
- Phần phân tích chi tiết về vòng đời trạng thái của lớp
android.MediaPlayer (từ Idle đến End/Error) kèm theo danh mục các phương thức điều khiển tương ứng là tài liệu tham khảo có tính hệ thống cao cho việc lập trình âm thanh và video.
- Hướng dẫn thực hành từng bước về cấu hình môi trường phát triển cổ điển: cài đặt Android SDK Starter, tích hợp ADT vào Eclipse IDE và thiết lập thông số cho máy ảo AVD với các cấu hình kích thước màn hình và thẻ nhớ ảo khác nhau.
- Bộ tài liệu đặc tả 10 Use Case với các bước phân tích sự kiện chính xác, đóng vai trò mẫu tham khảo cho sinh viên khi làm đồ án môn học Phân tích thiết kế hệ thống hoặc Lập trình thiết bị di động.
Câu hỏi thường gặp
1. Chu trình trạng thái của đối tượng MediaPlayer trong khóa luận gồm những trạng thái nào và chuyển đổi ra sao?
Theo nội dung khóa luận, đối tượng MediaPlayer vận hành qua 10 trạng thái chức năng: khởi đầu ở trạng thái Idle khi tạo mới hoặc sau lệnh reset(); chuyển sang Initialized sau khi gán nguồn dữ liệu bằng setDataSource(); chuyển qua Preparing và đạt Prepared khi hoàn tất chuẩn bị tài nguyên; bước vào trạng thái Started khi gọi hàm start(). Từ đây, ứng dụng có thể chuyển sang Paused qua hàm pause(), Stopped qua hàm stop(), hoặc chuyển đến PlaybackCompleted khi phát xong toàn bộ tệp; trạng thái End được kích hoạt bằng hàm release() để giải phóng tài nguyên; và trạng thái Error xuất hiện khi xảy ra lỗi trong chu trình xử lý.
2. Ứng dụng giải quyết yêu cầu phát nhạc nền liên tục khi người dùng rời màn hình bằng cách nào?
Khóa luận chỉ ra rằng thành phần Activity không thể tự duy trì việc phát nhạc khi người dùng chuyển sang tác vụ khác vì Activity sẽ bị dừng hoặc hủy bởi hệ thống. Để giải quyết, tác giả áp dụng thành phần Service kế thừa từ lớp cơ sở android.app.Service. Service là một tiến trình chạy ngầm không có giao diện đồ họa trực quan, cho phép tiếp tục duy trì hoạt động phát nhạc ngay cả khi Activity khởi tạo nó đã rời khỏi màn hình hiển thị.
3. Những định dạng âm thanh, hình ảnh và video nào được Android hỗ trợ và tác giả khuyến nghị định dạng nào trên máy ảo?
Văn bản thống kê Android hỗ trợ các định dạng âm thanh và hình ảnh gồm 3GPP, MPEG-4, AAC, MP3, Ogg Vorbis, PCM/WAVE, AMR-NB, AMR-WB, WMA, MIDI; định dạng video gồm MPEG-4, H.264, 3GP; định dạng ảnh gồm JPEG, GIF, PNG, BMP. Tuy nhiên, tác giả lưu ý trong thực tế bộ giả lập AVD chỉ làm việc ổn định nhất với OGG, WMA và MP3; trong đó WMA có dung lượng lớn nên tác giả khuyến nghị ưu tiên sử dụng hai định dạng là MP3 (mono cho thoại, stereo cho âm nhạc) và OGG (phù hợp cho video clip ngắn và hiệu ứng âm thanh).
4. Hệ thống Media Player trong đồ án gồm bao nhiêu ca sử dụng (Use Case) và phân rã ra sao?
Hệ thống được thiết kế với chính xác 10 ca sử dụng (Use Case), được đánh số từ 1 đến 10 bao gồm: Use Case 1 (Chương trình - khởi động vào màn hình Activity MediaI508), Use Case 2 (List - hiển thị tab danh sách bài hát/video), Use Case 3 (Play - phát hoặc tạm dừng), Use Case 4 (Next - phát bài kế tiếp), Use Case 5 (Previous - phát bài trước đó), Use Case 6 (Backward - tua lùi), Use Case 7 (Forward - tua tiến), Use Case 8 (Shuffle - xáo trộn thứ tự), Use Case 9 (Repeat - lặp lại bài hát), và Use Case 10 (Exit - thoát ứng dụng).
5. Khóa luận sử dụng các công cụ và phiên bản phần mềm cụ thể nào để thiết lập môi trường phát triển?
Môi trường phát triển được tác giả trình bày gồm phần mềm Eclipse (phiên bản dành cho lập trình viên Java: Eclipse for Java Developers hoặc Eclipse for Java and Report Developers), công cụ Android SDK Starter tải từ trang nhà phát triển của Google, gói cài đặt plugin ADT (Android Development Tools) tích hợp qua liên kết dl-ssl.google.com/android/eclipse/, và bộ quản lý máy ảo Android Virtual Device (AVD) thiết lập cấu hình phân giải HVGA (320x480), QVGA (240x320) và WVGA854 (480x854).
Kết luận
Khóa luận tốt nghiệp của tác giả Nông Thế Hiệp là công trình nghiên cứu ứng dụng kỹ thuật phần mềm tập trung vào nền tảng di động Android và bộ thư viện đa phương tiện android.media. Tác giả đã hoàn thành việc phân tích, thiết kế và cài đặt thực nghiệm ứng dụng Media Player hỗ trợ phát nhạc và xem video cục bộ với đầy đủ các tính năng điều khiển cơ bản. Kết quả của đề tài phản ánh trung thực năng lực tiếp cận công nghệ lập trình di động giai đoạn năm 2011, đóng vai trò tài liệu kỹ thuật có giá trị tham khảo rõ ràng về mặt cấu trúc hệ thống, quy trình thiết lập môi trường phát triển và phương pháp quản lý chu trình phát đa phương tiện trên hệ điều hành Android.