重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
QuickPatch項目地址:
創新互聯公司專注于平川網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供平川營銷型網站建設,平川網站制作、平川網頁設計、平川網站官網定制、成都小程序開發服務,打造平川網絡公司原創品牌,更為您提供平川網站排名全網營銷落地服務。
https://gitee.com/egg90/QuickPatch 和 https://github.com/eggfly/QuickPatch 同步更新
類似于美團的Robust插樁熱修復,但是代碼可讀性比較強,還在繼續完善,todo list在項目README里
年輕人的第一個Android插樁熱修復框架
基于函數插樁,兼容性好(Android版本升級不需要做修改),支持熱更新無需重啟app,參考了美團的Robust插樁熱修復框架,精簡了很多實現細節,代碼可讀性高
簡單地講,就是通過編譯時在每個函數的頭部插入一個if判斷和一個proxy代理,就可以在運行時動態替換實現,無需重啟。代碼如下:
protected void onCreate(Bundle savedInstanceState) {
if (_QPatchStub != null) {
// _QPatchStub.proxy() will check method existance and call it
MethodProxyResult proxyResult = _QPatchStub.proxy(this, "onCreate", "(Landroid/os/Bundle;)V", new Object[]{savedInstanceState});
if (proxyResult.isPatched) {
return;
}
}
// origin implementation below
super.onCreate(savedInstanceState);
// ...
}
./gradlew gradleplugin:uploadArchives # 編譯插樁插件
./gradlew app:installDebug # 使用插件編譯app代碼并插樁