liujingxing/XmlClassGuard

Data Binding <data>标签数据下的引用路径不会被重命名

est7 opened this issue · 6 comments

est7 commented

Data Binding 标签数据下的引用路径不会被重命名,期待更新

正常情况下,data标签下类的不会混淆,应该是你的些类跟要混淆类在同一包下了,移出来就好,具体看XmlClassGuard都会混淆哪些类

正常情况下,data标签下类的不会混淆,应该是你的些类跟要混淆类在同一包下了,移出来就好,具体看XmlClassGuard都会混淆哪些类

大佬,如果data标签里引用了当前布局对应的activity或者fragment,那么这个是必定会混淆的。期待老哥能更新下。

正常情况下,data标签下类的不会混淆,应该是你的些类跟要混淆类在同一包下了,移出来就好,具体看XmlClassGuard都会混淆哪些类

大佬,如果data标签里引用了当前布局对应的activity或者fragment,那么这个是必定会混淆的。期待老哥能更新下。

我先看看,可以的话就安排

正常情况下,data标签下类的不会混淆,应该是你的些类跟要混淆类在同一包下了,移出来就好,具体看XmlClassGuard都会混淆哪些类

大佬,如果data标签里引用了当前布局对应的activity或者fragment,那么这个是必定会混淆的。期待老哥能更新下。

我先看看,可以的话就安排

感谢大佬更新,不过这个还有点小问题,像这种情况引用的没有替换到

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="user"
            type="com.ljx.base.User" />

        <import type="com.ljx.example.test.Book" />

        <import type="com.ljx.example.test.StringUtil" />

    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".activity.MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text='@{StringUtil.isEmpty("Test")?"Test is Empty":"Test is not Empty"}'
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

处理后的

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="user"
            type="di.D" />

        <import type="dj.E" />

        <import type="dj.F" />

    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".activity.MainActivity">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text='@{StringUtil.isEmpty("Test")?"Test is Empty":"Test is not Empty"}'
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

xml-class-mapping

dir mapping:
	com.ljx.example -> e
	com.ljx.example.activity -> dh
	com.ljx.base -> di
	com.ljx.example.test -> dj
	com.ljx.example.fragment -> dk
	com.ljx.example.pre -> dl

class mapping:
	com.ljx.example.AppHolder -> e.B
	com.ljx.example.activity.MainActivity -> dh.C
	com.ljx.base.User -> di.D
	com.ljx.example.test.Book -> dj.E
	com.ljx.example.test.StringUtil -> dj.F
	com.ljx.example.fragment.LoginFragment -> dk.G
	com.ljx.example.fragment.UserFragment -> dk.H
	com.ljx.example.pre.CustomCheckBoxPreference -> dl.I
	com.ljx.example.activity.LoginActivity -> dh.J
	com.ljx.example.TestInnerClass -> e.K
	com.ljx.example.test.Test -> dj.L

下个版本更新

1.2.2已更新