| Type | Name and description |
|---|---|
static com.android.build.gradle.AppExtension |
android |
static java.util.HashSet<java.lang.String> |
targetPackages |
| Constructor and description |
|---|
TrackTransform
(org.gradle.api.Project project) |
| Type Params | Return Type | Name and description |
|---|---|---|
|
java.util.Set<QualifiedContent.ContentType> |
getInputTypes() |
|
java.lang.String |
getName() |
|
java.util.Set<QualifiedContent.Scope> |
getScopes() |
|
boolean |
isIncremental() |
|
static boolean |
isJarNeedModify(java.io.File jarFile)该jar文件是否包含需要修改的类 |
|
static java.io.File |
modifyClassFile(java.io.File dir, java.io.File classFile, java.io.File tempDir) |
|
static java.io.File |
modifyJarFile(java.io.File jarFile, java.io.File tempDir)植入代码 |
|
static boolean |
shouldModifyClass(java.lang.String className)只扫描特定包下的类 |
|
void |
transform(com.android.build.api.transform.Context context, java.util.Collection<com.android.build.api.transform.TransformInput> inputs, java.util.Collection<com.android.build.api.transform.TransformInput> referencedInputs, com.android.build.api.transform.TransformOutputProvider outputProvider, boolean isIncremental) |
| Methods inherited from class | Name |
|---|---|
class com.android.build.api.transform.Transform |
com.android.build.api.transform.Transform#getName(), com.android.build.api.transform.Transform#isIncremental(), com.android.build.api.transform.Transform#transform(com.android.build.api.transform.TransformInvocation), com.android.build.api.transform.Transform#transform(com.android.build.api.transform.Context, java.util.Collection, java.util.Collection, com.android.build.api.transform.TransformOutputProvider, boolean), com.android.build.api.transform.Transform#getInputTypes(), com.android.build.api.transform.Transform#getScopes(), com.android.build.api.transform.Transform#getOutputTypes(), com.android.build.api.transform.Transform#getSecondaryFileOutputs(), com.android.build.api.transform.Transform#getSecondaryDirectoryOutputs(), com.android.build.api.transform.Transform#getParameterInputs(), com.android.build.api.transform.Transform#getReferencedScopes(), com.android.build.api.transform.Transform#getSecondaryFileInputs(), com.android.build.api.transform.Transform#getSecondaryFiles(), com.android.build.api.transform.Transform#wait(long, int), com.android.build.api.transform.Transform#wait(long), com.android.build.api.transform.Transform#wait(), com.android.build.api.transform.Transform#equals(java.lang.Object), com.android.build.api.transform.Transform#toString(), com.android.build.api.transform.Transform#hashCode(), com.android.build.api.transform.Transform#getClass(), com.android.build.api.transform.Transform#notify(), com.android.build.api.transform.Transform#notifyAll() |
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
该jar文件是否包含需要修改的类
植入代码
buildDir - 是项目的build class目录,就是我们需要注入的class所在地lib - 这个是hackdex的目录,就是AntilazyLoad类的class文件所在地只扫描特定包下的类
className - 形如 android.app.Fragment 的类名Groovy Documentation