Tổng quan về giáo trình

Giáo trình Lập trình Android cơ bản (Quyển 1) do Thạc sĩ Nguyễn Văn Hiệp và Kỹ sư Đinh Quang Hiệp (Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh) biên soạn, được Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh ấn hành năm 2015. Trong chương trình đào tạo đại học, giáo trình này giữ vị trí học phần cơ sở kỹ thuật ngành hoặc học phần chuyên đề tự chọn, định hướng ứng dụng công nghệ phần mềm di động vào lĩnh vực phần cứng, viễn thông và điều khiển tự động.

Mục tiêu học tập của giáo trình tập trung vào việc hình thành các chuẩn đầu ra (learning outcomes) bao gồm:

  • Hiểu rõ lịch sử tiến hóa của thiết bị di động và mô hình phân tầng trong kiến trúc hệ điều hành Android.
  • Thiết lập hoàn chỉnh môi trường phát triển ứng dụng di động dựa trên bộ công cụ Java Development Kit (JDK), Eclipse IDE, Android Development Tools (ADT Plugin) và Android SDK.
  • Làm chủ kỹ năng xây dựng giao diện người dùng (UI Layouts, UI Controls), xử lý chu trình sống của thành phần ứng dụng (Activity), điều hướng và truyền dữ liệu thông qua Intent.
  • Triển khai các phương thức bắt sự kiện (Event Listener), lưu trữ dữ liệu bền vững (SQLite, tập tin, Resources), cũng như thao tác với dịch vụ vị trí bản đồ và truyền thông cơ bản (SMS, Email).

Về cấu trúc và cách tiếp cận, tài liệu được tổ chức theo phương pháp đi từ tổng quan lý thuyết hệ thống đến hướng dẫn thực hành từng bước (step-by-step). Điểm đặc sắc của giáo trình là được thiết kế chuyên biệt cho sinh viên khối ngành kỹ thuật như Điện – Điện tử, Điện tử Viễn thông và Điều khiển – Tự động hóa. Thay vì đi sâu vào các cấu trúc giải thuật phần mềm phức tạp, nội dung giáo trình tinh giản các lý thuyết trừu tượng, tích hợp nhiều ví dụ thực hành cụ thể nhằm xây dựng năng lực lập trình ứng dụng trên thiết bị cầm tay, làm nền tảng kết nối với các hệ thống giám sát và điều khiển phần cứng được trình bày ở Quyển 2.


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

Nội dung Quyển 1 gồm 13 chương với mạch phát triển kiến thức tuần tự từ hạ tầng hệ điều hành, công cụ phát triển đến các kỹ thuật lập trình chuyên biệt:

  • Chương 1: Lịch sử phát triển của thiết bị di động và hệ điều hành di động: Khái quát tiến trình từ điện thoại cơ bản (Alexander Graham Bell năm 1876, Carry Phone năm 1967, Motorola DynaTAC năm 1973) đến các thế hệ điện thoại thông minh; so sánh các hệ điều hành di động như Symbian (từ EPOC32 trên Ericsson R380), BlackBerry OS của RIM (BB 5810, BB 8700, Z10), Windows Phone 7 với giao diện Metro, và Apple iOS.
  • Chương 2: Tổng quan về hệ điều hành Android: Phân tích nguồn gốc từ Android Inc. (Andy Rubin thành lập năm 2003, Google mua lại năm 2005) và Liên minh OHA (2007); khảo sát tiến trình phát triển các phiên bản (từ 1.1, Cupcake 1.5, Donut 1.6, Eclair 2.0/2.1, Froyo 2.2, Gingerbread 2.3, Honeycomb 3.0 cho máy tính bảng, Ice Cream Sandwich 4.0, Jelly Bean 4.1–4.3, KitKat 4.4 đến Lollipop 5.0). Chương này phân tích chi tiết cấu trúc Stack 4 tầng của Android và sự khác biệt giữa hai bộ máy ảo Dalvik (Just-In-Time) và ART (Ahead-Of-Time).
  • Chương 3: Phần mềm phát triển ứng dụng Android: Hướng dẫn chi tiết quy trình tải, cài đặt và liên kết các công cụ: JDK 7 Update 21, Eclipse IDE, bộ công cụ ADT Plugin, cấu hình Android SDK Manager và tạo thiết bị giả lập AVD (Android Virtual Device).
  • Chương 4: Các thành phần cơ bản trong một Android Project: Trình bày cấu trúc thư mục của một dự án Android (thư mục mã nguồn src, gen, thư mục tài nguyên res, tập tin cấu hình AndroidManifest.xml); nguyên lý sử dụng ngôn ngữ Java trên nền Eclipse để lập trình ứng dụng.
  • Chương 5 và Chương 6: Thiết kế giao diện (UI Layouts) và điều khiển cơ bản (UI Controls): Hướng dẫn bố cục giao diện hiển thị (LinearLayout, RelativeLayout,...) và cách thiết lập các thành phần điều khiển trực quan (TextView, EditText, Button, CheckBox, RadioButton,...).
  • Chương 7 và Chương 8: ListView, hiển thị hình ảnh và Menu: Kỹ thuật hiển thị dữ liệu danh sách thông qua ListView, Adapter; xử lý đồ họa với ImageView, Gallery và xây dựng hệ thống thanh điều hướng Menu.
  • Chương 9: Xử lý sự kiện: Trình bày 3 cơ chế xử lý tương tác người dùng: (1) Sử dụng lớp lồng ẩn danh (Anonymous Inner Class), (2) Cho phép Activity thực thi trực tiếp giao diện Listener, và (3) Gán tên phương thức xử lý trực tiếp trong tập tin cấu hình giao diện Activity_main.xml.
  • Chương 10 đến Chương 13: Các dịch vụ hệ thống và truyền thông: Liên kết các màn hình ứng dụng bằng Intent (Chương 10); tích hợp Google Maps API và dịch vụ xác định vị trí qua Location Manager (Chương 11); cơ chế lưu trữ dữ liệu thông qua Resources, đọc/ghi tập tin và hệ quản trị cơ sở dữ liệu quan hệ nhúng SQLite (Chương 12); lập trình gửi nhận tin nhắn SMS và thư điện tử Email (Chương 13).
