diff --git a/app/build.gradle b/app/build.gradle
index 43d7f7a2..a996f3ed 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,27 +1,27 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-if (PLUGIN_ENABLE.toBoolean()) {
- apply plugin: 'android-junk-code'
-}
-apply plugin: 'com.getkeepsafe.dexcount'
+//if (PLUGIN_ENABLE.toBoolean()) {
+// apply plugin: 'android-junk-code'
+//}
+//apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'kotlin-kapt'
android {
- compileSdkVersion 31
+ compileSdkVersion 29
defaultConfig {
applicationId "cn.hx.plugin.junkcode.demo"
- minSdkVersion 16
- targetSdkVersion 31
+ minSdkVersion 21
+ targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
- buildFeatures {
- dataBinding = true
- viewBinding = true
- }
+// buildFeatures {
+// dataBinding = true
+// viewBinding = true
+// }
buildTypes {
release {
minifyEnabled true
@@ -71,33 +71,33 @@ android {
}
}
-if (PLUGIN_ENABLE.toBoolean()) {
- androidJunkCode {
- def config = {
- packageBase = "cn.hx.plugin.ui"
- packageCount = 30
- activityCountPerPackage = 30
- excludeActivityJavaFile = false
- otherCountPerPackage = 50
- methodCountPerClass = 20
- resPrefix = "junk_"
- drawableCount = 300
- stringCount = 300
- }
- variantConfig {
- freeRelease config
- proRelease config
- }
- }
-}
+//if (PLUGIN_ENABLE.toBoolean()) {
+// androidJunkCode {
+// def config = {
+// packageBase = "cn.hx.plugin.ui"
+// packageCount = 30
+// activityCountPerPackage = 30
+// excludeActivityJavaFile = false
+// otherCountPerPackage = 50
+// methodCountPerClass = 20
+// resPrefix = "junk_"
+// drawableCount = 300
+// stringCount = 300
+// }
+// variantConfig {
+// freeRelease config
+// proRelease config
+// }
+// }
+//}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'androidx.multidex:multidex:2.0.1'
- implementation 'androidx.core:core-ktx:1.6.0'
- implementation 'androidx.appcompat:appcompat:1.3.1'
- implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
+ implementation 'androidx.multidex:multidex:1.0.3'
+ implementation 'androidx.core:core-ktx:1.3.0'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
diff --git a/build.gradle b/build.gradle
index 9def2a96..c80cd198 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,18 +1,20 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = "1.5.31"
+ ext.kotlin_version = "1.3.50"
repositories {
google()
mavenCentral()
+ jcenter(){ url 'https://maven.aliyun.com/nexus/content/groups/public/' }
+ maven { url 'https://jitpack.io' }
mavenLocal()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.2.1'
+ classpath 'com.android.tools.build:gradle:3.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:3.0.1"
- if (PLUGIN_ENABLE.toBoolean()) {
- classpath "com.github.qq549631030:android-junk-code:1.1.7"
- }
+// if (PLUGIN_ENABLE.toBoolean()) {
+// classpath "com.github.qq549631030:android-junk-code:1.1.7"
+// }
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
@@ -22,6 +24,8 @@ allprojects {
repositories {
google()
mavenCentral()
+ jcenter(){ url 'https://maven.aliyun.com/nexus/content/groups/public/' }
+ maven { url 'https://jitpack.io' }
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index be6e8e98..483f2b41 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
diff --git a/library/build.gradle b/library/build.gradle
index c14ef475..3f4e9912 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -9,7 +9,7 @@ buildscript {
}
apply plugin: 'groovy'
-apply plugin: "com.vanniktech.maven.publish"
+//apply plugin: "com.vanniktech.maven.publish"
java {
sourceCompatibility JavaVersion.VERSION_1_8
diff --git a/library/src/main/groovy/cn/hx/plugin/junkcode/ext/JunkCodeConfig.groovy b/library/src/main/groovy/cn/hx/plugin/junkcode/ext/JunkCodeConfig.groovy
index f4bb9b8a..70a88865 100644
--- a/library/src/main/groovy/cn/hx/plugin/junkcode/ext/JunkCodeConfig.groovy
+++ b/library/src/main/groovy/cn/hx/plugin/junkcode/ext/JunkCodeConfig.groovy
@@ -17,7 +17,7 @@ class JunkCodeConfig {
@Input
int methodCountPerClass = 0
@Input
- String resPrefix = "junk_"
+ String resPrefix = "sns_app"
@Input
int drawableCount = 0
@Input
diff --git a/library/src/main/groovy/cn/hx/plugin/junkcode/task/AndroidJunkCodeTask.groovy b/library/src/main/groovy/cn/hx/plugin/junkcode/task/AndroidJunkCodeTask.groovy
index 65b4afd8..cc8378e1 100644
--- a/library/src/main/groovy/cn/hx/plugin/junkcode/task/AndroidJunkCodeTask.groovy
+++ b/library/src/main/groovy/cn/hx/plugin/junkcode/task/AndroidJunkCodeTask.groovy
@@ -14,6 +14,7 @@ import org.gradle.api.tasks.TaskAction
import javax.lang.model.element.Modifier
import java.nio.charset.Charset
+import java.nio.charset.StandardCharsets
import java.nio.file.Files
import java.nio.file.Path
@@ -24,6 +25,9 @@ class AndroidJunkCodeTask extends DefaultTask {
static abc = "abcdefghijklmnopqrstuvwxyz".toCharArray()
static color = "0123456789abcdef".toCharArray()
+
+ static otherAbc = "mnopqrstuvwxyzabcdefghijkl".toCharArray()
+
@Nested
JunkCodeConfig config
@@ -53,18 +57,24 @@ class AndroidJunkCodeTask extends DefaultTask {
* 生成java代码和AndroidManifest.xml
*/
void generateClasses() {
+ //生成包数量 config.packageCount
for (int i = 0; i < config.packageCount; i++) {
String packageName
+
if (config.packageBase.isEmpty()) {
packageName = generateName(i)
} else {
packageName = config.packageBase + "." + generateName(i)
}
+
+ printLog(packageName)
+
//生成Activity
for (int j = 0; j < config.activityCountPerPackage; j++) {
def activityPreName = generateName(j)
generateActivity(packageName, activityPreName)
}
+
//生成其它类
for (int j = 0; j < config.otherCountPerPackage; j++) {
def className = generateName(j).capitalize()
@@ -138,9 +148,18 @@ class AndroidJunkCodeTask extends DefaultTask {
* @param activityPreName
*/
void generateActivity(String packageName, String activityPreName) {
+ //生成Activity类名
def className = activityPreName.capitalize() + "Activity"
- def layoutName = "${config.resPrefix.toLowerCase()}${packageName.replace(".", "_")}_activity_${activityPreName}"
+
+ printLog("generateActivity and class name is " + className)
+
+ //生成Activity对应的布局文件的类名
+ def layoutName = "${config.resPrefix.toLowerCase()}_activity_${activityPreName}"
+
+ printLog("generateActivity and layoutName is " + layoutName)
+ //生成对应的布局文件
generateLayout(layoutName)
+
if (!config.excludeActivityJavaFile) {
def typeBuilder = TypeSpec.classBuilder(className)
typeBuilder.superclass(ClassName.get("android.app", "Activity"))
@@ -199,8 +218,14 @@ class AndroidJunkCodeTask extends DefaultTask {
* @param layoutName
*/
void generateLayout(String layoutName) {
+
+ //生成布局文件
def layoutFile = new File(outDir, "res/layout/${layoutName}.xml")
- def layoutStr = String.format(ResTemplate.LAYOUT_TEMPLATE, generateId())
+ //生成布局文件内容
+ def currentGenerateId = generateId()
+ printLog("generateLayout currentGenerateId " + currentGenerateId)
+ def layoutStr = String.format(ResTemplate.LAYOUT_TEMPLATE, currentGenerateId)
+ //内容写文件
writeStringToFile(layoutFile, layoutStr)
}
@@ -252,9 +277,11 @@ class AndroidJunkCodeTask extends DefaultTask {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs()
}
- FileWriter writer
+ Writer writer
try {
- writer = new FileWriter(file, Charset.forName("UTF-8"))
+
+ writer = new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8);
+
writer.write(data)
} catch (Exception e) {
e.printStackTrace()
@@ -307,7 +334,16 @@ class AndroidJunkCodeTask extends DefaultTask {
def sb = new StringBuilder()
for (i in 0..5) {
sb.append(abc[random.nextInt(abc.size())])
+ sb.append(otherAbc[random.nextInt(otherAbc.size())])
}
return sb.toString()
}
+
+ /**
+ * 打印日志
+ * @param content
+ */
+ static void printLog(String content){
+ print("==============junk=====================" + content)
+ }
}
\ No newline at end of file
diff --git a/library/src/main/groovy/cn/hx/plugin/junkcode/template/ResTemplate.groovy b/library/src/main/groovy/cn/hx/plugin/junkcode/template/ResTemplate.groovy
index d2924d5c..4854ce22 100644
--- a/library/src/main/groovy/cn/hx/plugin/junkcode/template/ResTemplate.groovy
+++ b/library/src/main/groovy/cn/hx/plugin/junkcode/template/ResTemplate.groovy
@@ -2,40 +2,15 @@ package cn.hx.plugin.junkcode.template
class ResTemplate {
- static final def DRAWABLE = '''
-
-
-
-
-
-
-
-
-
-'''
+ static final def DRAWABLE = '''
+
+
+
+
+'''
static final def LAYOUT_TEMPLATE = '''