Giáo Trình Học Phần: Lập Trình Di Động 1 (Mã học phần: CNC107311)


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

Giáo trình Lập trình di động 1 (Mã học phần: CNC107311) là tài liệu giảng dạy chính thức do các tác giả Trương Bá Thái và Tiêu Kim Cương biên soạn, thuộc Khoa Công nghệ Thông tin – Trường Cao đẳng Công nghệ Thủ Đức (ban hành theo quyết định của trường năm 2019). Trong khung chương trình đào tạo trình độ Cao đẳng ngành Công nghệ Thông tin, đây là học phần chuyên ngành bắt buộc, định hướng cung cấp nền tảng kỹ thuật để người học phát triển các ứng dụng quy mô vừa và nhỏ trên hệ điều hành Android.

+-------------------------------------------------------------------------+
|                  CẤU TRÚC HỌC PHẦN LẬP TRÌNH DI ĐỘNG 1                  |
|                           (Mã: CNC107311)                               |
+-------------------------------------------------------------------------+
       |
       +---> Chương 1: Tổng quan về lập trình Android & Môi trường IDE
       |
       +---> Chương 2: Giao diện người dùng (UI Controls & Layouts)
       |
       +---> Chương 3: Xây dựng giao diện với Fragment (Static / Dynamic)
       |
       +---> Chương 4: Điều hướng hệ thống (Action Bar & Navigation Drawer)
       |
       +---> Chương 5: Lập trình cơ sở dữ liệu cục bộ với SQLite

Về mục tiêu học tập (Learning Outcomes), giáo trình trang bị cho sinh viên:

  • Kiến thức: Hệ thống hóa cấu trúc nền tảng của hệ điều hành Android, nguyên lý hoạt động của máy ảo Dalvik, và phương pháp tổ chức dự án phần mềm trên môi trường Android Studio.
  • Kỹ năng: Xây dựng giao diện đồ họa (UI), xử lý điều hướng màn hình, tích hợp cơ sở dữ liệu SQLite, thao tác thành thạo công cụ gỡ lỗi (Debug/LogCat), và áp dụng phương pháp thiết kế phần mềm theo tiếp cận Top-Down.
  • Năng lực tự chủ và trách nhiệm: Rèn luyện quy chuẩn viết mã nguồn chuẩn hóa, ý thức bảo vệ bản quyền (không sao chép mã nguồn), và tuân thủ quy trình phát triển phần mềm độc lập.

Cấu trúc giáo trình gồm 5 chương được phân bổ theo tiến trình logic từ kiến trúc hệ thống, xây dựng giao diện cơ bản, mô-đun hóa giao diện với Fragment, phát triển hệ thống điều hướng đến quản trị dữ liệu cục bộ. Điểm đặc thù của tài liệu là phương pháp tiếp cận trực quan hóa: từng thao tác cấu hình môi trường, lập trình giao diện XML và viết mã xử lý Java đều đi kèm lưu đồ, ảnh chụp màn hình thực tế và hệ thống bài tập thực hành ứng dụng cụ thể.


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

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

Nội dung giáo trình được cấu trúc qua 5 chương chuyên đề:

