首先贴出Mackkill博主发表的使用详细步骤地址 http://blog.csdn.net/mackkill/article/details/51752687
在这里我把一些使用心得和注意事项做一个总结供大家参考。
注意事项 :
第一种
在这里我把一些使用心得和注意事项做一个总结供大家参考。
注意事项 :
1.因为里面用到了自定义的application,所以务必在AndroidManifest.xml文件中修改引用的application。
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:name=".MainApplication" android:theme="@style/AppTheme" >
2.如果是采用从内存卡读取补丁文件务必打开内存卡读写权限(我在这里被坑了一上午)
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
3.原博文中有个特别强调的点preVersionPath
preVersionPath,这个值在你要做补丁文件时赋的值是上一个versionCode的值。比如修改代码前versionCode是1,你修改代码后算是一个新的版本了,必须要修改versionCode为更高的值,假如你给versionCode赋值为2了,那么此时你给preVersionPath赋值就是1用来制作补丁文件
第一种从Assets里取出补丁:
原博文中已经有这种方法的详细介绍。这里我只说一个注意点。
Assets
文件夹的创建位置。是和Java和res这两个文件夹同级的地方创建,然后把生成的patch.jar文件拷贝到里面
第二种从内存卡里面取出补丁文件:
首先添加内存卡读写权限,然后在自定义的application中修改读取补丁文件的方式,把生成的patch.jar
文件拷贝到内存卡根目录(在我的电脑中直接打开手机存储复制进去即可)
/** * Created by Mr_su on 2016/7/11. */ public class MainApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); //需要打补丁时开启 // RocooFix.init(this); //测试从assets文件夹读取补丁 // RocooFix.initPathFromAssets(this, "patch.jar"); String absolutePath = Environment.getExternalStorageDirectory().getAbsolutePath(); String path=absolutePath+"/patch.jar"; RocooFix.applyPatch(this,path); } }