華為 AppGallery Connect 提供了一個遠程配置的服務,通過遠程配置,應用即可無需升級,也可以在云端靈活修改應用的行為和外觀,從而快速回應用戶的需求,今天就來教大家如何接入 AppGallery Connect 的遠程配置服務,
1、在 AGC 上開通遠程配置并創建配置項:
在我的專案 下選擇你的開發專案,在增長下面,找到遠程配置服務,點擊開通:
沒有 Android 專案的話,可以先自己創建一個,

開通后我們就可以進行配置項的設定了,
新建配置項時我們可以看到兩個頁簽,配置項管理和配置條件管理,在配置項管理中,我們可以創建需要通過遠程配置做修改的應用設定項,
1. 首先單擊“添加配置項”,添加新的配置項內容,配置項可以配置多個條件值,即不同條件下,設定不同值,而這個配置條件值我們后面會在配置條件管理中進行講解,

2. 單擊“保存配置項”保存當前配置,
3. 單擊“發布”使當前配置和條件生效,若單擊“取消”將舍棄對配置和條件的更改,
4. 在“配置項管理”頁簽下,可以查看所有配置項串列,
5. 點擊配置項右上角的“操作”:您可以查看、修改、洗掉配置項,還可以通過復制方式快速添加配置項
在配置條件管理中,我們就可以對配置下發物件做條件管理,讓配置只下發到特定的用戶群,一共有9個不同的配置條件,具體每個條件的說明可以參考官方檔案,
2、在 Android 專案里集成 SDK
a) 集成 SDK
1、在專案級的 gradle 檔案中添加華為 Maven,即配置下面標紅的內容
buildscript {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
}
}
allprojects {
repositories {
google()
jcenter()
maven {url 'https://developer.huawei.com/repo/'}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2、打開應用級的 build.gradle 檔案,配置好云存盤的 SDK 和華為認證服務的 SDK,配置下面標紅的內容即可, 注意別落了上面的 agcp 插件
apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'
android {…..}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.huawei.agconnect:agconnect-remoteconfig:1.5.2.300'
}
b) 下載 json 檔案,并且配置默認存盤實體
1、在 AGC 界面上,選擇 我的專案 -> 專案設定–> 常規 下面,下載 agconnect-services.json 檔案到你的 Android 專案的 app 路徑下,

3、功能開發:
遠程配置的功能其實很簡單,最主要的就是通過 SDK 設定本地默認值與獲取云端最新的配置項內容,
1、設定本地默認設定
首先在工程的 res/xml 中增加一個遠程配置默認值的 xml 檔案,其中鍵值對為<value key="testkey">testvalue</value>,例如檔案 remote_config.xml,
檔案創建完后在代碼中呼叫 applyDefault 介面將檔案傳入來設定本地默認配置,
config.applyDefault(R.xml.remote_config);
或者直接在代碼中創建一個 map 型別的資料,將 map 傳入 applyDefault 也可以成功設定本地默認配置,
2、獲取資料后立刻生效
應用通過 SDK 獲取云端配置項后可以選擇立刻生效還是下次啟動后生效,首先是立刻生效
config.fetch().addOnSuccessListener(new OnSuccessListener<ConfigValues>() {
@Override
public void onSuccess(ConfigValues configValues) {
config.apply(configValues);
//使用配置值
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
}
});
首先呼叫 fetch 介面獲取云端的配置項,在獲取成功的回呼中我們可以直接呼叫 apply 介面將配置項立刻設定到應用中,
3、獲取資料后下次啟動生效
除了立刻生效外,我們可以選擇下次啟動再生效
ConfigValues last = config.loadLastFetched();
config.apply(last);
config.fetch().addOnSuccessListener(new OnSuccessListener<ConfigValues>() {
@Override
public void onSuccess(ConfigValues configValues) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
}
});
我們只需要呼叫 loadLastFetched 介面介面獲取到上次通過 fetch 介面下載下來的配置項資料,然后通過 apply 介面設定這些資料到應用中,
4、獲取引數值
在我們獲取了配置項后,如果我們需要將配置項一個個的取出來進行操作就需要呼叫 sdk 提供的一系列介面來獲取這個值,不同的介面可以獲取到不同型別的引數
Boolean
Boolean value = config.getValueAsBoolean("key");
Double
Double value = config.getValueAsDouble("key");
Long
Long value = config.getValueAsLong("key");
String
String value = config.getValueAsString("key");
Byte
byte[] value = config.getValueAsByteArray("key");
5、獲取全部
我們還可以一次性獲取全部的引數值
Map<String,Object> map = config.getMergedAll();
通過 getMergedAll 方法,我們就可以一次性獲取全部的本地默認值和云端引數值了,
6、重置引數值
最后,SDK 還給我們提供了重置引數的功能
config.clearAll();
通過 clearAll 方法,所有設定的默認值以及云端的引數值都將被重置,
云存盤服務開發指南:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-remoteconfig-introduction-0000001055149778
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/434486.html
標籤:Android
下一篇:Version 28 (intended for Android Pie and below) is the last version of the legacy support library
