public class App extends TinkerApplication {
public App() {
super(ShareConstants.TINKER_ENABLE_ALL, "com.xxx.xxx.AppLike",//com.xxx.xxx.AppLike改为你自己的AppLike
"com.tencent.tinker.loader.TinkerLoader", false);
}
}
public class AppLike extends DefaultApplicationLike {
public static final String TAG = "Tinker.AppLike";
public AppLike(Application application, int tinkerFlags,
boolean tinkerLoadVerifyFlag, long applicationStartElapsedTime,
long applicationStartMillisTime, Intent tinkerResultIntent) {
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
}
@Override
public void onCreate() {
super.onCreate();
//初始化BuglyId与模式
Bugly.init(getContext(), Constants.APP_BUGLY_ID, true);
// 设置开发设备,默认为false,上传补丁如果下发范围指定为“开发设备”,需要调用此接口来标识开发设备
Bugly.setIsDevelopmentDevice(getApplication(), true);
// 补丁回调接口
Beta.betaPatchListener = new BetaPatchListener() {
@Override
public void onPatchReceived(String patchFile) {
//Toast.makeText(getApplication(), "补丁下载地址" + patchFile, Toast.LENGTH_SHORT).show();
}
@Override
public void onDownloadReceived(long savedLength, long totalLength) {
// Toast.makeText(getApplication(),
// String.format(Locale.getDefault(), "%s %d%%",
// Beta.strNotificationDownloading,
// (int) (totalLength == 0 ? 0 : savedLength * 100 / totalLength)),
// Toast.LENGTH_SHORT).show();
}
@Override
public void onDownloadSuccess(String msg) {
Toasty.success(getApplication(), "补丁包下载成功").show();
}
@Override
public void onDownloadFailure(String msg) {
Toasty.error(getApplication(), "补丁下载失败").show();
}
@Override
public void onApplySuccess(String msg) {
Toasty.success(getApplication(), "补丁应用成功").show();
}
@Override
public void onApplyFailure(String msg) {
Toasty.error(getApplication(), "补丁应用失败").show();
}
@Override
public void onPatchRollback() {
}
};
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public void onBaseContextAttached(Context context) {
super.onBaseContextAttached(context);
MultiDex.install(context);
Beta.installTinker(this);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {
getApplication().registerActivityLifecycleCallbacks(callbacks);
}
}
项目根目录下的build.gradle文件配置如下:
项目根目录下的gradle/wrapper/gradle-wrapper.properties文件配置如下:
App目录下的build.gradle文件配置如下:
App目录下的tinker-support.gradle文件配置如下:
Application和DefaultApplicationLike:
AndroidManifest.xml