+-----------------------------------------------------------------------------+
|                      TIẾN TRÌNH NỘI DUNG 5 CHƯƠNG                           |
+-----------------------------------------------------------------------------+
| [Chương 1]  Kiến trúc Android (4 tầng) -> Android Studio -> Activity Lifecycle |
|      |                                                                      |
| [Chương 2]  Layouts (Linear/Relative/Constraint) -> Widgets -> Adapters      |
|      |                                                                      |
| [Chương 3]  Fragment Tĩnh & Động -> Vòng đời Fragment -> Giao diện Đa hướng |
|      |                                                                      |
| [Chương 4]  Action Bar -> OptionMenu -> SearchView -> Navigation Drawers    |
|      |                                                                      |
| [Chương 5]  Cơ sở dữ liệu SQLite -> CRUD Operations -> Sắp xếp dữ liệu       |
+-----------------------------------------------------------------------------+
  • Chương 1: Tổng quan về lập trình Android
    Trình bày lịch sử phát triển qua các phiên bản Android (từ 1.5 Cupcake đến 8.0 Oreo), kiến trúc 4 tầng của hệ điều hành (Linux Kernel, Libraries & Android Runtime - Dalvik VM, Application Framework, Applications), quy trình cài đặt Java JDK, Android SDK, Android Studio và cấu hình máy ảo AVD. Chương này phân tích cấu trúc dự án (AndroidManifest.xml, thư mục mã nguồn java/, thư mục tài nguyên res/), vòng đời Activity qua các hàm callback (onCreate, onStart, onResume, onPause, onStop, onDestroy, onRestart), và kỹ thuật kiểm soát lỗi bằng LogCat, thông báo Toast, điểm dừng Breakpoint.
  • Chương 2: Giao diện người dùng và xử lý sự kiện
    Hướng dẫn thiết kế giao diện bằng các loại layout: FrameLayout, RelativeLayout, LinearLayout, ConstraintLayout. Trình bày chi tiết cú pháp và thuộc tính của hệ thống điều khiển cơ bản: TextView, EditText, Button, CheckBox, RadioButton, ImageView, ToggleButton, Switch. Đồng thời, chương đi sâu vào các điều khiển hiển thị danh sách thông qua cơ chế Adapter: Spinner, ListView, Custom ListView, cùng các bộ chọn thời gian (TimePicker, DatePicker) và tổ chức tab hiển thị (TabHost).
  • Chương 3: Xây dựng giao diện với Fragment
    Giới thiệu khái niệm Fragment và các phiên bản hỗ trợ. Phân tích vòng đời của Fragment, kỹ thuật xây dựng Fragment tĩnh qua khai báo XML và Fragment động thông qua mã nguồn Java nhằm tối ưu hóa giao diện ứng dụng trên màn hình đứng và màn hình ngang.
  • Chương 4: Action Bar – Navigation Drawers
    Trình bày kỹ thuật tạo và tùy biến thanh tác vụ ActionBar, tạo thực đơn tùy chọn OptionMenu, tích hợp ô tìm kiếm SearchView, cùng quy trình thiết lập thanh điều hướng dạng ngăn kéo trượt Navigation Drawer.
  • Chương 5: Lập trình cơ sở dữ liệu với SQLite
    Giới thiệu hệ quản trị cơ sở dữ liệu quan hệ nhúng SQLite. Hướng dẫn các thao tác lập trình: tạo và xóa cơ sở dữ liệu, mở và đóng kết nối, thực thi các truy vấn thêm/xóa/sửa/đọc dữ liệu (CRUD), và xử lý sắp xếp dữ liệu trên các bảng.

Logic phát triển nội dung đi từ việc làm chủ nền tảng hệ điều hành và công cụ biên dịch $\rightarrow$ xây dựng các thành phần giao diện đơn lẻ $\rightarrow$ liên kết dữ liệu mảng phức tạp qua Adapter $\rightarrow$ tổ chức giao diện linh hoạt đa màn hình $\rightarrow$ hoàn thiện điều hướng cấp ứng dụng $\rightarrow$ tích hợp lưu trữ dữ liệu bền vững.


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

  1. Lý thuyết kiến trúc hệ điều hành di động: Mô hình phân tầng của Android, cơ chế quản lý tiến trình và quản lý bộ nhớ của Linux Kernel, vai trò của máy ảo Dalvik trong việc thực thi tệp tin .dex.
  2. Nguyên lý vòng đời thành phần (Component Lifecycle): Cơ chế vận hành của ngăn xếp ứng dụng (BackStack), trạng thái chuyển tiếp và các điểm kích hoạt callback của Activity và Fragment.
  3. Khung quản trị tài nguyên ứng dụng (Android Resource Framework): Nguyên tắc tách biệt mã nguồn logic (.java) và khai báo giao diện/dữ liệu tĩnh (.xml trong res/layout, res/values/strings.xml, res/drawable, res/mipmap).
  4. Mô hình kiến trúc Adapter: Cơ chế trung gian kết nối giữa nguồn dữ liệu (Data Source) và các thành phần hiển thị dạng danh sách (AdapterView như ListView, Spinner).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills):
    • Cài đặt, cấu hình hệ thống công cụ: Java JDK, Android Studio, Android SDK và máy ảo phần cứng AVD.
    • Viết mã nguồn bằng ngôn ngữ Java cho ứng dụng di động; thiết kế giao diện bằng XML (sử dụng Linear, Relative, ConstraintLayout).
    • Thao tác gỡ lỗi chuyên sâu: Đặt Breakpoint, điều khiển luồng thực thi (Step Over, Step Into, Force Step Into, Step Out, Resume, Mute Breakpoints), ghi nhận nhật ký hệ thống qua Log.d() và hiển thị thông báo với Toast.makeText().
    • Lập trình thao tác cơ sở dữ liệu SQLite cục bộ.
  • Kỹ năng phân tích (Analytical Skills):
    • Phân tích trạng thái Foreground Lifetime và Visible Lifetime của màn hình ứng dụng.
    • Phân tích cấu trúc dữ liệu để xây dựng các lớp Custom Adapter phù hợp cho đối tượng danh sách phức tạp.
  • Năng lực thực hành ứng dụng (Practical Competencies):
    • Xây dựng hoàn chỉnh các ứng dụng thực tế theo tiếp cận Top-Down: Màn hình đăng nhập, ứng dụng lật bài tính điểm, trắc nghiệm, hiển thị danh sách cầu thủ/phim có chức năng cập nhật, ứng dụng quản lý danh bạ, ứng dụng quản lý sinh viên và quản lý nhân viên.

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

