From 49cab9e0ff79f016c51aea0da11c5be45c38e36f Mon Sep 17 00:00:00 2001 From: tomystang Date: Fri, 14 Oct 2016 16:33:03 +0800 Subject: [PATCH] [tinker] Copy pre-generated patch dex to tempPatchedDexes directory. --- .../tencent/tinker/build/decoder/DexDiffDecoder.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java b/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java index b674579a..fa32385f 100644 --- a/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java +++ b/tinker-build/tinker-patch-lib/src/main/java/com/tencent/tinker/build/decoder/DexDiffDecoder.java @@ -17,6 +17,8 @@ package com.tencent.tinker.build.decoder; +import com.google.common.io.Files; + import com.tencent.tinker.android.dex.ClassDef; import com.tencent.tinker.android.dex.Dex; import com.tencent.tinker.android.dex.DexFormat; @@ -69,7 +71,7 @@ */ public class DexDiffDecoder extends BaseDecoder { private static final String TEST_DEX_NAME = "test.dex"; - private static final String STUBMODE_PATCH_DEX_NAME = "changed_classes.dex"; + private static final String PREGENERATED_PATCH_DEX_NAME = "changed_classes.dex"; private final InfoWriter logWriter; private final InfoWriter metaWriter; @@ -282,14 +284,18 @@ private void generateStubModePatchDex() throws IOException { // Write constructed stub mode patch dex to file and record it in meta file. final String dexMode = config.mDexRaw ? "raw" : "jar"; - final File dest = new File(config.mTempResultDir + "/" + STUBMODE_PATCH_DEX_NAME); + final File dest = new File(config.mTempResultDir + "/" + PREGENERATED_PATCH_DEX_NAME); FileDataStore fileDataStore = new FileDataStore(dest); dexBuilder.writeTo(fileDataStore); + final File tempPreGeneratedPatchDexPath = new File(config.mOutFolder + File.separator + TypedValue.DEX_TEMP_PATCH_DIR + File.separator + "pre-generated"); + ensureDirectoryExist(tempPreGeneratedPatchDexPath); + Files.copy(dest, new File(tempPreGeneratedPatchDexPath, PREGENERATED_PATCH_DEX_NAME)); + final String md5 = MD5.getMD5(dest); - String meta = STUBMODE_PATCH_DEX_NAME + "," + "" + "," + md5 + "," + md5 + "," + 0 + String meta = PREGENERATED_PATCH_DEX_NAME + "," + "" + "," + md5 + "," + md5 + "," + 0 + "," + 0 + "," + dexMode; Logger.d("\nPre-generated patch dex: %s, size:%d", dest.getAbsolutePath(), dest.length());