结构速查表
这里介绍了 DexKit 查询的结构组成,匹配器对象可以进行递归嵌套,一切条件都是可以选的。
查询相关
FindClass
| 字段名 | 类型 | 说明 |
|---|
| searchPackages | Collection<String> | 搜索的包名列表 |
| excludePackages | Collection<String> | 排除的包名列表 |
| ignorePackagesCase | Boolean | 是否忽略包名大小写 |
| searchIn | Collection<ClassData> | 在指定的类列表中搜索类 |
| findFirst | Boolean | 查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一 |
| matcher | ClassMatcher | 匹配条件 |
FindField
| 字段名 | 类型 | 说明 |
|---|
| searchPackages | Collection<String> | 搜索的包名列表 |
| excludePackages | Collection<String> | 排除的包名列表 |
| ignorePackagesCase | Boolean | 是否忽略包名大小写 |
| searchInClasses | Collection<ClassData> | 在指定的类列表中搜索字段 |
| searchInFields | Collection<FieldData> | 在指定的字段列表中搜索字段 |
| findFirst | Boolean | 查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一 |
| matcher | FieldMatcher | 匹配条件 |
FindMethod
| 字段名 | 类型 | 说明 |
|---|
| searchPackages | Collection<String> | 搜索的包名列表 |
| excludePackages | Collection<String> | 排除的包名列表 |
| ignorePackagesCase | Boolean | 是否忽略包名大小写 |
| searchInClasses | Collection<ClassData> | 在指定的类列表中搜索方法 |
| searchInMethods | Collection<MethodData> | 在指定的方法列表中搜索方法 |
| findFirst | Boolean | 查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一 |
| matcher | MethodMatcher | 匹配条件 |
BatchFindClassUsingStrings
| 字段名 | 类型 | 说明 |
|---|
| searchPackages | Collection<String> | 搜索的包名列表 |
| excludePackages | Collection<String> | 排除的包名列表 |
| ignorePackagesCase | Boolean | 是否忽略包名大小写 |
| searchIn | Collection<ClassData> | 在指定的类列表中搜索类 |
| matchers | Collection<StringMatchersGroup> | 查询分组列表 |
BatchFindMethodUsingStrings
| 字段名 | 类型 | 说明 |
|---|
| searchPackages | Collection<String> | 搜索的包名列表 |
| excludePackages | Collection<String> | 排除的包名列表 |
| ignorePackagesCase | Boolean | 是否忽略包名大小写 |
| searchInClasses | Collection<ClassData> | 在指定的类列表中搜索方法 |
| searchInMethods | Collection<MethodData> | 在指定的方法列表中搜索方法 |
| matchers | Collection<StringMatchersGroup> | 查询分组列表 |
匹配器相关
AccessFlagsMatcher
| 字段名 | 类型 | 说明 |
|---|
| modifiers | Int | 匹配的修饰符的 bit masks |
| matchType | MatchType | 匹配模式 |
AnnotationEncodeValueMatcher
IntRange
| 字段名 | 类型 | 说明 |
|---|
| min | Int | 最小值,默认为 0 |
| max | Int | 最大值,默认为 Int.MAX_VALUE |
NumberEncodeValueMatcher
| 字段名 | 类型 | 说明 |
|---|
| byteValue | Byte | 匹配的字节 |
| shortValue | Short | 匹配的短整型 |
| charValue | Char | 匹配的字符 |
| intValue | Int | 匹配的整型 |
| longValue | Long | 匹配的长整型 |
| floatValue | Float | 匹配的浮点型 |
| doubleValue | Double | 匹配的双精度浮点 |
OpcodesMatcher
| 字段名 | 类型 | 说明 |
|---|
| opCodes | Collection<Int> | 匹配的操作码对应的 Int 值 |
| opNames | Collection<String> | 匹配的操作码对应的名称,即 smali 语法中的名称 |
| matchType | OpCodeMatchType | 匹配模式 |
| size | IntRange | 该操作码总长度范围 |
StringMatcher
| 字段名 | 类型 | 说明 |
|---|
| value | String | 匹配的字符串 |
| matchType | StringMatchType | 匹配模式 |
| ignoreCase | Boolean | 是否忽略大小写 |
TargetElementTypesMatcher
AnnotationElementMatcher
AnnotationElementsMatcher
AnnotationEncodeArrayMatcher
AnnotationMatcher
AnnotationsMatcher
ClassMatcher
InterfacesMatcher
FieldMatcher
FieldsMatcher
MethodMatcher
MethodsMatcher
ParameterMatcher
ParametersMatcher
StringMatchersGroup
| 字段名 | 类型 | 说明 |
|---|
| groupName | String | 分组名称 |
| matchers | Collection<StringMatcher> | 该查询分组匹配对象所使用的字符串列表 |
UsingFieldMatcher
EncodeValueByte
EncodeValueShort
EncodeValueChar
EncodeValueInt
EncodeValueLong
EncodeValueFloat
EncodeValueDouble
EncodeValueString
EncodeValueNull
该对象无字段。
EncodeValueBoolean
枚举相关
AnnotationEncodeValueType
| 字段名 | 类型 | 说明 |
|---|
| ByteValue | Enum | 字节类型 |
| ShortValue | Enum | 短整型类型 |
| CharValue | Enum | 字符类型 |
| IntValue | Enum | 整型类型 |
| LongValue | Enum | 长整型类型 |
| FloatValue | Enum | 浮点类型 |
| DoubleValue | Enum | 双精度浮点类型 |
| StringValue | Enum | 字符串类型 |
| TypeValue | Enum | 类型类型 |
| MethodValue | Enum | 方法类型 |
| EnumValue | Enum | 枚举类型 |
| ArrayValue | Enum | 数组类型 |
| AnnotationValue | Enum | 注解类型 |
| NullValue | Enum | 空类型 |
| BoolValue | Enum | 布尔类型 |
AnnotationVisibilityType
详情参照 Visibility values在新窗口中打开
| 字段名 | 类型 | 说明 |
|---|
| Build | Enum | 构建时可见 |
| Runtime | Enum | 运行时可见 |
| System | Enum | 系统可见 |
MatchType
| 字段名 | 类型 | 说明 |
|---|
| Contains | Enum | 包含 |
| Equals | Enum | 等于 |
NumberEncodeValueType
| 字段名 | 类型 | 说明 |
|---|
| ByteValue | Enum | 字节类型 |
| ShortValue | Enum | 短整型类型 |
| CharValue | Enum | 字符类型 |
| IntValue | Enum | 整型类型 |
| LongValue | Enum | 长整型类型 |
| FloatValue | Enum | 浮点类型 |
| DoubleValue | Enum | 双精度浮点类型 |
OpCodeMatchType
| 字段名 | 类型 | 说明 |
|---|
| Contains | Enum | 包含 |
| StartsWith | Enum | 以...开头 |
| EndsWith | Enum | 以...结尾 |
| Equals | Enum | 等于 |
RetentionPolicyType
该 Enum 与 java.lang.annotation.RetentionPolicy 保持对应。
| 字段名 | 类型 | 说明 |
|---|
| Source | Enum | 源码级别 |
| Class | Enum | 类级别 |
| Runtime | Enum | 运行时级别 |
StringMatchType
| 字段名 | 类型 | 说明 |
|---|
| Contains | Enum | 包含 |
| StartsWith | Enum | 以...开头 |
| EndsWith | Enum | 以...结尾 |
| SimilarRegex | Enum | 类正则匹配,只支持 ^ 与 $ |
| Equals | Enum | 等于 |
TargetElementType
该 Enum 与 java.lang.annotation.ElementType 保持对应。
| 字段名 | 类型 | 说明 |
|---|
| Type | Enum | 类型 |
| Field | Enum | 字段 |
| Method | Enum | 方法 |
| Parameter | Enum | 参数 |
| Constructor | Enum | 构造方法 |
| LocalVariable | Enum | 局部变量 |
| AnnotationType | Enum | 注解类型 |
| Package | Enum | 包 |
| TypeParameter | Enum | 类型参数 |
| TypeUse | Enum | 类型使用 |
UsingType
| 字段名 | 类型 | 说明 |
|---|
| Any | Enum | 任意 |
| Get | Enum | 获取 |
| Set | Enum | 设置 |