Skip to content

Commit ac1ab5a

Browse files
author
zhangyang06
committed
[feat] 增加 artifacts 使用demo
1 parent 73b116a commit ac1ab5a

File tree

12 files changed

+66
-40
lines changed

12 files changed

+66
-40
lines changed

Plugin/AutoTrackPlugin/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ dependencies {
77
implementation gradleApi()
88
implementation localGroovy()
99
implementation project(":BasePlugin")
10-
kapt "com.google.auto.service:auto-service:1.0-rc7"
11-
implementation 'com.google.auto.service:auto-service:1.0-rc7'
10+
kapt "com.google.auto.service:auto-service:1.0"
11+
implementation 'com.google.auto.service:auto-service:1.0'
1212
}
1313

1414
gradlePlugin {

Plugin/build.gradle

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22
buildscript {
3-
ext.kotlin_version = '1.4.30'
3+
ext.kotlin_version = '1.5.30'
44
repositories {
55
maven {
66
url 'https://maven.aliyun.com/repository/central/'
@@ -52,36 +52,16 @@ allprojects {
5252
sourceCompatibility = JavaVersion.VERSION_11
5353
targetCompatibility = JavaVersion.VERSION_11
5454
}
55+
5556
group("com.github.leifzhang")
5657
version = property("plugin.version")
57-
plugins.withId("com.vanniktech.maven.publish") {
58-
mavenPublish {
59-
pom {
60-
name = "Android Auot Track"
61-
description = "A description of what my library does."
62-
inceptionYear = "2020"
63-
url = "https://github.com/Leifzhang/AndroidAutoTrack"
64-
licenses {
65-
license {
66-
name = "The Apache License, Version 2.0"
67-
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
68-
distribution = "http://www.apache.org/licenses/LICENSE-2.0.txt"
69-
}
70-
}
71-
developers {
72-
developer {
73-
id = "Leifzhang"
74-
name = "User Name"
75-
url = "https://github.com/Leifzhang/"
76-
}
77-
}
78-
scm {
79-
url = "https://github.com/Leifzhang/AndroidAutoTrack"
80-
connection = "scm:https://github.com/Leifzhang/AndroidAutoTrack.git"
81-
developerConnection = "scm:https://github.com/Leifzhang/AndroidAutoTrack.git"
82-
}
58+
afterEvaluate {
59+
if (project.plugins.hasPlugin('com.android.library') || project.plugins.hasPlugin('com.android.application')) {
60+
def android = project.extensions.getByName('android')
61+
android.compileOptions {
62+
sourceCompatibility JavaVersion.VERSION_11
63+
targetCompatibility JavaVersion.VERSION_11
8364
}
84-
8565
}
8666
}
8767
}

Plugin/double_tap_plugin/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ dependencies {
99
implementation project(":BasePlugin")
1010
implementation 'commons-io:commons-io:2.6'
1111
implementation 'org.javassist:javassist:3.27.0-GA'
12-
implementation 'com.google.auto.service:auto-service:1.0-rc6'
13-
kapt "com.google.auto.service:auto-service:1.0-rc6"
12+
kapt "com.google.auto.service:auto-service:1.0"
13+
implementation 'com.google.auto.service:auto-service:1.0'
1414
}
1515

1616

Plugin/multiPlugin/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies {
77
implementation localGroovy()
88
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
99
implementation project(":BasePlugin")
10-
implementation 'com.google.auto.service:auto-service:1.0-rc7'
10+
implementation 'com.google.auto.service:auto-service:1.0'
1111
}
1212

1313
gradlePlugin {

Plugin/thread_hook_plugin/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ dependencies {
66
implementation gradleApi()
77
implementation localGroovy()
88
implementation project(":BasePlugin")
9-
implementation 'commons-io:commons-io:2.6'
9+
implementation 'commons-io:commons-io:2.11.0'
1010
implementation 'org.javassist:javassist:3.27.0-GA'
11-
implementation 'com.google.auto.service:auto-service:1.0-rc7'
12-
kapt "com.google.auto.service:auto-service:1.0-rc7"
11+
implementation 'com.google.auto.service:auto-service:1.0'
12+
kapt "com.google.auto.service:auto-service:1.0"
1313
}
1414

1515
java {

Plugin/thread_hook_plugin/src/main/java/com/kronos/plugin/thread/ThreadHookPlugin.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.kronos.plugin.thread
22

3+
import com.android.build.api.artifact.SingleArtifact
34
import com.android.build.api.instrumentation.FramesComputationMode
45
import com.android.build.api.instrumentation.InstrumentationScope
56
import com.android.build.api.variant.AndroidComponentsExtension
67
import com.android.build.gradle.AppExtension
8+
import com.kronos.plugin.thread.task.ManifestTask
79
import org.gradle.api.Plugin
810
import org.gradle.api.Project
911

@@ -20,6 +22,15 @@ class ThreadHookPlugin : Plugin<Project> {
2022
appExtension.registerTransform(HookTransform())
2123
val androidComponents = project.extensions.getByType(AndroidComponentsExtension::class.java)
2224
androidComponents.onVariants { variant ->
25+
// artifacts 简单使用
26+
val taskProvider = project.tasks.register(
27+
"manifestCopy${variant.name}Task",
28+
ManifestTask::class.java
29+
)
30+
variant.artifacts.use(taskProvider).wiredWithFiles(
31+
ManifestTask::mergedManifest,
32+
ManifestTask::updatedManifest
33+
).toTransform(SingleArtifact.MERGED_MANIFEST)
2334
variant.transformClassesWith(PrivacyClassVisitorFactory::class.java,
2435
InstrumentationScope.ALL) {}
2536
variant.setAsmFramesComputationMode(FramesComputationMode.COPY_FRAMES)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.kronos.plugin.thread.task
2+
3+
import org.gradle.api.DefaultTask
4+
import org.gradle.api.file.RegularFileProperty
5+
import org.gradle.api.tasks.InputFile
6+
import org.gradle.api.tasks.OutputFile
7+
import org.gradle.api.tasks.TaskAction
8+
9+
/**
10+
*
11+
* @Author LiABao
12+
* @Since 2022/1/18
13+
*
14+
*/
15+
abstract class ManifestTask : DefaultTask() {
16+
// 输入
17+
@get:InputFile
18+
abstract val mergedManifest: RegularFileProperty
19+
// 输出
20+
@get:OutputFile
21+
abstract val updatedManifest: RegularFileProperty
22+
23+
@TaskAction
24+
fun taskAction() {
25+
val file = mergedManifest.get().asFile.inputStream()
26+
val steam = updatedManifest.get().asFile.outputStream()
27+
steam.use {
28+
it.write(file.readBytes())
29+
}
30+
}
31+
}

app/src/main/java/com/wallstreetcn/sample/MainActivity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import com.wallstreetcn.sample.adapter.Test;
1515
import com.wallstreetcn.sample.utils.PrivacyUtils;
16+
import com.wallstreetcn.sample.utils.TestIOThreadExecutor;
1617

1718
import java.util.concurrent.ExecutorService;
1819
import java.util.concurrent.Executors;
@@ -38,6 +39,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
3839
protected void onCreate(Bundle savedInstanceState) {
3940
super.onCreate(savedInstanceState);
4041
setContentView(R.layout.activity_main);
42+
TestIOThreadExecutor.Companion.getThreadPool("1234");
4143
// service = Executors.newFixedThreadPool(2);
4244
// service = Executors.newSingleThreadExecutor(Executors.defaultThreadFactory());
4345
findViewById(R.id.textView1).setOnClickListener(new View.OnClickListener() {

app/src/main/java/com/wallstreetcn/sample/utils/PrivacyUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ object PrivacyUtils {
5353
fun getString(resolver: ContentResolver?, name: String?): String {
5454
resolver ?: return ""
5555
name ?: return ""
56-
return Settings.Secure.getString(resolver, name)
56+
return ""
5757
}
5858

5959

app/src/main/java/com/wallstreetcn/sample/utils/TestIOThreadExecutor.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ class TestIOThreadExecutor private constructor() : ThreadPoolExecutor(
3434
return THREAD_POOL_SHARE
3535
}
3636

37+
38+
fun getThreadPool(name:String):TestIOThreadExecutor{
39+
return THREAD_POOL_SHARE
40+
}
3741
}
3842

3943
}

build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ buildscript {
55
maven {
66
url 'https://maven.aliyun.com/repository/central/'
77
}
8-
maven {
9-
url 'https://dl.bintray.com/leifzhang/maven'
10-
}
118
google()
129
}
1310
dependencies {

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ android.useAndroidX=true
1919
android.enableJetifier=true
2020
# Kotlin code style for this project: "official" or "obsolete":
2121
kotlin.code.style=obsolete
22+
android.nonTransitiveRClass=true
2223

0 commit comments

Comments
 (0)