[Chương 1 & 2: Lịch sử, Kiến trúc hệ điều hành, Dalvik & ART]
                           ↓
[Chương 3 & 4: Môi trường Eclipse, ADT, Cấu trúc Android Project]
                           ↓
[Chương 5, 6, 7, 8: Thiết kế UI Layouts, UI Controls, ListView, Menu]
                           ↓
[Chương 9 & 10: Xử lý sự kiện (Event Listener), Activity & Intent]
                           ↓
[Chương 11, 12, 13: Dịch vụ vị trí, Lưu trữ SQLite/Tập tin, SMS & Email]

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống kiến trúc kỹ thuật dựa trên các nguyên lý cốt lõi:

  1. Kiến trúc phân tầng hệ thống (Stack Architecture):
    • Tầng Linux Kernel (v2.6): Đảm nhiệm quản lý phần cứng cấp thấp thông qua các trình điều khiển (Display Driver, Camera Driver, Keypad Driver, WiFi Driver, Audio Driver, Power Management, cơ chế liên tiến trình Binder IPC Driver).
    • Tầng Thư viện (Libraries) & Android Runtime: Tập hợp các thư viện hệ thống viết bằng C/C++ (SQLite, Webkit, OpenGL/ES, Surface Manager, Media Framework) cùng máy ảo thực thi.
    • Tầng Application Framework: Cung cấp các khối quản lý dịch vụ cấp cao gồm Activity Manager, Window Manager, Content Providers, View System, Package Manager, Telephony Manager, Resource Manager, Location Manager và Notification Manager.
    • Tầng Ứng dụng (Applications): Các chương trình người dùng được đóng gói dưới định dạng .apk.
  2. Cơ chế biên dịch và thực thi: Phân biệt rõ chu trình dịch mã: Mã nguồn Java -> Biên dịch thành Bytecode dạng file .class -> Sử dụng công cụ dx chuyển đổi sang định dạng tối ưu .dex (Dalvik Executable) chạy trên máy ảo Dalvik thông qua cơ chế JIT hoặc dịch sẵn toàn bộ sang mã máy thông qua AOT trên trình thông dịch ART.
  3. Mô hình lập trình hướng sự kiện và phân tách dữ liệu - giao diện: Tách biệt mã thiết kế hiển thị (định dạng XML) và mã điều khiển logic (ngôn ngữ Java), liên kết logic thông qua mã định danh tài nguyên R.java.

Kỹ năng phát triển

