@Override
    protected boolean execute(
            CtClass inputClass,
            String inputClassName,
            FieldAccess fieldAccess)
            throws CannotCompileException, NotFoundException {

        String insnClassName = fieldAccess.getClassName();
        String insnSignature = fieldAccess.getSignature();
        String insnFieldName = fieldAccess.getFieldName();

        if (!isMatchFieldSource(insnClassName, insnSignature, insnFieldName)
                || !meetConditions(fieldAccess)) {
            return false;
        }

        String target = getTarget();
        String proceed = fieldAccess.isWriter() ? "$proceed($$);" : "$_=$proceed($$);";
        String statement = ""
                + "{"
                + (isAsBefore() ? target : "")
                + proceed
                + (isAsAfter() ? target : "")
                + "}";

        String replacement = replaceInstrument(inputClassName, fieldAccess, statement);

        Logger.warning(getPrettyName() + " by: " + replacement
                + " at " + inputClassName + ".java" + ":" + fieldAccess.getLineNumber());
        return true;
    }
Transform that inserts custom code at the pointcut where field is read or written.
plugin/src/main/groovy/com/didichuxing/tools/droidassist/transform/insert/FieldAccessInsertTransformer.java