Tổng quan về giáo trình (250-300 từ)

Giáo trình Lập trình Android (Ấn bản tái bản) do PGS. TS. Lê Hoàng Sơn (Chủ biên) và ThS. Nguyễn Thọ Thông biên soạn, được xuất bản bởi Nhà xuất bản Xây dựng. Giáo trình được thiết kế làm tài liệu giảng dạy và học tập chính thức cho học phần Lập trình thiết bị di động trong chương trình đào tạo bậc đại học ngành Công nghệ thông tin tại các trường đại học kỹ thuật.

Mục tiêu học tập cốt lõi của giáo trình bao gồm:

  • Trang bị hệ thống lý thuyết về hệ điều hành Android dựa trên nền tảng nhân Linux và Oracle Java.
  • Giúp người học làm chủ các thành phần kiến trúc cơ bản của ứng dụng di động: Activity, Service, Broadcast receiver và Content provider.
  • Cung cấp kỹ năng thiết kế giao diện đồ họa (UI/Layout) thông qua ngôn ngữ đặc tả XML và quản lý tài nguyên tập trung.
  • Hiện thực hóa kỹ thuật lập trình tương tác, lưu trữ dữ liệu từ mức cục bộ (SQLite) đến mô hình phân tán (Client-Server với MySQL) và tích hợp các giao diện lập trình ứng dụng ngoại vi (Facebook, Google Maps API).

Cấu trúc giáo trình gồm 6 chương với cách tiếp cận đi từ môi trường phát triển, cú pháp thành phần giao diện đến logic nghiệp vụ và kiến trúc hệ thống hoàn chỉnh. Điểm đặc thù của giáo trình là phương pháp tiếp cận thực nghiệm mã nguồn: mỗi chương đều tích hợp đầy đủ mã nguồn kiểm thử (mã Java, cấu hình XML, tệp mô tả hệ thống AndroidManifest.xml) gắn liền với một đồ án xuyên suốt là hệ thống quản lý sinh viên. Mọi trao đổi học thuật và phản hồi kỹ thuật về giáo trình được tiếp nhận qua địa chỉ tác giả: sonlh@vnu.vn.


Nội dung kiến thức cốt lõi (500-600 từ)

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

Nội dung giáo trình được phân bổ thành 6 chương tuần tự theo tiến trình phát triển phần mềm di động:

  • Chương 1: Tổng quan về lập trình Android: Hướng dẫn thiết lập môi trường phát triển gồm Java SE/JRE (bản jdk-6u24-windows-i586), Eclipse IDE (phiên bản Galileo 3.5 hoặc Helios 3.6), bộ Android SDK (android-sdk_r10-windows) và công cụ Android Development Tools (ADT); quy trình khởi tạo thiết bị giả lập AVD (Android Virtual Device); cấu trúc cây thư mục dự án (/src chứa mã nguồn Java, /res chứa tài nguyên layout, drawable, values, menu, anim, raw); định dạng tệp phân phối .apk và tệp thực thi .dex; tệp chỉ dẫn hệ thống AndroidManifest.xml; mô hình Activity Stack và vòng đời tiến trình/vòng đời Activity; bốn thành phần kiến trúc cơ bản; bài tập nhập môn HelloWorldAndroid.
  • Chương 2: Thiết kế Layouts và UI: Phân cấp lớp View và ViewGroup trong gói android.widget; phương thức bố trí màn hình thông qua XML (LinearLayout theo chiều ngang/dọc, RelativeLayout định vị theo mã định danh ID của widget, TableLayout kết hợp TableRow, FrameLayout xếp lớp); thiết lập tài nguyên chuỗi ký tự qua strings.xml; xây dựng thành phần giao diện nâng cao ImageButton sử dụng tệp đặc tả trạng thái selector (state_pressed, state_focused, normal).
  • Chương 3: Tương tác sự kiện, Content Provider và Intent Filter: Cơ chế bắt và xử lý sự kiện cảm ứng (nhấn, nhấn và giữ); kỹ thuật truy xuất và chia sẻ dữ liệu thông qua lớp cơ sở ContentProvider; phương thức điều hướng màn hình và truyền dữ liệu thông qua đối tượng Intent (sử dụng Context.startActivity(), Context.startService(), Context.sendBroadcast()) và cơ chế lọc bộ lọc thẻ <intent-filter>.
  • Chương 4: Quản lý sinh viên với SQLite: Kỹ thuật lưu trữ và xử lý dữ liệu có cấu trúc tại thiết bị cục bộ; triển khai các thao tác truy vấn dữ liệu quan hệ (tạo bảng, thêm, sửa, xóa, lọc bản ghi) thông qua hệ quản trị cơ sở dữ liệu SQLite nhúng trong Android.
  • Chương 5: Quản lý ứng dụng theo mô hình Client-Server với MySQL: Mở rộng phạm vi dữ liệu của đồ án quản lý sinh viên sang kiến trúc phân tán đa tầng; cấu hình luồng trao đổi dữ liệu giữa thiết bị di động (Client) và máy chủ cơ sở dữ liệu (MySQL Server) thông qua giao thức mạng.
  • Chương 6: Tích hợp chức năng chia sẻ và kết nối qua Facebook và Google Maps: Tích hợp các giao diện lập trình ứng dụng (API) ngoại vi vào hệ thống quản lý sinh viên; kết nối mạng xã hội Facebook để chia sẻ thông tin học tập và nhúng bản đồ số Google Maps để trực quan hóa dữ liệu vị trí sinh viên.

