Android Fundamentals: Thực hành viết code
Bài viết này cung cấp code sample thực hành để bạn có thể thao tác với các Android Fundamentals Components. Bài viết này cực kỳ quan trọng cho tất cả lập trình viên Android, yêu cầu học hiểu và thông thạo để có thể làm việc tốt trong tương lai.
Cài đặt & tạo dự án với Android Studio
Để tải Android Studio bạn vui lòng truy cập đường dẫn https://developer.android.com/studio sau đó chọn phiên bản Android Studio Stable cho hệ điều hành của mình
Sau khi cài mở Android Studio lên
Nhấn vào nút New Project, chọn No Activity, nhập tên dự án và chọn Finish.
Sau khi đợi dự án load xong bạn sẽ có giao diện như thế này
Mở file build.gradle trong module app để cài đặt ViewBinding, DataBinding
plugins {
id("kotlin-kapt")
}
buildFeatures {
viewBinding = true
dataBinding = true
}
Tại sao khóa học này không sử dụng Compose mà vẫn còn dùng ViewBinding, DataBinding?
- Hiện tại phỏng vấn Android ngoài thị trường vẫn đang dùng Android View rất nhiều.
- Android View là cơ sở, nền tảng. Chỉ có thể học thêm Compose hoặc không học, chứ không thể bỏ qua Android View
- Học tập cách thao tác với Android View trước; Viết Code ViewModel chuẩn hóa để có thể dễ dàng migrate từ View sang Compose trong tương lai.
Sử dụng Activity trong Android
Tạo MainActivity
và file xml tương ứng thông qua menu trong Android Studio. Nhấn chọn MainActivity
là Launcher Activity
(Launcher Activity
là Activity chạy đầu tiên khi ta mở ứng dụng từ App Icon)
Lần lượt tạo 4 Activity tiếp theo tượng trưng cho 4 loại Launch Mode mà chúng ta sẽ Demo: Standard Activity
, Single Top Activity
, Single Task Activity
, Single Instance Activity
.
Lưu ý: Hãy setup Launch Mode
cho các Activity này trong file AndroidManifest
Implement logic Start Activity bên trong từng Activity này bằng ViewBinding
.
startActivity(Intent(this@MainActivity, StandardActivity::class.java)) // code để gọi khởi tạo một Activity trong Android
Sử dụng Service trong Android
Thực hành BackgroundService
- Tạo class
BackgroundService
theo menu của Android Studio - Đặt log lần lượt trong các hàm:
onCreate
,onDestroy
,onStartCommand
- Hiện thực hàm
onStartCommand
để mô phỏng 1 tác vụ IO nặng
- Hiện thực logic Start Service từ MainActivity
- Demo gọi Start Service nhiều lần xà xem log
- Hiện thực logic Stop Service từ Main Activity
Lưu ý của Background Service
Tham khảo tại Google Android Developer
- Background Service sẽ bị stop khi kill ứng dụng. Buộc Engineer muốn khởi chạy lại Service này phải gọi manually 1 lần nữa trong source code.
Thực hành ForegroundService
Tạo class ForegroundService từ Menu của Android Studio
Truy cập file AndroidManifest và setup permission cần thiết để chạy Foreground Service.
Implement logic cần thiết để chạy một Foreground Service
Start và Stop Foreground Service từ Activity
Một vài lưu ý của Foreground Service
Tham khảo tại Google Android Developer
- Foreground Service sẽ tiếp tục chạy nếu chúng ta đóng ứng dụng.
- Trường hợp đặc biệt khi hệ điều hành kill Foreground Service để sử dụng memory. Foreground Service sẽ tự động được Start lại sau đó khi có đủ tài nguyên.
Sử dụng Broadcast Receiver trong Android
Thực hành với Broadcast Receiver
Tạo Broadcast Receiver trong Android Studio, đặt tên là SimpleReceiver
SimpleReceiver
trong Android Studio – Android Mastery by Dan TechĐăng ký Intent Filter trong AndroidManifest
Demo Receiver khi Restart máy (Phần này bạn hãy chạy app lên máy và restart nhé)
Demo Local manual Broadcast Receiver
// thực thi gửi Broadcast Receiver trong các function của bạn
sendBroadcast(Intent(SimpleReceiver.SIMPLE_ACTION))
Sử dụng Content Provider trong Android
Dùng Content Provider để query SMS trong máy
Đăng ký permission đọc SMS
Một số ghi chú khi quyết định sử dụng Content Provider
- Mặc dù Content Provider dùng để ghi, đọc dữ liệu trong Android app. Nhưng ta không nhất thiết phải sử dụng Content Provider cho các công việc lưu trữ data. Một số giải pháp khác có thể liệt kê ra đây: Room Database, Jetpack DataStore, Level Database …
Khi nào nên cân nhắc sử dụng Content Provider?
- Khi cần truy cập vào dữ liệu của 1 ứng dụng khác: SMS, Gallery Ảnh, File, …
- Khi muốn export data của ứng dụng ra ngoài để các ứng dụng khác có thể sử dụng được. Ví dụ: Chia sẻ thông tin đăng nhập, thông tin tracking giữa các app trong hệ sinh thái của Meta với nhau;
Trên đây là toàn bộ kiến thức về Android Fundamentals mà tất cả Android Dev đều cần phải biết. Hi vọng bạn sẽ học thật tốt!