Việc đưa trí tuệ nhân tạo vào thiết bị di động đã bước sang một trang mới với sự ra đời của Android Studio Jellyfish. Không còn là những dòng lệnh phức tạp, giờ đây bạn có thể biến ứng dụng của mình thành một trợ lý thông minh chỉ với vài bước thiết lập bài bản.
1. Thiết lập nền tảng và Bảo mật API Key
Bước đầu tiên và quan trọng nhất là bảo mật. Thay vì hard-code, hãy sử dụng Secrets Gradle Plugin.
-
Mở tệp
local.propertiesvà thêm:GEMINI_API_KEY=AIzaSy... -
Trong tệp
build.gradle(Project level), thêm plugin:id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false -
Trong tệp
build.gradle(Module level), áp dụng plugin để tự động tạo lớpBuildConfig.GEMINI_API_KEY.
2. Cấu hình Gradle nâng cao
Ngoài SDK cơ bản, bạn nên sử dụng các thư viện hỗ trợ xử lý ảnh nếu muốn dùng tính năng Multimodal:
dependencies {
// SDK Gemini Core
implementation("com.google.ai.client.generativeai:generativeai:0.7.0")
// Hỗ trợ Coroutines cho xử lý bất đồng bộ
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
// Thư viện hỗ trợ hiển thị ảnh (tùy chọn)
implementation("io.coil-kt:coil-compose:2.4.0")
}
3. Hiện thực hóa Model: Text và Vision
Gemini không chỉ hiểu văn bản. Với Model gemini-1.5-flash, bạn có thể gửi cả hình ảnh để AI phân tích. Đây là cách cấu hình chuyên sâu trong ViewModel:
import com.google.ai.client.generativeai.GenerativeModel
import com.google.ai.client.generativeai.type.content
class GeminiViewModel : ViewModel() {
private val generativeModel = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = BuildConfig.GEMINI_API_KEY
)
// Hàm gửi cả văn bản và hình ảnh
suspend fun analyzeImage(bitmap: Bitmap, userDescription: String): String? {
val inputContent = content {
image(bitmap)
text(userDescription)
}
return try {
val response = generativeModel.generateContent(inputContent)
response.text
} catch (e: Exception) {
"Error: ${e.message}"
}
}
}
4. Tối ưu hóa "System Instruction" và "Safety Settings"
Để ứng dụng phản hồi chuyên nghiệp hơn (ví dụ: chỉ trả lời như một chuyên gia dinh dưỡng), bạn có thể thêm hướng dẫn hệ thống:
-
System Instruction: Giúp định hình "tính cách" cho AI.
-
Safety Settings: Ngăn chặn các nội dung độc hại hoặc không phù hợp ngay từ cấp độ API.
val model = GenerativeModel(
modelName = "gemini-1.5-flash",
apiKey = apiKey,
systemInstruction = content { text("Bạn là một chuyên gia hỗ trợ lập trình Android. Hãy trả lời ngắn gọn và tập trung vào code.") }
)
5. Kết luận và Lưu ý
Khi triển khai thực tế trên Android Studio Jellyfish, hãy chú ý đến việc quản lý vòng đời (Lifecycle) của các tiến trình AI. Luôn sử dụng viewModelScope để tránh rò rỉ bộ nhớ khi người dùng thoát ứng dụng đột ngột trong lúc AI đang xử lý.