阿里SopHix热修复框架
2015年以來,Android開發領域里對熱修復技術的討論和分享越來越多,同時也出現了一些不同的解決方案,如QQ空間補丁方案、阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner熱更新)和阿里最新出品Sophix.它們在原理各有不同,適用場景各異。不過從技術上來說多數熱修復框架是基于ClassLoader加載機制。下面是常見熱修復框架的比較。
開通熱修復服務
讀者可以打開Sophix熱修復的官網:Sophix官網1、注冊阿里云賬號,選擇移動熱修復服務 ,選擇之后需要開通此功能,點擊立即開通即可。
2、打開管理控制臺,點擊右上角創建APP。?
3、點擊Hoxfix列表android版本的app后面的管理即可查看基本信息(AppId、AppSecret和密鑰)。
本地接入熱修復服務
1,添加依賴庫和包
打開項目的app的build.gradle文件,添加maven倉庫地址和hotfix庫依賴:
注:如果項目中也依賴其它阿里系SDK,可能會同時依賴了utdid這個SDK,為了避免沖突可以這樣。
dependencies {compile ('com.aliyun.ams:alicloud-android-hotfix:3.1.0') {exclude(module:'alicloud-android-utdid')} }2,AndroidManifest相關配置
在AndroidManifest配置文件中添加如下配置:
在application標簽下添加如下信息:
1 <meta-data 2 android:name="com.taobao.android.hotfix.IDSECRET" 3 android:value="AppId" /> 4 <meta-data 5 android:name="com.taobao.android.hotfix.APPSECRET" 6 android:value="AppSecret" /> 7 <meta-data 8 android:name="com.taobao.android.hotfix.RSASECRET" 9 android:value="RSA密鑰" />3,在Application中初始化Sophix。
initialize的調用應該盡可能的早,必須在Application.attachBaseContext()或者Application.onCreate()的最開始進行SDK初始化操作,否則極有可能導致崩潰。而查詢服務器是否有可用補丁的操作可以在后面的任意地方。
例如:
記得在AndroidManifest中使用我們自己的Application。
生成補丁并上傳到控制臺
1,為了簡單,我們需要生成兩個apk,兩個apk做一個簡單的內容區分即可。將第一個命名為old.apk,代碼如下:
1 public class MainActivity extends AppCompatActivity { 2 3 private TextView mTextView; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 mTextView = (TextView) findViewById(R.id.textView); 11 mTextView.setText("版本修復前"); 12 13 } 14 }將第二個命名為new.apk,內容如下:
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv= findViewById(R.id.fix_text);tv.setText("版本修復后數據...");Toast.makeText(this,"版本修復完成",Toast.LENGTH_LONG).show();} }2,生成補丁的話需要下載阿里的打補丁工具SophixPatchTool,選擇對應的平臺,然后分別選擇兩次打包生成的apk,點擊go即可。
補丁生成后,上傳到阿里云平臺,版本信息和代碼的versionName對應。?
?
然后點擊上傳補丁即可。?
?
?
在選擇正式發布之前,官方建議您先進行本地測試。下載hotfixdebug工具安裝后,填寫包名,點擊連接應用,然后掃描補丁詳情中的二維碼下載補丁。或者將補丁包放到手機sdcard,填寫絕對路徑也是可以的。?
?
?
總結
以上是生活随笔為你收集整理的阿里SopHix热修复框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android热修复之 - 收集崩溃信息
- 下一篇: Android P 调用隐藏API限制原