sophix 热修复操作步骤: 1 执行assebleDongmanRelease ,生成apk后,copy到指定目录,如 project目录下,并命名为old.apk 2 修改代码后,执行assebleDongmanRelease ,生成apk后,copy到指定目录,如 project目录下,并命名为new.apk 3 使用sophix补丁工具生成补丁,参考链接https://help.aliyun.com/document_detail/93826.html?spm=a2c4g.11186623.6.582.2d3a5cbcfWskBA 4 上传补丁(sophix-patch.jar)到server 注意事项: old.apk必须和线上发布的代码保持一致 1 如果是修复加固包,需要使用加固前的old.apk,new.apk,进行 补丁的生成(已验证ok) 2 patch包大小限制为30M 3 用工具生成补丁时,最后选择"强制冷启动" ,避免因为某些机型不支持即使修复而引发其他问题,并且取消 "检查初始化"选项 sophix遇到问题可参考:https://help.aliyun.com/knowledge_list/51422.html?spm=a2c4g.11186623.6.586.6b2c780d4S1sWM 验证Patch是否Merge成功: 日志如下: standard input):23326:V/Sophix.PatchManager( 5265): addPatch src patch: /storage/emulated/0/sophix-patch.jar (standard input):23368:V/Sophix.PatchManager( 5265): addPatch dest patch: sophix-patch.jar (standard input):23369:I/Sophix.GlobalProperty( 5265): addPatch update patch version: -1 (standard input):23381:D/Sophix.PatchManager( 5265): loadPatch patchFile: sophix-patch.jar (standard input):23382:W/Sophix.PatchManager( 5265): loadPatch skip verifyPatchLegal in debug mode (standard input):23408:D/Sophix.CrashHandler( 5265): set crash number: 0 (standard input):23415:I/Sophix.PatchManager( 5265): loadPatch start patch dex file (standard input):23416:D/Sophix.DexManager( 5265): patch supportHotfix: false (standard input):23419:V/Sophix.ColdDexManager( 5265): init plain app (standard input):23422:D/Sophix.ColdDexManager( 5265): isOptFileValid file: classes.dex.odex (standard input):23423:D/Sophix.ColdDexManager( 5265): isOptFileValid odex not exist (standard input):23424:I/Sophix.PatchManager( 5265): loadPatch wait preload dex file complete (standard input):23425:I/Sophix.ColdDexManager( 5265): doOptPatch start (standard input):23426:D/Sophix.ColdDexManager( 5265): extractAllBaseDexFiles start (standard input):23431:D/Sophix.PatchManager( 5265): clearCrashHandler clear crash flag (standard input):24105:D/Sophix.ColdDexManager( 5265): optProcessedBaseDexFiles start (standard input):24106:I/Sophix.ColdDexManager( 5265): preloadDex start classes.dex (standard input):24130:D/dalvikvm( 5265): DEX prep '/data/data/com.naver.linewebtoon.cn/files/sophix/patch/classes.dex': copy in 0ms, rewrite 196ms (standard input):24139:I/Sophix.ColdDexManager( 5265): preloadDex end time consumed(ms): 208 (standard input):24154:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication; (standard input):24155:V/Sophix.ColdDexManager( 5265): exclude Lcom/taobao/sophix/SophixApplication; (standard input):24156:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication$1; (standard input):24157:D/dalvikvm( 5265): Trying to load lib /data/app-lib/com.naver.linewebtoon.cn-1/libsophix.so 0x424dee38 (standard input):24171:D/dalvikvm( 5265): Added shared lib /data/app-lib/com.naver.linewebtoon.cn-1/libsophix.so 0x424dee38 (standard input):24172:D/Sophix.Native( 5265): JNI_OnLoad (standard input):24173:V/Sophix.Native( 5265): Class lookup: classes=4 slots=8 (50% occ) alloc=104 total=1 max=1 (standard input):24178:V/Sophix.Native( 5265): munmap(0x6b573000, 2486180) succeeded (standard input):24179:V/Sophix.Native( 5265): munmap(0x6ab6f000, 52768) succeeded (standard input):24180:I/Sophix.ColdDexManager( 5265): preloadDex start classes3.dex (standard input):24838:D/dalvikvm( 5265): DEX prep '/data/data/com.naver.linewebtoon.cn/files/sophix/patch/classes3.dex': copy in 38ms, rewrite 2841ms (standard input):24880:I/Sophix.ColdDexManager( 5265): preloadDex end time consumed(ms): 3101 (standard input):24882:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication; (standard input):24883:V/Sophix.ColdDexManager( 5265): exclude Lcom/taobao/sophix/SophixApplication; (standard input):24884:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication$1; (standard input):24885:V/Sophix.Native( 5265): Class lookup: classes=4 slots=8 (50% occ) alloc=104 total=1 max=1 (standard input):24943:V/Sophix.Native( 5265): munmap(0x6ca44000, 8378200) succeeded (standard input):24944:V/Sophix.Native( 5265): munmap(0x6aeb3000, 52768) succeeded (standard input):24945:I/Sophix.ColdDexManager( 5265): preloadDex start classes2.dex (standard input):25320:D/dalvikvm( 5265): DEX prep '/data/data/com.naver.linewebtoon.cn/files/sophix/patch/classes2.dex': copy in 122ms, rewrite 4061ms (standard input):25340:I/Sophix.ColdDexManager( 5265): preloadDex end time consumed(ms): 4452 (standard input):25341:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication; (standard input):25342:V/Sophix.ColdDexManager( 5265): exclude Lcom/taobao/sophix/SophixApplication; (standard input):25343:V/Sophix.ColdDexManager( 5265): exclude Lcom/naver/linewebtoon/sophix/SophixStubApplication$1; (standard input):25344:V/Sophix.Native( 5265): Class lookup: classes=4 slots=8 (50% occ) alloc=104 total=1 max=1 (standard input):25347:V/Sophix.Native( 5265): munmap(0x6e0e3000, 7888604) succeeded (standard input):25348:V/Sophix.Native( 5265): munmap(0x66ebb000, 52768) succeeded (standard input):25349:I/Sophix.ColdDexManager( 5265): preloadDex start classes1.dex (standard input):25547:D/dalvikvm( 5265): DEX prep '/data/data/com.naver.linewebtoon.cn/files/sophix/patch/classes1.dex': copy in 57ms, rewrite 3602ms (standard input):25554:I/Sophix.ColdDexManager( 5265): preloadDex end time consumed(ms): 3873 (standard input):25555:V/Sophix.NetworkManager( 5265): commit PatchStat{id='3fc82d0a-80f8-4632-9546-463ab8b08769-1', path=1, status='181', version='-1', cost=16536, genre=5, dex=18805752, load=0}
阿里Sophix 集成
最新推荐文章于 2020-05-16 18:04:52 发布