標籤:記錄 位元組 activiti tps 流程 系統通知 android 顏色 全域配置
我們的安卓開發最近研究了一下熱修複的功能,調研以後使用的是Tinker;這是開發小哥哥甩給我的Tinker文檔:https://github.com/Tencent/tinker/wiki
一、明確測試測試點
讓我們先看下Tinker簡介:Tinker是官方的Android熱補丁解決方案,它支援動態下發代碼、So庫以及資源,讓應用能夠在不需要重新安裝的情況下實現更新。當然,你也可以使用Tinker來更新你的外掛程式。So,可以理解為只要是修改代碼,.So庫檔案和資源檔能夠搞定的問題,我們都可以不再發包解決~那麼我們在結合一下我們安卓的apk檔案結構:1、java代碼檔案,2、資源檔(Res+assert),3.so檔案,如上測試案例就成功分為三個有效等價類別。
- 一切修改代碼的行為
- res是app內的icon,顏色和動畫等檔案
- assert是app內潛入的H5頁面的資源,字型等
- 直接被調用的C++代碼編寫的庫,包含靜態庫.a和動態庫.so,這些庫檔案一般不會修改,所以暫不納入測試範圍
同時wiki上明確了一些Tinker的已知問題:1、Tinker不支援修改AndroidManifest.xml,Tinker不支援新增四大組件(1.9.0支援新增非export的Activity);2、對於資源替換,不支援修改remoteView,例如transition動畫,notification icon以及案頭表徵圖,如上測試案例就成功分為兩個個無效等價類別。
- 不支援新增activiting
- 不支援註冊新的服務
- 不支援修改系統通知樣式
- 不支援修改案頭表徵圖
以上,明確了我們熱修複的測試點~
另附:開發考慮到了可能加入熱修複可能暫時不用,所有添加了開關功能,只有開關開啟的版本才能進行熱修複~開關也是要測的!
二、明確測試流程
- 開發童鞋在ftp伺服器上上傳一個包含bug的測試包,並且熱修複開關開啟
- 下載測試包到app
- 開發同學上傳path包(vision-1)到ftp伺服器,伺服器會記錄path路徑和版本號碼
- 冷啟動、查看是否修複
- 暖開機、查看是否修複
這段簡介在結合安卓apk安裝包檔案結構:
1. META-INF\ (註:Jar檔案中常可以看到);
2. res\ (註:存放資源檔的目錄) ;
3. AndroidManifest.xml (註:程式全域設定檔) ;
4. classes.dex (註:Dalvik位元組碼);
5. resources.arsc (註:編譯後的二進位資源檔)。
安卓熱修複測試思路