Thông qua các bài học, người học rèn luyện các năng lực chuyên môn:

  • Kỹ năng kỹ thuật (Technical skills): Cài đặt và cấu hình đồng bộ biến môi trường cho bộ SDK, sử dụng các công cụ chuyên dụng như aapt (đóng gói tài nguyên), sqlite3 (quản trị dữ liệu), dx (chuyển đổi bytecode), mksdcard (giả lập thẻ nhớ ngoài).
  • Kỹ năng phân tích (Analytical skills): Khả năng phân tích chu trình sống của Activity, tối ưu hóa hiệu năng dựa trên việc lựa chọn cơ chế hứng sự kiện phù hợp, đánh giá hạn chế phần cứng di động (bộ nhớ hạn chế, dung lượng pin, băng thông mạng).
  • Kỹ năng thực hành ứng dụng (Practical competencies): Xây dựng hoàn chỉnh ứng dụng có cơ sở dữ liệu nội bộ SQLite, quản lý thông báo, truy xuất tọa độ GPS và thiết lập tính năng truyền thông giám sát qua SMS/Email.

Phương pháp giảng dạy và học tập

Phương pháp sư phạm (Pedagogical approach)

Giáo trình áp dụng phương pháp tiếp cận thực nghiệm có hướng dẫn (guided practical approach). Nhóm tác giả định hướng tài liệu phục vụ đối tượng sinh viên kỹ thuật không theo học chuyên ngành công nghệ phần mềm chuyên sâu, do đó mọi cấu trúc lý thuyết đều được minh họa bằng các đoạn mã nguồn ngắn gọn, kèm hình ảnh chụp giao diện cấu hình trực quan từ phần mềm Eclipse. Tiến trình giảng dạy được chia thành 3 giai đoạn:

  1. Tiếp cận công cụ và tham số: Người học làm quen với các khái niệm cấu hình phần cứng, phiên bản API (API Level), cách tùy chỉnh AVD Manager.
  2. Thực thi mã nguồn mẫu: Từng thuộc tính XML và phương thức Java đều đi kèm giải thích chức năng, cách truyền tham số và kết quả hiển thị.
  3. Đúc kết kinh nghiệm kỹ thuật: Khuyến khích người học tự kiểm tra lỗi (debugging) thông qua cửa sổ LogCat và bộ giả lập Android Emulator.

Bài tập và thực hành

Các nội dung thực hành trong giáo trình được xây dựng theo mức độ tăng dần:

  • Thực hành cấu hình hệ thống: Tải và liên kết gói ADT Bundle, cấu hình biến đường dẫn SDK Location, tải các gói API từ máy chủ lưu trữ của Google thông qua SDK Manager.
  • Thực hành thiết kế và tương tác: Lập trình tạo giao diện người dùng bằng các tệp layout XML kết hợp thuộc tính giao diện; thử nghiệm 3 cách thức đăng ký Event Listener cho nút bấm (Button) để so sánh tính tiện dụng và độ tối ưu mã nguồn.
  • Bài tập ứng dụng nghiệp vụ: Thiết lập kết nối giữa các Activity bằng cách gửi và nhận dữ liệu qua Intent; thực hiện các thao tác thêm, xóa, sửa và truy vấn dữ liệu cục bộ bằng SQLiteOpenHelper.

Phương pháp đánh giá và tự học

Giáo trình hỗ trợ giảng viên xây dựng các tiêu chí đánh giá kết quả học tập thông qua:

  • Khả năng tự thiết lập môi trường và cấu hình máy ảo kiểm thử.
  • Tính chính xác trong việc xử lý các ngoại lệ khi ứng dụng chạy nền hoặc xoay màn hình (liên quan đến vòng đời Activity).
  • Sản phẩm ứng dụng hoàn thiện có khả năng đọc/ghi dữ liệu và giao tiếp dịch vụ ngoài (bản đồ, tin nhắn).

Đối với người tự học, tài liệu cung cấp chỉ dẫn rõ ràng về thứ tự đọc: người học cần hoàn thành việc cấu hình môi trường ở Chương 3 và nắm vững cấu trúc thư mục ở Chương 4 trước khi chuyển sang các chương lập trình giao diện và chức năng phía sau.


Điểm nổi bật và cập nhật

Bối cảnh công nghệ tại thời điểm biên soạn

