阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680
本篇文章将继续从CLASS_ISPREVERIFIED实战来介绍热修复设计:
一、前言
本文将解决两个问题。
- 怎么将修复后的Bug类打包成dex
- 怎么将外部的dex插入到ClassLoader中
二、建立测试Demo
2.1 目录结构

2.2 源码
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="小喵叫一声"/>
</RelativeLayout>
MainActivity.class
package com.aitsuki.bugfix;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import com.aitsuki.bugfix.animal.Cat;
public class MainActivity extends AppCompatActivity {
private Cat mCat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCat = new Cat();
}
public void click(View view) {
Toast.makeText(this, mCat.say(),Toast.LENGTH_SHORT).show();
}
}
Cat.class
package com.aitsuki.bugfix.animal;
/**
* Created by AItsuki on 2016/3/14.
*/
public class Cat {
public Stri