AndFix热修复Demo

本文介绍如何使用AndFix实现Android应用的热更新,包括生成mapping文件、制作补丁包及安装流程。通过实际案例展示了如何修改按钮点击事件的代码来更新应用的部分功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AndFixDemo

  1. 打第一个需要修复的版本的时候,需要你自己保存生成的mapping.txt文件,一般生成的mapping文件是在
    AndfixTestDemo/app/build/outputs/mapping/release文件夹
  2. 然后做你自己的修改,修改button点击事件中的代码,可以修改toast的内容,或者actionbar的标题,比如:
    getSupportActionBar().setTitle("22222");

    Toast.makeText(MainActivity.this,"yes you make it 2222222,current sdk version is "+Build.VERSION.SDK_INT,Toast.LENGTH_SHORT).show();

  3. 第二个版本的时候,需要在progurd-rule.pro文件中,加入一行,后面的路径换成你第一步保存的路径:然后打包生成新版本的apk文件
    -applymapping /Users/tang/Code/apkpatch/mapping.txt

  4. apkpatch工具生成patch文件:
    语法:

    apkpatch -f <new> -t <old> -o <output> -k <keystore> -p <***> -a <alias> -e <***>
    -a,--alias <alias>     keystore entry alias.
    -e,--epassword <***>   keystore entry password.
    -f,--from <loc>        new Apk file path.
    -k,--keystore <loc>    keystore path.
    -n,--name <name>       patch name.
    -o,--out <dir>         output dir.
    -p,--kpassword <***>   keystore password.
    -t,--to <loc>          old Apk file path.

    这是我的:

    ./apkpatch.sh  -f /Users/tang/Code/apkpatch/未命名文件夹/app-release_new.apk  -t /Users/tang/Code/apkpatch/未命名文件夹/app-release_old.apk -o /Users/tang/Code/apkpatch/out/ -k /Users/tang/Documents/PhoneSecret/android/SDPApp_mvp/GradleRelease/keyStore/xxxxKey.jks  -p xxxxx -a xxxx  -e xxxxx

    文件生成后重命名为:out.apatch

  5. 先安装第一个版本的apk,点击button,观察效果,这时候是第一版的效果。
    之后push补丁文件到
    Environment.getExternalStorageDirectory().getAbsolutePath()返回的路径,安卓版本不同返回的路径也不同。
    Android6.0上的路径是:/storage/emulated/0/

    所以push命令如同:

    adb push /Users/tang/Code/apkpatch/out/out.apatch storage/emulated/0/
  6. 点击button,观察效果,toast已经改变,退出后再进入Actionbar也已经改变。

  7. Andfix目前很不稳定,坑很多,并且是不确定的坑,慎入。。

附源码地址:https://github.com/TangHuaiZhe/AndFixDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值