Giáo trình được biên soạn vào cuối năm 2014 và xuất bản năm 2015, phản ánh chính xác bức tranh chuyển giao công nghệ quan trọng của hệ sinh thái di động lúc bấy giờ:

  • Phần cứng di động: Phân tích xu hướng phát triển cấu hình thiết bị với vi xử lý 64-bit, bộ nhớ RAM nâng lên mức 3GB – 4GB, màn hình hiển thị đạt chuẩn phân giải 2K và Full HD.
  • Hệ điều hành Android 4.4 KitKat: Tối ưu hóa việc tiêu thụ bộ nhớ, cho phép hệ điều hành hoạt động ổn định trên các dòng máy có dung lượng RAM chỉ 512MB; tích hợp thanh trạng thái trong suốt và cơ chế chụp ảnh HDR+.
  • Hệ điều hành Android 5.0 Lollipop và phong cách Material Design: Giới thiệu ngôn ngữ thiết kế giao diện phẳng, hệ thống biểu tượng bo tròn và bảng màu tương phản cao được công bố tại sự kiện Google I/O 2014.

Phân tích kỹ thuật Dalvik Virtual Machine và Android Runtime (ART)

Một trong những điểm nhấn học thuật của giáo trình là việc phân tích chuyên sâu nguyên lý hoạt động của hai trình thực thi ứng dụng:

  • Dalvik VM: Hoạt động dựa trên trình biên dịch Just-In-Time (JIT), chỉ thực hiện chuyển đổi Bytecode (.dex) sang mã máy (native code) tại thời điểm ứng dụng được khởi chạy và thực thi. Hạn chế của cơ chế này là làm chậm tốc độ phản hồi và tiêu tốn nhiều tài nguyên xử lý của CPU.
  • Android Runtime (ART): Hoạt động dựa trên bộ máy Ahead-Of-Time (AOT), biên dịch toàn bộ Bytecode sang mã máy ngay trong quá trình cài đặt ứng dụng vào thiết bị. Giáo trình chỉ rõ ưu điểm của ART giúp ứng dụng khởi chạy nhanh hơn, giảm tải cho bộ xử lý đa nhân, cải thiện thời lượng pin; đồng thời phân tích khách quan nhược điểm của ART là thời gian cài đặt ứng dụng ban đầu kéo dài hơn và dung lượng bộ nhớ lưu trữ file thực thi tăng thêm từ 10% đến 20%.

Cập nhật chuẩn kết nối Bluetooth 4.0

Giáo trình ghi nhận cải tiến trên Android 4.3 trong việc hỗ trợ chuẩn kết nối Bluetooth Low Energy (BLE / Bluetooth Smart) và Bluetooth Smart Ready. Tài liệu phân loại rõ:

  • Bluetooth Smart: Các thiết bị ngoại vi tiết kiệm năng lượng như đồng hồ đo nhịp tim, cảm biến thể thao.
  • Bluetooth Smart Ready: Thiết bị điều khiển trung tâm (như Nexus 4, Nexus 7 bản 2013, Samsung Galaxy S III) có khả năng kết nối và xử lý dữ liệu từ các thiết bị Bluetooth Smart.
  • Profile AVRCP 1.3: Cho phép truyền siêu dữ liệu (tên bài hát, thông tin điều khiển) tới các thiết bị âm thanh từ xa.

Nội dung này tạo nền tảng trực tiếp để sinh viên ngành Điện – Tự động hóa tiếp cận kỹ thuật thu thập dữ liệu từ cảm biến công nghiệp và thiết bị điều khiển từ xa.


Đối tượng sử dụng giáo trình

Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể trong đào tạo đại học và cao đẳng:

  1. Sinh viên chuyên ngành kỹ thuật:
    • Sinh viên năm thứ 3 và năm thứ 4 thuộc các ngành: Kỹ thuật Điện – Điện tử, Công nghệ Kỹ thuật Điện tử Viễn thông, Kỹ thuật Điều khiển và Tự động hóa.
    • Sinh viên khối ngành Cơ điện tử và Kỹ thuật máy tính có nhu cầu học lập trình ứng dụng di động để xây dựng giao diện vận hành máy móc.
  2. Kiến thức tiên quyết (Prerequisites):
    • Người học cần có kiến thức cơ sở về cú pháp ngôn ngữ lập trình Java hoặc lập trình hướng đối tượng (OOP) nền tảng (lớp, đối tượng, phương thức, kế thừa).
    • Kỹ năng sử dụng máy tính cơ bản, thao tác cài đặt phần mềm trên hệ điều hành Windows và hiểu biết cơ bản về cấu trúc mạng viễn thông.
  3. Giảng viên các trường kỹ thuật:
    • Sử dụng làm tài liệu giảng dạy chính hoặc bài giảng tham khảo cho các môn học như Lập trình di động căn bản, Ứng dụng di động trong điều khiển, hoặc Hệ thống nhúng và giao tiếp di động.
    • Giáo trình cung cấp sẵn cấu trúc bài tập từng phần, hỗ trợ việc thiết kế ngân hàng câu hỏi thực hành và đồ án môn học.
  4. Kỹ sư và người tự học:
    • Kỹ sư phần cứng, kỹ sư tự động hóa cần tài liệu tham khảo nhanh để tạo ứng dụng Android kết nối với các module vi điều khiển, mạch cảm biến hoặc hệ thống giám sát công nghiệp.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Tài liệu được biên soạn dành riêng cho sinh viên và kỹ sư khối ngành kỹ thuật như Điện, Điện tử, Viễn thông và Tự động hóa. Nội dung không tập trung vào phát triển phần mềm thương mại thuần túy mà chú trọng trang bị kỹ năng lập trình cơ bản để xây dựng hệ thống giám sát và giao tiếp với phần cứng.

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?

