live and dev environment on android studio
Cách thiết lập môi trường Live (Production) và Dev (Development) trên Android Studio
Khi phát triển ứng dụng Android, bạn cần tách biệt môi trường Dev (phát triển) và Live (sản phẩm chính thức) để tránh nhầm lẫn dữ liệu, API và cài đặt. Dưới đây là các cách phổ biến để làm điều này trong Android Studio.
1. Sử dụng Build Variants (Product Flavors)
Android Studio cho phép bạn định nghĩa các biến thể (build variants) để có các cấu hình riêng cho môi trường Dev và Live.
Bước 1: Cấu hình Product Flavors trong build.gradle (Module: app)
build.gradle (Module: app)
Mở build.gradle
, thêm đoạn mã sau vào khối android
:
gradleCopyEditandroid {
compileSdk 34
defaultConfig {
applicationId "com.example.myapp"
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
applicationIdSuffix ".dev"
resValue "string", "app_name", "MyApp Dev"
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
flavorDimensions "default"
productFlavors {
dev {
dimension "default"
applicationIdSuffix ".dev"
versionNameSuffix "-dev"
buildConfigField "String", "BASE_URL", "\"https://dev.api.example.com/\""
}
live {
dimension "default"
buildConfigField "String", "BASE_URL", "\"https://api.example.com/\""
}
}
}
Bước 2: Sử dụng Product Flavors trong mã nguồn
Bạn có thể truy xuất URL API dựa vào BuildConfig
:
javaCopyEditString apiUrl = BuildConfig.BASE_URL;
Log.d("API URL", apiUrl);
Khi chạy ứng dụng:
Nếu chọn dev, API sẽ là
"https://dev.api.example.com/"
Nếu chọn live, API sẽ là
"https://api.example.com/"
2. Tạo các file cấu hình riêng cho từng môi trường
Thay vì hardcode API vào build.gradle
, bạn có thể sử dụng file XML riêng biệt.
Bước 1: Tạo thư mục resource riêng
Trong res/values/, tạo hai thư mục:
res/values-dev/strings.xml
res/values-live/strings.xml
Bước 2: Định nghĩa API URL cho từng môi trường
res/values-dev/strings.xml
xmlCopyEdit<resources>
<string name="api_url">https://dev.api.example.com/</string>
</resources>
res/values-live/strings.xml
xmlCopyEdit<resources>
<string name="api_url">https://api.example.com/</string>
</resources>
Bước 3: Truy xuất giá trị trong code
javaCopyEditString apiUrl = getString(R.string.api_url);
3. Tuỳ chỉnh icon và tên ứng dụng theo môi trường
Bạn có thể đặt tên ứng dụng khác nhau cho bản Dev và Live.
Bước 1: Cấu hình AndroidManifest.xml
AndroidManifest.xml
xmlCopyEdit<application
android:label="@string/app_name">
</application>
Bước 2: Chỉnh sửa strings.xml
cho từng môi trường
strings.xml
cho từng môi trườngres/values-dev/strings.xml
xmlCopyEdit<resources>
<string name="app_name">MyApp Dev</string>
</resources>
res/values-live/strings.xml
xmlCopyEdit<resources>
<string name="app_name">MyApp</string>
</resources>
Ứng dụng Dev sẽ có tên khác với Live trên thiết bị.
4. Chuyển đổi giữa các môi trường trong Android Studio
Bạn có thể chọn môi trường trong Build Variants:
Mở Build Variants: Vào
View
→Tool Windows
→Build Variants
Chọn biến thể cần build
devDebug
để chạy môi trường DevliveRelease
để build môi trường Live
5. Sử dụng các file google-services.json
riêng biệt cho Firebase
google-services.json
riêng biệt cho FirebaseNếu ứng dụng dùng Firebase, bạn cần có 2 file google-services.json
riêng cho Dev và Live:
app/src/dev/google-services.json
app/src/live/google-services.json
Cấu hình tự động chọn file Firebase trong build.gradle
:
gradleCopyEditandroid.applicationVariants.all { variant ->
def fileName = variant.name.contains("dev") ? "google-services-dev.json" : "google-services-live.json"
def filePath = "$projectDir/app/src/${variant.flavorName}/$fileName"
variant.mergeResources.doLast {
copy {
from filePath
into "$buildDir/intermediates/merged_res/${variant.dirName}/google-services.json"
}
}
}
6. Tích hợp CI/CD để build theo môi trường
Nếu bạn sử dụng GitHub Actions, GitLab CI/CD hoặc Jenkins, có thể tự động build APK theo môi trường:
yamlCopyEdit- name: Build Dev APK
run: ./gradlew assembleDevDebug
- name: Build Live APK
run: ./gradlew assembleLiveRelease
Kết luận
Bằng cách sử dụng Build Variants, Product Flavors, resource files riêng biệt, và Firebase cấu hình động, bạn có thể dễ dàng quản lý môi trường Dev và Live trên Android Studio.
Last updated