@AndroidAopModifyExtendsClass - FlyJingFish/AndroidAOP GitHub Wiki
👆English👆
简述
@AndroidAopModifyExtendsClass(value)
这个功能比较简单,修改类的继承类,value
位置填写要修改的类的全名,被注解的类就是修改后的继承类。
另外填写类名如果是内部类时不使用$
字符,而是用.
⚠️⚠️⚠️但需要特别注意的是修改后的继承类不可以继承被修改的类,修改后的类的继承类一般都设置为修改前的类的继承类
使用示例
如下例所示,就是要把 AppCompatImageView
的继承类替换成 ReplaceImageView
应用场景:非侵入式地实现监控大图加载的功能
@AndroidAopModifyExtendsClass("androidx.appcompat.widget.AppCompatImageView")
public class ReplaceImageView extends ImageView {
public ReplaceImageView(@NonNull Context context) {
super(context);
}
public ReplaceImageView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public ReplaceImageView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setImageDrawable(@Nullable Drawable drawable) {
super.setImageDrawable(drawable);
//做一些监测或者再次修改
}
}
使用启示
1、在类的继承关系中修改继承类可以在中间重写一些方法,如此一来可以在中间处理一下原有逻辑,也是对对象的某些方法被调用的监测