Người học cần nắm được khái niệm lập trình hướng đối tượng cơ bản (OOP) và cú pháp ngôn ngữ Java căn bản. Bên cạnh đó, việc hiểu các khái niệm về phần cứng máy tính và kết nối ngoại vi sẽ giúp tiếp thu nhanh các nội dung về Linux Kernel và kết nối Bluetooth.

3. Điểm khác biệt của giáo trình này so với các tài liệu Android cho ngành Công nghệ thông tin là gì?

Các giáo trình dành cho ngành Công nghệ thông tin thường đi sâu vào kiến trúc phần mềm chuyên biệt, mẫu thiết kế phức tạp (MVP/MVVM), kiểm thử tự động và xử lý dữ liệu quy mô lớn. Ngược lại, giáo trình này tiếp cận theo hướng công cụ kỹ thuật: lý thuyết được rút gọn thành các bước thực hành trực quan, tập trung vào việc đọc/ghi tài nguyên, kết nối phần cứng, định vị, và truyền dữ liệu qua SMS để phục vụ mục tiêu điều khiển thiết bị ngoại vi.

4. Làm sao để tự học hiệu quả với tài liệu này?

Người học cần thực hành trực tiếp trên máy tính theo từng bước được mô tả trong sách: bắt đầu từ việc cài đặt môi trường (JDK 7, Eclipse, ADT), khởi tạo thiết bị giả lập AVD, viết lại các ví dụ mã nguồn mẫu trong từng chương và theo dõi kết quả hiển thị trên màn hình giả lập.

5. Bộ tài liệu này có những phần tiếp theo hoặc tài liệu bổ trợ nào?

Bộ sách gồm có 2 quyển do cùng nhóm tác giả biên soạn. Quyển 1 trình bày nền tảng lập trình Android cơ bản. Quyển 2 phát triển chuyên sâu các ứng dụng điều khiển thực tế, kết nối hệ thống nhúng và giám sát thông minh qua thiết bị cầm tay. Người học có thể tham khảo thêm tài liệu kỹ thuật trực tuyến tại trang web chính thức của các nhà phát triển Android (developer.android.com).


Kết luận

Giáo trình Lập trình Android cơ bản (Quyển 1) của ThS. Nguyễn Văn Hiệp và KS. Đinh Quang Hiệp cung cấp một hệ thống lý thuyết kiến trúc và phương pháp thực hành lập trình di động có cấu trúc chặt chẽ, mạch lạc. Giáo trình phản ánh trung thực tiến trình phát triển của hệ điều hành Android và phân tích sâu sắc các bước chuyển giao công nghệ quan trọng như bộ máy thực thi Dalvik/ART cùng chuẩn kết nối không dây năng lượng thấp.

Lộ trình học tập khoa học được đề xuất gồm ba bước: thiết lập môi trường và nắm vững kiến trúc 4 tầng -> triển khai thiết kế giao diện và xử lý sự kiện -> làm chủ các dịch vụ lưu trữ dữ liệu SQLite, bản đồ và truyền thông SMS. Đây là khối kiến thức nền tảng bắt buộc, tạo tiền đề để sinh viên và kỹ sư tiếp tục nghiên cứu Quyển 2 nhằm xây dựng các hệ thống điều khiển tự động hóa và giám sát thông minh trên thiết bị di động.