1. Định nghĩa & Giá trị
Tổng quan: Đây là bước cấu hình nền tảng đầu tiên để đưa bộ công cụ Mobio SDK vào source code ứng dụng Android của bạn. Quá trình này bao gồm việc nhúng file thư viện vật lý (.aar) vào dự án và cấu hình lớp Application để chuẩn bị cho việc khởi tạo.
Lợi ích/ Giá trị:
- Đảm bảo ứng dụng Android có đầy đủ các package cần thiết để sẵn sàng giao tiếp với hệ thống Mobio CDP.
- Việc cấu hình chuẩn xác lớp
Applicationtrong Manifest ngay từ đầu giúp SDK có thể theo dõi hành vi người dùng xuyên suốt toàn bộ vòng đời của ứng dụng mà không bị gián đoạn.
Đối tượng thao tác: Android Developer.
2. Giải thích Thuật ngữ & Thông số
- File .aar (Android Archive): Định dạng đóng gói thư viện chuẩn của Android, chứa các file mã nguồn (compiled code) và tài nguyên (resources) của Mobio SDK.
- build.gradle (Module: app): File cấu hình của Gradle dùng để khai báo các thư viện phụ thuộc (dependencies) cho dự án Android.
- AndroidManifest.xml: File khai báo các thành phần cốt lõi của ứng dụng (như Application, Activity, Service) và các quyền (Permissions) với hệ điều hành Android.
3. Điều kiện tiên quyết (Prerequisite)
- Đã hoàn thành Khai báo ứng dụng và lấy thông tin tích hợp và có sẵn các thông tin
- Merchant ID
- Connector ID
- API URL
- Môi trường phát triển: Android Studio.
- Đã nhận được file Mobio SDK từ team CS hoặc kỹ thuật của Mobio.
4. Các bước thực hiện
Bước 1: Thêm file Mobio SDK (.aar) vào dự án
Mobio SDK cho Android hiện được phân phối dưới dạng file .aar nội bộ. Bạn thực hiện đưa file này vào source code như sau:
- Tạo một thư mục tên là
libstrong folder root của project (ví dụ:root_project/libs) nếu chưa có. - Sao chép file
mobio-sdk.aarnhận được vào thư mụcroot_project/libs.
Bước 2: Cấu hình build.gradle
Mở file cấu hình của module app (thường là app/build.gradle hoặc app/build.gradle.kts) và thực hiện các thay đổi sau:
2.1. Thêm SDK từ thư mục libs
Trong phần dependencies, thêm dòng sau để ứng dụng nhận diện file .aar:
Groovy DSL
dependencies {
// ... các dependencies khác
implementation files("libs/mobio-sdk.aar")
}
Kotlin DSL
dependencies {
// ... các dependencies khác
implementation(files("libs/mobio-sdk.aar"))
}
2.2. Khai báo các thư viện phụ thuộc (Dependencies)
Mobio SDK cần các thư viện của Google và Firebase để hoạt động. Thêm các dòng sau vào block dependencies:
Với dự án viết bằng Java
dependencies {
// ...
// Core Android
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.work:work-runtime:2.9.0'
// Firebase (cho push notification)
implementation platform('com.google.firebase:firebase-bom:32.2.2')
implementation 'com.google.firebase:firebase-messaging'
// Utilities
implementation 'com.google.code.gson:gson:2.10.1'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}
Với dự án viết bằng Kotlin
Cách 1: Sử dụng Version Catalog (Khuyên dùng)
Đây là cách quản lý phiên bản tập trung, giúp tránh xung đột và dễ nâng cấp.
Bước 1: Cập nhật file gradle/libs.versions.toml
Thêm các khai báo sau vào các mục tương ứng:
Ini, TOML
[versions]# ... giữ nguyên các phiên bản cũ và thêm các dòng dưới đây
workRuntime = "2.9.0"
firebaseBom = "32.2.2"
gson = "2.10.1"
playServicesAdsIdentifier = "18.0.1"
[libraries]
# Core Android & WorkManager
androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workRuntime" }
# Firebase (Quản lý qua BOM)
firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" }
firebase-messaging = { group = "com.google.firebase", name = "firebase-messaging" }
# Utilities
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
play-services-ads-identifier = { group = "com.google.android.gms", name = "play-services-ads-identifier", version.ref = "playServicesAdsIdentifier" }
Bước 2: Khai báo trong build.gradle.kts (Module: app)
Mở block dependencies và gọi các biến đã khai báo:
Kotlin
dependencies {
// Mobio SDK (Local AAR)
implementation(files("libs/mobio-sdk.aar"))
// Dependencies từ Version Catalog
implementation(libs.androidx.appcompat) // Đã có sẵn trong file của bạn
implementation(libs.androidx.work.runtime.ktx)
implementation(libs.gson)
implementation(libs.play.services.ads.identifier)
// Firebase Integration
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.messaging)
}
Cách 2: Khai báo trực tiếp (Dành cho dự án cũ hoặc cần nhanh)
Sử dụng trực tiếp chuỗi ký tự trong file cấu hình.
Mở file build.gradle.kts (Module: app) và thêm đoạn mã sau:
Kotlin
dependencies {
// Mobio SDK
implementation(files("libs/mobio-sdk.aar"))
// Core Android & WorkManager
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.work:work-runtime-ktx:2.9.0")
// Firebase (Bắt buộc dùng platform() cho BOM trong Kotlin DSL)
implementation(platform("com.google.firebase:firebase-bom:32.2.2"))
implementation("com.google.firebase:firebase-messaging")
// Utilities
implementation("com.google.code.gson:gson:2.10.1")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
}
2.3. Cấu hình Java Compatibility
SDK của Mobio yêu cầu Java phiên bản 8 trở lên. Hầu hết các dự án Android hiện đại đã đáp ứng yêu cầu này.
Hãy kiểm tra file `build.gradle` (module: app). Nếu `sourceCompatibility` và `targetCompatibility` đã được đặt thành `JavaVersion.VERSION_1_8` hoặc cao hơn (ví dụ: `JavaVersion.VERSION_11`), thì không cần thay đổi gì.
Nếu project chưa có cấu hình này hoặc đang dùng phiên bản thấp hơn, hãy thêm vào trong thẻ android:
android {
// ...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Bước 3: Khai báo lớp Application trong AndroidManifest.xml
Mở file AndroidManifest.xml (app/src/main/AndroidManifest.xml) và thêm các quyền (permissions) và dịch vụ (services) cần thiết
Thêm Permissions
Đảm bảo các quyền sau đã được khai báo bên trong thẻ <manifest>. Nếu chưa có, vui lòng bổ sung:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Bắt buộc cho Android 13+ để hiển thị push notification -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
Thêm Dịch vụ Firebase Messaging
Trường hợp 1: Dự án chưa tích hợp Firebase Messaging
Chưa có thông tin cho mục này.
Trường hợp 2: Dự án đã tích hợp Firebase Messaging
- Bước 1: Mở file service extends từ FirebaseMessagingService để lắng nghe và xử lý dữ liệu từ Firebase, code thường có dạng
class MyFirebaseMessagingService : FirebaseMessagingService() {
}
- Bước 2: Chuyển tiếp dữ liệu thông báo tới SDK
package com.mobio.mobiosdkkotlindemo
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import com.mobio.sdk.Mobio
class MobioFirebaseMessagingService : FirebaseMessagingService() {
companion object {
private const val TAG = "FirebaseMsgService"
private const val CHANNEL_ID = "mobio_notification_channel"
private const val CHANNEL_NAME = "Mobio Notifications"
}
/** * Được gọi khi nhận được message từ Firebase Cloud Messaging */override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
// Thêm hàm này để gửi thông tin tới Mobio SDK
Mobio.getInstance().onMessageReceived(remoteMessage)
}
/** * Được gọi khi FCM token được refresh * Token này cần được gửi lên server để có thể gửi notification đến thiết bị này */override fun onNewToken(token: String) {
super.onNewToken(token)
Log.d(TAG, "Refreshed token: $token")
// Thêm hàm này để gửi thông tin tới Mobio SDK
Mobio.getInstance().setDeviceToken(token)
}
}
Bước 4: Khởi tạo SDK
Cách tốt nhất để khởi tạo SDK là trong lớp Application. Điều này đảm bảo SDK được khởi chạy ngay khi ứng dụng bắt đầu.
Tạo một lớp kế thừa từ Application có tên MyApplication nằm cùng cấp với MainActivity
Java
import android.app.Application;
import com.mobio.sdk.Mobio;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Khởi tạo Mobio SDK
Mobio.getInstance().initWithLaunchOptions(
this,
"YOUR_MERCHANT_ID", // Thay bằng Merchant ID của bạn
"YOUR_CONNECTOR_ID", // Thay bằng Connector ID của bạn
R.mipmap.ic_launcher , // Icon hiển thị trên notification
"YOUR_API_URL", // Thay bằng API URL của bạn
"SOURCE" // Thay bằng nguồn ghi nhận dữ liệu của bạn
);
}
}
Kotlin
package com.mobio.mobiosdkkotlindemo
import android.app.Application
import com.mobio.sdk.Mobio
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Khởi tạo Mobio SDK
Mobio.getInstance().initWithLaunchOptions(
this,
"YOUR_MERCHANT_ID", // Thay bằng Merchant ID của bạn
"YOUR_CONNECTOR_ID", // Thay bằng Connector ID của bạn
R.mipmap.ic_launcher, // Icon hiển thị trên notification
"YOUR_API_URL", // Thay bằng API URL của bạn
"SOURCE" // Thay bằng nguồn ghi nhận dữ liệu của bạn
)
}
}
Khai báo lớp Application trong AndroidManifest.xml
<application
android:name=".MyApplication"
...
>
<!-- ... -->
</application>
Lưu ý:
- Thay thế thông tin
MERCHANT_ID,CONNECTOR_ID,API_URLở phần chuẩn bị.- Source (optional): thông tin phân loại nguồn dữ liệu khi Profile được ghi nhận trên hệ thống Mobio, giá trị mặc định là “App”
5. Quy tắc vận hành
- Bắt buộc: Phải Sync Gradle thành công sau khi thêm các dependencies ở Bước 2. Nếu báo lỗi xung đột phiên bản (Version Conflict), vui lòng điều chỉnh các số version (ví dụ
18.5.0) sao cho tương thích với dự án hiện tại của bạn nhưng vẫn ưu tiên bản mới. - Tùy chọn: Nếu dự án không bật
minifyEnabled truetrong cấu hình Release, bạn có thể bỏ qua Bước 5 (Cấu hình Proguard).
6. Các câu hỏi thường gặp (FAQ)
Chưa có thông tin cho mục này.
7. Bước tiếp theo
Môi trường Android của bạn đã được cài đặt chính xác các thư viện cần thiết. Hãy chuyển sang bài tiếp theo để tiến hành gọi hàm:
- [Kỹ thuật] Gọi hàm Khởi tạo SDK (INIT) trên ứng dụng Android