国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一步一步教你接入tinker 熱修復

2019-11-09 17:55:49
字體:
來源:轉載
供稿:網友
官方文檔:https://github.com/Tencent/tinker 下面我們按照官方文檔和這個里面的tinker-sample-android來進行集成Tinker。注意 說明,官方demo的使用https://github.com/Tencent/tinker/wiki/Tinker-接入指南里面的使用步驟詳解,注意: 官方demo導入的時候會報錯Error:Execution failed for task ':app:tinker一如何測試效果(debug版):

 1: 首先,把項目到as里面 。這個時候AndroidManifest文件的application的SampleApplication報錯不要管,直接下一步

  2: 打一個debug包

           gradle assembleDebug   這個時候你能看到 (這個目錄因為在gradle里面做了配置)然后把這個名字復制到工程下的 (注意,第二個箭頭處.text前面少了個R)3.修改一個地方(也就是我們要做的bug修復),然后使用生產差異的包:命令行    gradle tinkerPatchDebug  成功之后我們可以看到我們要的這個包了4.把導入手機中,手機路徑的話要注意下,項目mainactivity中用的是sd卡根目錄下,所以,    a.直接copy到手機對應目錄下,    b. 通過命令(這個是官網的)
    adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/
5,ok了,準備效果測試
點擊LOAD PATCH按鈕, 如果看到patch success, please restart process的toast,即可鎖屏或者點擊    KILL SELF按鈕就能看到效果了,

二 如何集成:

1.首先在項目的main build.gradle 下

buildscript {    dependencies {        classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.7')    }}demo里面高大上了下,是這么寫的                classpath "com.tencent.tinker:tinker-patch-gradle-plugin:${TINKER_VERSION}"    然后是在 gradle.properties(Project Properties) 里面 加上 TINKER_VERSION=1.7.7  ,

2.在你的app/build.gradle配置,這個可以查看官方demo的build.gradle文件

dependencies {    //optional, help to generate the final application     provided('com.tencent.tinker:tinker-android-anno:1.7.7')    //tinker's main Android lib    compile('com.tencent.tinker:tinker-android-lib:1.7.7') }......//這里省略了很多apply plugin: 'com.tencent.tinker.patch'具體的可以和官方相同了,一些簽名什么的細節的話就的和你的項目來修改

3.拷貝demo里面的非app下的MainActivity所有代碼

4.修改application

上面的定義相當于新建一個SampleApplication.java文件,也就是你的MyApplication,至于其他的一些初始化可以在這個class的oncreate()里面初始化

5.修改AndroidManifest..xml  

      a.  添加權限了         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>       b.然后是application,(以項目中的例子)            也就是<application
        android:name=".app.SampleApplication"       c. 注冊一個處理加載補丁結果的的service
<service    android:name=".service.SampleResultService"    android:exported="false"/>

6.相關主要api引用

        //加載修復的差異包
loadPatchButton.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        TinkerInstaller.onReceiveUpgradePatch(getApplicationContext(),                Environment.getExternalStorageDirectory().getAbsolutePath()                        + "/patch_signed_7zip.apk");    }});
//清除包cleanPatchButton.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        Tinker.with(getApplicationContext()).cleanPatch();    }});這個只是個小demo,真實的話修復包是通過后臺下載的,然后用戶鎖屏的時候開始合并,tinker 后臺的搭建 http://mp.weixin.QQ.com/s/eGt4Fc5yJjZB6rKaFz0NCQ
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇阳县| 枝江市| 德惠市| 宜州市| 田东县| 开原市| 丁青县| 新乡市| 南充市| 达日县| 房产| 筠连县| 庆云县| 云浮市| 无锡市| 徐州市| 广安市| 邵阳县| 和龙市| 廊坊市| 丰顺县| 吕梁市| 西和县| 保康县| 孝昌县| 文登市| 扎囊县| 成武县| 德安县| 眉山市| 石阡县| 宝丰县| 蒲江县| 临武县| 玉环县| 彰化县| 湖口县| 江西省| 舟曲县| 吉首市| 邢台市|