Giáo trình áp dụng phương pháp sư phạm tiếp cận từ trên xuống (Top-Down Approach), kết hợp chặt chẽ giữa lý thuyết hệ thống và thực hành trực tiếp trên công cụ phát triển phần mềm Android Studio.

+--------------------------------------------------------------------------+
|                     PHƯƠNG PHÁP TIẾP CẬN SƯ PHẠM                         |
+--------------------------------------------------------------------------+
  [LÝ THUYẾT NỀN TẢNG]      -> Khái niệm, kiến trúc, sơ đồ vòng đời
           |
  [HƯỚNG DẪN TỪNG BƯỚC]     -> Ảnh chụp giao diện IDE, code XML/Java mẫu
           |
  [THỰC HÀNH TẠI LAB]       -> Viết code, chạy máy ảo AVD / thiết bị thật
           |
  [DEBUG & HOÀN THIỆN]      -> Sử dụng LogCat, Breakpoint, Toast
           |
  [BÀI TẬP TÌNH HUỐNG/DỰ ÁN]-> Quản lý danh bạ, Quản lý sinh viên, v.v.
+--------------------------------------------------------------------------+

Hệ thống bài tập và tình huống thực hành (Case Studies)

Cuối mỗi chương, giáo trình thiết lập hệ thống bài tập thực hành có mục tiêu và hướng dẫn kỹ thuật chi tiết:

