// StoreConfig最常見的作用是配置數據庫名字 。也可以配置存儲模式、加密等高級需求 。StoreConfig config = StoreConfig.newDefaultConfig(DB_NAME_FORM_STORE);// RdbOpenCallback用于定義創建數據庫、升級數據庫結構版本等時機的回調 。RdbOpenCallback callback = new FormStoreOpenCallback(context);DatabaseHelper helper = new DatabaseHelper(context);// RdbStore是數據庫的封裝類,最終的增刪改查操作都通過它來進行 。RdbStore store = helper.getRdbStore(config, CURRENT_VERSION, callback);具體的增刪改查操作就不一一列舉了 。
數據更新前面聲明卡片一節提到了config.json中,updateEnabled、updateDuration定義了卡片的數據更新機制 。
其中updateEnabled用于指定是否通過系統來自動更新卡片數據,如果希望由應用自身觸發數據更新,這個可以設置為false 。優酷卡片的場景是希望系統能夠自動更新卡片數據的,所以設為了true 。
在updateEnabled設為true的情況下,updateDuration才有意義 。updateDuration用于指定更新的時間間隔 。鴻蒙系統還支持固定時間更新,通過指定scheduledUpateTime來設置更新時間 。updateDuration和scheduledUpateTime只能選擇其中一種方式 。
優酷卡片選擇了用updateDuration指定更新間隔 。為了避免將來使用卡片的用戶多了,對服務端產生過大的壓力,更新間隔被控制在4小時,這樣用戶在上午、下午、晚上等不同時段去看卡片時,內容都會有更新 。
但是有些情況下,優酷卡片自身的邏輯也會更新卡片數據,所以為了避免兩種更新策略沖突而導致更密集的更新,或者長時間不更新,updateDuration被指定為1,即每半小時系統就會調用一次onUpdateForm() 。在onUpdateForm()中,會判斷上一次實際發生更新的時間,使更新間隔保持在4小時左右 。
容錯處理考慮到一些極端情況,例如用戶安裝優酷后,在沒有網絡的情況下就添加了桌面卡片 。此時卡片的數據請求是沒有返回的,同時由于剛安裝,也沒有緩存數據,所以卡片展示不出任何數據,只有灰色的打底圖作為背景 。此時如果點擊卡片,也沒有任何視頻信息,也就無法跳轉到某個特定視頻的播放頁,只能顯示一個加載失敗的提示,等用戶網絡恢復后,通過刷新得到有效數據 。
空白卡片點擊卡片后的空白頁面展望現在優酷鴻蒙版的桌面卡片已經隨著鴻蒙系統的發布,正式上線了 。在鴻蒙系統的手機上,從華為應用市場安裝的優酷主客就已經附帶了優酷卡片的能力 。
由于這是一個全新的開發技術棧,早期發布的應用肯定會有一些改進空間 。從現在看來主要有以下一些方面:
- 性能
由于數據請求和埋點用到了JS庫,并且在WebView中運行,這使得運行時效率比Java要低,還要處理WebView與外界的交互,對性能有較大影響 。雖然已經有了一些措施來減少這方面的影響,但是后續還是需要繼續挖掘潛力 - 監控
后續還需要補足JS側崩潰等信息收集的能力 。 - 線上配置能力
優酷主客可以通過各種遠程配置平臺下發各種配置信息 。而鴻蒙上由于體積限制無法自帶相關的庫 。今后需要考慮使用其他方式實現遠程配置能力 。
推薦閱讀
- 貓生完一個月又懷孕了
- 狗主人能不能碰剛生產的狗狗
- 金毛生產前征兆?金毛生產前有什么征兆
- 金毛生產前準備什么?金毛生產需要準備什么東西
- 貓咪鼻子干是怎么回事
- 狗下崽為什么不能看?狗生產不能看?
- 火影ol怎么手機玩,為什么沒能誕生《原神》
- 雙子大廈怎么打,生死狙擊雙子大廈通關打法
- 藝術字體logo在線生成器 藝術字體生成器在線制作
- 我來分享微信APP查找生成年度報告數據入口的簡單操作。
