類似淘寶/京東 APP,根據節日 (春節、雙十一、聖誕等) 自動切換主題色調、Banner 圖、裝飾元素,**無需發版更新 APK**。
{
"theme": {
"type": "SPRING_FESTIVAL", // 主題類型標識
"version": "2024.1.1", // 配置版本號
"startTime": "2024-02-01 00:00", // 生效時間
"endTime": "2024-02-15 23:59", // 失效時間
"resources": {
"mainColor": "#FF0000",
"bannerUrl": "https://cdn.xxx.com/spring_banner_2024.jpg",
"iconPackUrl": "https://cdn.xxx.com/spring_icons.zip"
}
}
}
// 啟動/恢復時檢查主題更新
public void checkThemeUpdate() {
api.getThemeConfig(new Callback() {
@Override
public void onSuccess(ThemeConfig config) {
if (config.isValidNow() && config.isNewerThanLocal()) {
downloadResources(config); // 下載圖片/圖標包
applyTheme(config); // 應用顏色/佈局
saveLocalConfig(config); // 持久化
}
}
});
}
| 資源類型 | 存儲位置 | 更新方式 |
|---|---|---|
| 主題色值/佈局參數 | SharedPreferences / DataStore | 配置接口直接下發 |
| 大圖 Banner | 磁盤緩存 (Glide/Picasso 自動管理) | URL 變更觸發重新加載 |
| 複雜裝飾包 (動畫/字體/圖標集) | 內部存儲 /assets 或下載解壓目錄 | 下載 Zip → 解壓 → 原子替換目錄 |
attr/themePrimaryColor,佈局引用 ?attr/themePrimaryColor,運行時切換 ContextThemeWrapper。activity_main_spring.xml),setContentView() 切換或 ViewStub 延遲加載。startTime/endTime,過期自動切回默認。核心思想:**後台佔據主導權**,客户端做「薄邏輯」——下載、校驗、應用、回滾。將節日營銷活動從發版週期中解耦,實現運營靈活投放。