Progression logic: Cung cấp môi trường và cú pháp căn bản (Chương 1-2) $\rightarrow$ Thiết lập cơ chế điều khiển và liên lạc giữa các tiến trình (Chương 3) $\rightarrow$ Lưu trữ dữ liệu đơn máy (Chương 4) $\rightarrow$ Mở rộng kiến trúc mạng Client-Server (Chương 5) $\rightarrow$ Kết nối dịch vụ hệ sinh thái bên thứ ba (Chương 6).

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

  • Fundamental theories: Kiến trúc phân tầng của hệ điều hành Android (nhân Linux, lớp máy ảo thực thi mã nhị phân .dex, khung ứng dụng Application Framework); cơ chế phân bổ tài nguyên và giải phóng tiến trình hệ thống theo 5 cấp độ ưu tiên: Foreground process, Visible process, Service process, Background process, Empty process.
  • Core principles: Nguyên lý lập trình hướng đối tượng (OOP) trong môi trường Java: cấu trúc lớp và đối tượng (mô hình hóa lớp Car với các thuộc tính tốc độ speed, hộp số gear, hệ dẫn động drivetrain, hướng di chuyển direction và các hành vi shiftGears(), accelerateSpeed(), applyBrake(), turnWheel()); nguyên lý kế thừa đơn thông qua từ khóa extends (lớp con Suv, Sport kế thừa lớp cha Car); tính đa hình và thiết kế theo mẫu thông qua giao diện interface ICar với từ khóa implements; nguyên lý quản trị vòng đời ứng dụng qua hệ thống hàm callback (onCreate(), onRestart(), onStart(), onResume(), onPause(), onStop(), onDestroy()).
  • Essential frameworks: Khung làm việc Android SDK, các lớp quản lý giao diện đồ họa thuộc gói android.widget, hệ thống tệp tài nguyên XML định chuẩn (strings.xml, colors.xml, dimens.xml, styles.xml, arrays.xml).

Kỹ năng phát triển

  • Technical skills: Cài đặt và tích hợp môi trường IDE (Eclipse, ADT, SDK, AVD); lập trình ứng dụng bằng Java; đặc tả giao diện người dùng bằng XML; thiết kế và truy vấn cơ sở dữ liệu với SQLite và MySQL; biên dịch và kiểm tra gói thực thi .apk.
  • Analytical skills: Phân tích biểu đồ trạng thái vòng đời của Activity Stack để quản lý vùng nhớ và ngăn chặn rò rỉ tài nguyên; phân tích các ràng buộc vị trí trong XML để tối ưu hóa hiển thị trên nhiều kích cỡ màn hình khác nhau.
  • Practical competencies: Xây dựng hoàn chỉnh phần mềm di động theo kiến trúc nhiều tầng; xử lý kết nối mạng; gỡ lỗi thông qua công cụ Dalvik Debug Monitor Server (DDMS) và màn hình Console.

