public static void pvs(View v, boolean fromRoot, boolean showFullName) {
        if (v == null) {
            return;
        }

        ViewParent p;
        if (!(v instanceof ViewParent)) {
            p = v.getParent();
        } else {
            p = (ViewParent) v;
        }

        // get root
        if (fromRoot) {
            while (p.getParent() != null) {
                // can not get child from ViewRootImpl -> break here.
                if (p.getParent().getClass().getName().equals("android.view.ViewRootImpl")) {
                    break;
                }
                p = p.getParent();
            }
        }

        logDebug(TAG_STRUCTURE, "%s", showFullName ? p.getClass().getName() : p.getClass().getSimpleName());

        doPvs(p, "", showFullName, 1);
    }
print hierarchy structure of view

@param v            view
@param fromRoot     print view structure from root
@param showFullName show full name of class
replugin-sample/plugin/plugin-demo1/app/src/main/java/com/qihoo360/replugin/sample/demo1/support/LogX.java