Chương Danh mục bài tập / Case Study tiêu biểu Mục tiêu thực hành kỹ thuật
Chương 1 - Phân biệt Foreground Lifetime và Visible Lifetime (sử dụng 3 Activity: ManHinhChinh, ManHinh1, ManHinh2)
- Xây dựng ứng dụng với ConstraintLayout
Nắm bắt luồng chuyển đổi trạng thái vòng đời Activity; điều khiển hiển thị Activity đè một phần và toàn màn hình.
Chương 2 - Thiết kế màn hình đăng nhập
- Ứng dụng lật bài và tính điểm
- Thu thập thông tin cá nhân & ứng dụng trắc nghiệm
- ListView danh sách quốc gia (Country), đặt đồ ăn
- Quản lý danh sách cầu thủ, danh sách phim (kèm cập nhật)
- Ứng dụng quản lý danh bạ
Sử dụng thành thạo các Widget cơ bản, xây dựng Custom Adapter, quản lý danh sách và bắt sự kiện tương tác người dùng.
Chương 3 - Tạo và sử dụng Fragment 1 (Fragment tĩnh)
- Tạo và sử dụng Fragment 2 (Fragment động)
Tích hợp Fragment vào giao diện màn hình đứng và xoay ngang; quản lý sự kiện giữa Activity và Fragment.
Chương 4 - Tạo và sử dụng OptionMenu
- Ứng dụng ActionBar SearchView
- Xây dựng giao diện Navigation Drawer
Thiết kế hệ thống thực đơn và điều hướng đa tầng trên ứng dụng.
Chương 5 - Ứng dụng Quản lý sinh viên (các trường: Mã sinh viên, Tên sinh viên, Lớp)
- Ứng dụng Quản lý nhân viên
Thao tác tạo bảng, thêm, sửa, xóa, truy vấn và sắp xếp dữ liệu trên SQLite.

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

  • Phương pháp đánh giá: Đánh giá năng lực dựa trên sản phẩm thực hành: kiểm tra khả năng cấu hình dự án, độ chính xác của giao diện so với mẫu thiết kế, tính toàn vẹn của mã nguồn xử lý logic, kỹ năng debug loại bỏ lỗi runtime, và việc tuân thủ quy chuẩn viết mã (không sao chép).
  • Hướng dẫn tự học: Giáo trình khuyến nghị người học tuân thủ quy trình: đọc hiểu sơ đồ kiến trúc $\rightarrow$ tự gõ mã nguồn mẫu vào Android Studio (không sao chép - dán) $\rightarrow$ chạy thử nghiệm trên máy ảo AVD $\rightarrow$ đặt điểm dừng Debug để theo dõi sự biến thiên của biến số $\rightarrow$ tự triển khai các bài tập tình huống mở rộng cuối chương.

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

  1. Hệ thống hóa tiến trình phát triển hệ điều hành Android: Giáo trình cung cấp bảng tổng hợp các mốc cải tiến kỹ thuật cốt lõi qua 14 phiên bản:

    • Android 1.5 Cupcake: Tích hợp bàn phím ảo.
    • Android 1.6 Donut: Bổ sung hỗ trợ đa độ phân giải màn hình.
    • Android 2.0 Eclair: Bổ sung driver camera, đèn flash LED và cân bằng trắng.
    • Android 2.2 Froyo: Tăng hiệu năng xử lý (gấp 2.5 lần) và hỗ trợ kết nối Wi-Fi.
    • Android 2.3 Gingerbread: Tích hợp hỗ trợ cảm biến con quay hồi chuyển (gyroscope), cảm biến áp suất (barometer).
    • Android 3.0 Honeycomb: Tối ưu hóa giao diện cho máy tính bảng.
    • Android 4.0 Ice Cream Sandwich: Giới thiệu giao diện phẳng hóa chuẩn "Holo".
    • Android 4.1 Jelly Bean: Tích hợp trợ lý ảo Google Now.
    • Android 4.4 KitKat: Tối ưu hóa quản lý bộ nhớ cho thiết bị cấu hình thấp (512MB RAM).
    • Android 5.0 Lollipop: Áp dụng ngôn ngữ thiết kế Material Design.
    • Android 6.0 Marshmallow: Quản lý năng lượng thông minh và cảm biến vân tay.
    • Android 7.0/7.1 Nougat: Tối ưu tính năng Doze on-the-go, chia đôi màn hình và Google Assistant.
    • Android 8.0 Oreo: Quản trị tài nguyên nền và cải tiến xử lý âm thanh.
  2. Chuyển dịch sang môi trường chuẩn hóa Android Studio: Phân tích sự chuyển dịch từ bộ công cụ cũ (Eclipse ADT) sang môi trường tích hợp Android Studio trên nền IntelliJ IDEA, sử dụng hệ thống tự động hóa build Gradle, công cụ thiết kế giao diện trực quan và cơ chế kiểm soát mã nguồn bảo mật.

  3. Khái quát hệ sinh thái đa ngôn ngữ trong lập trình di động: Bên cạnh ngôn ngữ chính Java, giáo trình cung cấp góc nhìn so sánh về các giải pháp công nghệ: C++ (lập trình cấp thấp hiệu năng cao), C# / Xamarin (đa nền tảng), Kotlin (ngôn ngữ ngắn gọn trên máy ảo Java), HTML5/CSS/JavaScript (sử dụng Apache Cordova, Ionic, React Native) và Python.


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

+-------------------------------------------------------------------------+
|                         ĐỐI TƯỢNG SỬ DỤNG                               |
+-------------------------------------------------------------------------+
  1. SINH VIÊN CHUYÊN NGÀNH
     - Sinh viên năm 2 / năm 3 hệ Cao đẳng ngành Công nghệ thông tin.
     - Sinh viên các ngành liên quan: Kỹ thuật phần mềm, Hệ thống thông tin.
     
  2. ĐIỀU KIỆN TIÊN QUYẾT (PREREQUISITES)
     - Lập trình căn bản và Lập trình hướng đối tượng (OOP với Java/C++).
     - Cấu trúc dữ liệu và giải thuật.
     - Kiến thức cơ bản về Hệ điều hành và Cơ sở dữ liệu quan hệ (SQL).
     
  3. GIẢNG VIÊN VÀ CƠ SỞ ĐÀO TẠO
     - Sử dụng làm giáo trình giảng dạy học phần Lập trình di động 1.
     - Làm khung tham chiếu để thiết kế bài giảng lý thuyết và bài tập Lab.
     
  4. LẬP TRÌNH VIÊN TỰ HỌC
     - Người bắt đầu tiếp cận phát triển ứng dụng di động Android Native.