Phương pháp giảng dạy và học tập (300-350 từ)

  • Pedagogical approach: Giáo trình áp dụng phương pháp đào tạo định hướng thực hành mã nguồn (Code-driven approach). Mỗi khối kiến thức lý thuyết đều gắn trực tiếp với sơ đồ kiến trúc, bảng phân loại thuộc tính và khối mã nguồn hoàn chỉnh có thể gõ trực tiếp vào IDE để kiểm chứng.
  • Bài tập và case studies:
    • Bài toán thiết lập và kiểm thử: Khởi tạo dự án HelloWorldAndroid (khai báo gói com.helloworldandroid), cấu hình thẻ <uses-sdk android:minSdkVersion="10" />, thiết kế RelativeLayout với TextView liên kết chuỗi @string/hello_world có giá trị "Hello Android World, Here I Come!".
    • Bài toán mô hình hóa hướng đối tượng: Xây dựng lớp Car và hiện thực hóa kế thừa cho lớp Suv, kết hợp triển khai giao diện mẫu ICar trong phương thức onCreate() của MainActivity.java.
    • Bài toán thiết kế giao diện tương tác: Tạo màn hình đăng nhập bằng RelativeLayout phối hợp EditText (@+id/edtUser) và các nút bấm Button (@+id/btnLogin, @+id/btnCancel) sử dụng thuộc tính ràng buộc android:layout_below, android:layout_alignLeft; tạo nút bấm đa trạng thái bằng thẻ <selector> trong button1.xml kết hợp các tệp ảnh button1_pressed.png, button1_focused.png, button1_normal.png.
    • Đồ án xuyên suốt: Xây dựng ứng dụng quản lý sinh viên từ giai đoạn thiết kế bảng cơ sở dữ liệu cục bộ bằng SQLite, nâng cấp lên kết nối máy chủ MySQL và tích hợp Facebook SDK cùng Google Maps API.
  • Assessment methods: Đánh giá dựa trên mức độ hoàn thiện mã nguồn bài tập từng chương (tính chính xác của tệp cấu hình XML, logic xử lý sự kiện trong Activity) và kết quả vận hành của đồ án quản lý sinh viên chạy trên máy ảo AVD hoặc thiết bị thật.
  • Self-study guidelines: Người học thực hiện cài đặt chính xác cấu hình phần mềm theo thông số tại Chương 1; biên dịch từng đoạn mã ví dụ; kiểm tra kết quả hiển thị thông qua cửa sổ Console và LogCat của Eclipse; chủ động thay đổi các thuộc tính giao diện trong thư mục /res để quan sát tác động trên hệ thống.

Điểm nổi bật và cập nhật (250-300 từ)

  • Updates so với ấn bản cũ: Ấn bản tái bản hệ thống hóa chi tiết quy trình cấu hình công cụ lập trình đồng bộ: Oracle JDK 6 (jdk-6u24), Eclipse IDE 3.5/3.6, Android SDK Tools bản r10 và ADT Plugin; hoàn thiện hệ thống sơ đồ minh họa giao diện kéo thả trực quan kết hợp giao diện dòng lệnh XML.
  • Current trends được integrate: Giáo trình bám sát kiến trúc hệ điều hành Android thế hệ 4.x; tích hợp xu hướng xử lý dữ liệu phân tán thông qua kiến trúc Client-Server kết hợp MySQL; đưa vào nội dung tích hợp mạng xã hội (Facebook) và dịch vụ vị trí địa lý (Google Maps), chuyển dịch phạm vi ứng dụng từ xử lý đơn lập sang kết nối mạng diện rộng.
  • Real-world applications: Toàn bộ nội dung từ Chương 4 đến Chương 6 đều tập trung vào bài toán phần mềm quản lý sinh viên – mô hình ứng dụng nghiệp vụ điển hình cho các cơ quan, tổ chức giáo dục.
  • Industry connections: Hướng dẫn quy trình đóng gói phần mềm thành tệp phân phối tiêu chuẩn .apk (chứa mã thực thi tối ưu classes.dex, thư mục tài nguyên /res và tệp chỉ mục AndroidManifest.xml), bảo đảm chuẩn đầu ra kỹ thuật của các dự án phần mềm di động thương mại.

Đối tượng sử dụng giáo trình (200-250 từ)

  • Sinh viên bậc đại học: Giáo trình phục vụ trực tiếp cho sinh viên năm thứ 3 và năm thứ 4 theo học các ngành Công nghệ thông tin, Kỹ thuật phần mềm, Khoa học máy tính, Mạng máy tính và Truyền thông dữ liệu tại các trường đại học khối kỹ thuật.
  • Prerequisites cần có: Người học cần có kiến thức nền tảng vững chắc về:
    • Ngôn ngữ lập trình Java và nguyên lý lập trình hướng đối tượng (OOP: lớp, đối tượng, tính kế thừa, giao diện đa hình).
    • Khái niệm cơ bản về hệ điều hành máy tính và cấu trúc tệp.
    • Ngôn ngữ truy vấn cơ sở dữ liệu SQL (phục vụ nội dung SQLite và MySQL).
  • Giảng viên và phương thức sử dụng: Giảng viên sử dụng cấu trúc 6 chương làm khung chương trình cho học phần Lập trình Android (30 đến 45 tiết lý thuyết kết hợp thực hành phòng máy); sử dụng mã nguồn và đồ án quản lý sinh viên làm tài liệu hướng dẫn bài tập lớn hoặc đề tài kiểm tra giữa kỳ, cuối kỳ.
  • Tự học và tham khảo: Tài liệu phù hợp cho các kỹ sư phần mềm muốn chuyển đổi nền tảng sang lập trình di động; dùng làm tài liệu tham khảo để tra cứu cú pháp thuộc tính layout XML và cơ chế quản lý tiến trình Android.

