企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
四、Tinker 封装与拓展 1、拷贝文件 将Demo 中提供的tinker 包下的所有文件及文件夹都拷贝到自己项目中。 ![](https://img.kancloud.cn/1e/d5/1ed5b92193fed941cbfff56ee16919d5_424x447.jpg) 这些文件其实就是Tinker 官方Demo 中的文件完全复制过来的,只是多加了一些注释。 简单说明下,这几个文件的作用: 1.SampleUncaughtExceptionHandler:Tinker 的全局异常捕获器。 2.MyLogImp:Tinker 的日志输出实现类。 3.SampleLoadReporter:加载补丁时的一些回调。 4.SamplePatchListener:过滤Tinker 收到的补丁包的修复、升级请求。 5.SamplePatchReporter:修复或者升级补丁时的一些回调。 6.SampleTinkerReport:修复结果(成功、冲突、失败等) 7.SampleResultService::patch 补丁合成进程将合成结果返回给主进程的类。 8.TinkerManager:Tinker 管理器(安装、初始化Tinker)。 9.TinkerUtils:拓展补丁条件判定、锁屏或后台时应用重启功能的工具类。 这些只是对Tinker 功能的拓展和封装罢了,都是可选的,但这些文件对项目的功能完善会有所帮助,建议加入到自己的项目中。如果你仅仅只是为了修复bug,而不做过多的工作(如:上传打补丁信息到服务器等),则无须理会这些文件的作用,当然你也可以自己封装。 对于这些自定义类及错误码的详细说明,请参考:「Tinker 官方Wiki:可选的自定义类」。 2、清单文件中添加服务 前面添加的文件中,有一个SampleResultService 文件,是四大组件之一,所以必须在清单文件中声明。 ``` <service android:name="com.lqr.tinker.service.SampleResultService" android:exported="false"/> ```