+-------------------------------------------------------------------------+
  • Sinh viên: Phục vụ trực tiếp sinh viên hệ Cao đẳng ngành Công nghệ Thông tin tại Trường Cao đẳng Công nghệ Thủ Đức và sinh viên khối ngành kỹ thuật phần mềm cần tài liệu nhập môn Android Native.
  • Điều kiện tiên quyết: Người học cần có kiến thức nền tảng về lập trình hướng đối tượng (OOP) bằng ngôn ngữ Java hoặc C++, hiểu biết về cấu trúc dữ liệu, nguyên lý cơ sở dữ liệu quan hệ và cú pháp truy vấn SQL cơ bản.
  • Giảng viên: Dùng làm đề cương chi tiết và tài liệu giảng dạy học phần, cung cấp khung bài tập chuẩn và tiêu chí đánh giá kỹ năng lập trình.
  • Người tự học: Cung cấp tài liệu tham khảo có cấu trúc rõ ràng cho các cá nhân muốn tự nghiên cứu quy trình phát triển phần mềm di động từ bước cài đặt môi trường đến đóng gói ứng dụng.

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

1. Giáo trình này phù hợp với đối tượng người học nào?

Giáo trình được thiết kế chuyên biệt cho sinh viên hệ Cao đẳng ngành Công nghệ Thông tin theo học học phần Lập trình di động 1 (mã số CNC107311), đồng thời phù hợp cho người học bắt đầu tiếp cận lập trình ứng dụng Android trên nền tảng Java.

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

Người học cần nắm vững kỹ thuật lập trình hướng đối tượng (đặc biệt là cú pháp ngôn ngữ Java: lớp, đối tượng, kế thừa, phương thức callback), hiểu biết về cấu trúc dữ liệu mảng và cú pháp truy vấn cơ sở dữ liệu SQL cơ 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 tham khảo khác là gì?

Tài liệu tập trung vào phương pháp hướng dẫn thực hành từng bước (Step-by-step) thông qua hệ thống hình ảnh minh họa thực tế từ IDE Android Studio, gắn liền lý thuyết vòng đời thành phần với các bài tập kiểm chứng thực tế và case study quản lý dữ liệu hoàn chỉnh.

4. Làm thế nào để tự học giáo trình này đạt hiệu quả cao nhất?

Người học nên cài đặt đồng bộ bộ công cụ JDK và Android Studio theo hướng dẫn tại Chương 1; tự tay nhập mã nguồn các ví dụ mẫu; sử dụng công cụ Debug (Breakpoint, LogCat) để kiểm soát biến số; và tự giải quyết trọn vẹn các bài tập tình huống ở cuối mỗi chương.

5. Có những tài liệu bổ trợ nào đi kèm với giáo trình?

Kèm theo giáo trình là hệ thống mã nguồn mẫu cho từng chương, các tệp tài nguyên XML/hình ảnh minh họa cho các bài tập lớn (Quản lý sinh viên, Quản lý danh bạ, Danh sách cầu thủ), cùng danh mục liên kết tải về bộ công cụ chính thức từ Oracle (Java JDK) và Google (Android Studio SDK).


Kết luận

Giáo trình Học phần: Lập trình di động 1 (Khoa Công nghệ Thông tin – Trường Cao đẳng Công nghệ Thủ Đức) cung cấp khung tri thức hoàn chỉnh cho việc nhập môn phát triển ứng dụng di động Android Native. Giá trị cốt lõi của tài liệu nằm ở tính chuẩn hóa sư phạm, kết nối chặt chẽ giữa lý thuyết kiến trúc phần mềm (vòng đời Activity/Fragment, kiến trúc hệ điều hành 4 tầng) với kỹ năng thực hành kỹ thuật (xây dựng giao diện XML, xử lý Adapter, thao tác cơ sở dữ liệu SQLite).

Lộ trình học tập khuyến nghị là thực hiện tuần tự 5 chương lý thuyết kết hợp giải quyết toàn diện hệ thống bài tập thực hành trên môi trường Android Studio. Để mở rộng kiến thức, người học có thể kết hợp tham khảo tài liệu hướng dẫn chính thức từ cổng thông tin phát triển Android (developer.android.com) và các tiêu chuẩn thiết kế Material Design của Google.