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
新闻热点
疑难解答