Câu hỏi thường gặp (250-300 từ)

1. Giáo trình này phù hợp với đối tượng người đọc nào?
Tài liệu được biên soạn phục vụ sinh viên đại học ngành Công nghệ thông tin và các lập trình viên kỹ thuật cần tìm hiểu kiến trúc nền tảng và phương pháp xây dựng phần mềm trên hệ điều hành Android.

2. Cần trang bị những kiến thức nền tảng nào trước khi học giáo trình?
Người học bắt buộc phải nắm vững kỹ thuật lập trình hướng đối tượng trong ngôn ngữ Java (định nghĩa lớp, phương thức, kế thừa, interface) và kiến thức truy vấn dữ liệu SQL căn bản.

3. Điểm khác biệt của giáo trình này so với các tài liệu lập trình khác là gì?
Giáo trình phân tích chi tiết mã nguồn hoàn chỉnh thay vì chỉ đưa ra các đoạn mã ngắt quãng; đồng thời xây dựng một bài toán ứng dụng thực tế xuyên suốt (quản lý sinh viên) phát triển qua 3 cấp độ: lưu trữ cục bộ SQLite, mở rộng Client-Server với MySQL và tích hợp dịch vụ mạng xã hội, bản đồ số.

4. Làm thế nào để tự học và thực hành hiệu quả theo giáo trình?
Người học cần cài đặt môi trường đúng quy chuẩn kỹ thuật được hướng dẫn tại Chương 1, tự viết lại mã nguồn thay vì sao chép, quan sát các thông báo lỗi tại cửa sổ Console/LogCat của Eclipse và thay đổi các tham số trong tệp XML để hiểu rõ cơ chế hiển thị giao diện.

5. Giáo trình có cung cấp các tài liệu bổ trợ nào kèm theo không?
Giáo trình cung cấp liên kết tải bộ công cụ chuẩn (Oracle JDK, Eclipse IDE, Android SDK, ADT Plugin), toàn bộ cấu trúc dự án mẫu được in kèm theo sách và kênh tiếp nhận phản hồi học thuật trực tiếp của nhóm tác giả qua thư điện tử sonlh@vnu.vn.


Kết luận (150 từ)

Giáo trình Lập trình Android cung cấp hệ thống kiến thức nền tảng và thực nghiệm về phát triển phần mềm di động trên nền tảng Android. Giá trị cốt lõi của tài liệu nằm ở sự kết hợp giữa kiến trúc hệ điều hành, cấu trúc ngữ pháp ngôn ngữ đặc tả XML, nguyên lý lập trình hướng đối tượng Java và quy trình quản trị dữ liệu hoàn chỉnh.

Lộ trình học tập đề xuất:

  1. Nắm vững quy trình cấu hình công cụ SDK, phân tích cấu trúc dự án và cơ chế vòng đời Activity (Chương 1).
  2. Làm chủ kỹ thuật thiết kế giao diện với View/ViewGroup và các layout chuyên dụng (Chương 2).
  3. Triển khai xử lý sự kiện và liên kết tiến trình với Intent và Content Provider (Chương 3).
  4. Xây dựng đồ án quản lý sinh viên với cơ sở dữ liệu cục bộ SQLite (Chương 4).
  5. Nâng cấp đồ án sang mô hình Client-Server với MySQL (Chương 5).
  6. Hoàn thiện ứng dụng thông qua việc tích hợp API Facebook và Google Maps (Chương 6).

Tài liệu bổ trợ nghiên cứu tiếp theo bao gồm tài liệu kỹ thuật tại cổng thông tin nhà phát triển Android (developer.android.com), đặc tả ngôn ngữ Java của Oracle và các trao đổi học thuật trực tiếp với nhóm tác giả qua địa chỉ sonlh@vnu.vn.