diff --git a/README.md b/README.md index f6cd53b..8e77155 100644 --- a/README.md +++ b/README.md @@ -108,14 +108,13 @@ public final class StringFogImpl implements IStringFog { } ``` -#### 自定义加解密算法集成 -集成自定义算法有两种方式: -- 编译成jar或者上传至maven仓库,用classpath引入到根目录build.gradle和implementation引入到app的build.gradle中。 -- 将java源文件放置到根目录buildSrc/src/main/java下,以及app源码目录中。 #### Mapping文件 加解密的字符串明文和暗文会自动生成mapping映射文件,位于outputs/mapping/stringfog.txt。 +## 范例 +- 默认加解密算法集成,参考[sample2](https://github.com/MegatronKing/StringFog-Sample2) +- 自定义加解密算法集成,参考[sample1](https://github.com/MegatronKing/StringFog-Sample1) ## 更新日志 diff --git a/stringfog-sample-app/.gitignore b/app/.gitignore similarity index 100% rename from stringfog-sample-app/.gitignore rename to app/.gitignore diff --git a/stringfog-sample-library/build.gradle b/app/build.gradle similarity index 66% rename from stringfog-sample-library/build.gradle rename to app/build.gradle index 3af4791..035c6bc 100644 --- a/stringfog-sample-library/build.gradle +++ b/app/build.gradle @@ -1,29 +1,18 @@ -apply plugin: 'com.android.library' -apply plugin: 'stringfog' - -// 每个Library可以定义不同的加密key -stringfog { - - key 'Hello Library' - enable true - debug false - implementation 'com.github.megatronking.stringfog.xor.StringFogImpl' -} +apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { + applicationId "com.github.megatronking.stringfog" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } buildTypes { - release { - minifyEnabled false + debug { + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } @@ -35,6 +24,5 @@ dependencies { exclude group: 'com.android.support', module: 'support-annotations' }) implementation 'com.android.support:appcompat-v7:28.0.0' - implementation 'com.github.megatronking.stringfog:xor:1.0.0' testImplementation 'junit:junit:4.12' } diff --git a/stringfog-sample-app/proguard-rules.pro b/app/proguard-rules.pro similarity index 100% rename from stringfog-sample-app/proguard-rules.pro rename to app/proguard-rules.pro diff --git a/stringfog-sample-app/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java similarity index 100% rename from stringfog-sample-app/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java rename to app/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java diff --git a/stringfog-sample-app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml similarity index 100% rename from stringfog-sample-app/src/main/AndroidManifest.xml rename to app/src/main/AndroidManifest.xml diff --git a/app/src/main/java/com/github/megatronking/stringfog/MainActivity.java b/app/src/main/java/com/github/megatronking/stringfog/MainActivity.java new file mode 100644 index 0000000..d424f09 --- /dev/null +++ b/app/src/main/java/com/github/megatronking/stringfog/MainActivity.java @@ -0,0 +1,17 @@ +package com.github.megatronking.stringfog; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + // 范例请参考: + // https://github.com/MegatronKing/StringFog-Sample1 + // https://github.com/MegatronKing/StringFog-Sample2 + } + +} diff --git a/stringfog-sample-app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml similarity index 100% rename from stringfog-sample-app/src/main/res/layout/activity_main.xml rename to app/src/main/res/layout/activity_main.xml diff --git a/stringfog-sample-app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from stringfog-sample-app/src/main/res/mipmap-hdpi/ic_launcher.png rename to app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/stringfog-sample-app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from stringfog-sample-app/src/main/res/mipmap-mdpi/ic_launcher.png rename to app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/stringfog-sample-app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from stringfog-sample-app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/stringfog-sample-app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from stringfog-sample-app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/stringfog-sample-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from stringfog-sample-app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/stringfog-sample-app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml similarity index 100% rename from stringfog-sample-app/src/main/res/values-w820dp/dimens.xml rename to app/src/main/res/values-w820dp/dimens.xml diff --git a/stringfog-sample-app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml similarity index 100% rename from stringfog-sample-app/src/main/res/values/colors.xml rename to app/src/main/res/values/colors.xml diff --git a/stringfog-sample-app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml similarity index 100% rename from stringfog-sample-app/src/main/res/values/dimens.xml rename to app/src/main/res/values/dimens.xml diff --git a/stringfog-sample-app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml similarity index 100% rename from stringfog-sample-app/src/main/res/values/strings.xml rename to app/src/main/res/values/strings.xml diff --git a/stringfog-sample-app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml similarity index 100% rename from stringfog-sample-app/src/main/res/values/styles.xml rename to app/src/main/res/values/styles.xml diff --git a/stringfog-sample-app/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java b/app/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java similarity index 100% rename from stringfog-sample-app/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java rename to app/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java diff --git a/build.gradle b/build.gradle index 9fda938..c700db4 100644 --- a/build.gradle +++ b/build.gradle @@ -6,11 +6,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6' - classpath 'com.github.megatronking.stringfog:gradle-plugin:2.0.1' - classpath 'com.github.megatronking.stringfog:xor:1.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore deleted file mode 100644 index 00fd4dd..0000000 --- a/buildSrc/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -/.gradle \ No newline at end of file diff --git a/buildSrc/README.md b/buildSrc/README.md deleted file mode 100644 index c60a60b..0000000 --- a/buildSrc/README.md +++ /dev/null @@ -1 +0,0 @@ -如果不希望将自定义算法打成jar包或者上传到maven依赖,可以将自定义算法Java源文件放到此目录下的src/main/java/下面 \ No newline at end of file diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle deleted file mode 100644 index 9938cba..0000000 --- a/buildSrc/build.gradle +++ /dev/null @@ -1,9 +0,0 @@ -repositories { - google() - jcenter() -} - -dependencies { -// 在buildSrc中引用自定义加解密算法源文件时放开此依赖,使用maven方式引用时必须注释掉此依赖 -// implementation 'com.github.megatronking.stringfog:interface:1.0.1' -} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4c01b5f..cd97aed 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-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/settings.gradle b/settings.gradle index 3dde7aa..2c6019c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ -include ':stringfog-sample-app', ':stringfog-gradle-plugin', ':stringfog-sample-library', ':stringfog-interface' +include ':app', ':stringfog-gradle-plugin', ':stringfog-interface' file('stringfog-ext').listFiles().each { if (it.isDirectory()) { include ":stringfog-ext:${it.name}" diff --git a/stringfog-sample-app/build.gradle b/stringfog-sample-app/build.gradle deleted file mode 100644 index f6ed38c..0000000 --- a/stringfog-sample-app/build.gradle +++ /dev/null @@ -1,43 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'stringfog' - -stringfog { - key 'Hello Application' - enable true - debug false - // 指定加解密的具体实现类,可以用默认实现的xor库或者aes-cbc库,也可以自己定制实现,记得配置dependencies - implementation 'com.github.megatronking.stringfog.xor.StringFogImpl' - // 指定需加密的代码包路径,可配置多个,未指定将默认全部加密 - fogPackages = ["com.github.megatronking.stringfog"] -} - -android { - compileSdkVersion 28 - defaultConfig { - applicationId "com.github.megatronking.stringfog" - minSdkVersion 15 - targetSdkVersion 28 - versionCode 1 - versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - buildTypes { - debug { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation project(':stringfog-sample-library') - testImplementation 'junit:junit:4.12' - - // xor加解密库,stringfog中的implementation需依赖此库 - implementation 'com.github.megatronking.stringfog:xor:1.0.0' -} diff --git a/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/MainActivity.java b/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/MainActivity.java deleted file mode 100644 index bb55e84..0000000 --- a/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/MainActivity.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.github.megatronking.stringfog; - -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.util.Log; -import android.widget.TextView; - -import com.github.megatronking.stringfog.library.LibTest; - -public class MainActivity extends AppCompatActivity { - - // Test static final fields - private static final String STATIC_FINAL_FIELD_1 = "test_private_static_final"; - protected static final String STATIC_FINAL_FIELD_2 = "test_protected_static_final"; - public static final String STATIC_FINAL_FIELD_3 = "test_public_static_final"; - - // Test static fields - private static String static_field_1 = "test_private_static"; - protected static String static_field_2 = "test_protected_static"; - public static String static_field_3 = "test_public_static"; - - // Test final fields - private final String final_field_1 = "test_private_final"; - protected final String final_field_2 = "test_protected_final"; - public final String final_field_3 = "test_public_final"; - - // Test normal fields - private String normal_field_1 = "test_private_normal"; - protected String normal_field_2 = "test_protected_normal"; - public String normal_field_3 = "test_public_normal"; - - // Test null static final value - public static final String null_static_final; - - // Test null static value - public static String null_static; - - static { - null_static_final = "test_null_static_final"; - null_static = "test_null_static"; - - // Test static block - Log.i("stringfog", "test static block"); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - // Test local params - String title = "MainActivity"; - ((TextView)findViewById(R.id.text)).setText(title + "Test"); - - String tag = "stringfog"; - - Log.i(tag, STATIC_FINAL_FIELD_1); - Log.i(tag, STATIC_FINAL_FIELD_2); - Log.i(tag, STATIC_FINAL_FIELD_3); - - Log.i(tag, static_field_1); - Log.i(tag, static_field_2); - Log.i(tag, static_field_3); - - Log.i(tag, final_field_1); - Log.i(tag, final_field_2); - Log.i(tag, final_field_3); - - Log.i(tag, normal_field_1); - Log.i(tag, normal_field_2); - Log.i(tag, normal_field_3); - - Log.i(tag, null_static_final); - Log.i(tag, null_static); - - Log.i(tag, LibTest.ACTION); - } - -} diff --git a/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/TestIngore.java b/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/TestIngore.java deleted file mode 100644 index 88072c5..0000000 --- a/stringfog-sample-app/src/main/java/com/github/megatronking/stringfog/TestIngore.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.github.megatronking.stringfog; - -import com.github.megatronking.stringfog.annotation.StringFogIgnore; - -/** - * Test StringFogIgnore - */ -@StringFogIgnore -public class TestIngore { - - public static final String A = "a"; - public static final String B = "b"; - public static final String C = "c"; - -} diff --git a/stringfog-sample-app/src/main/java/exclude/ExcludeTest.java b/stringfog-sample-app/src/main/java/exclude/ExcludeTest.java deleted file mode 100644 index 3bdd216..0000000 --- a/stringfog-sample-app/src/main/java/exclude/ExcludeTest.java +++ /dev/null @@ -1,14 +0,0 @@ -package exclude; - -/** - * A testcase about exclude in stringfog DSL. - * - * @author Megatron King - * @since 17/7/29 18:16 - */ - -public class ExcludeTest { - - public static final String EXCLUDE_STRING = "exclude"; - -} diff --git a/stringfog-sample-library/.gitignore b/stringfog-sample-library/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/stringfog-sample-library/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/stringfog-sample-library/proguard-rules.pro b/stringfog-sample-library/proguard-rules.pro deleted file mode 100644 index ac40eb6..0000000 --- a/stringfog-sample-library/proguard-rules.pro +++ /dev/null @@ -1,25 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/anker/Library/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/stringfog-sample-library/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java b/stringfog-sample-library/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java deleted file mode 100644 index 18274a1..0000000 --- a/stringfog-sample-library/src/androidTest/java/com/github/megatronking/stringfog/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.github.megatronking.stringfog; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.github.megatronking.stringfog.test", appContext.getPackageName()); - } -} diff --git a/stringfog-sample-library/src/main/AndroidManifest.xml b/stringfog-sample-library/src/main/AndroidManifest.xml deleted file mode 100644 index eaebe1d..0000000 --- a/stringfog-sample-library/src/main/AndroidManifest.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/stringfog-sample-library/src/main/java/com/github/megatronking/stringfog/library/LibTest.java b/stringfog-sample-library/src/main/java/com/github/megatronking/stringfog/library/LibTest.java deleted file mode 100644 index 13cf5f0..0000000 --- a/stringfog-sample-library/src/main/java/com/github/megatronking/stringfog/library/LibTest.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.github.megatronking.stringfog.library; - -/** - * @author Megatron King - * @since 17/7/28 10:02 - */ - -public class LibTest { - - public static final String ACTION = "action"; - -} diff --git a/stringfog-sample-library/src/main/res/values/strings.xml b/stringfog-sample-library/src/main/res/values/strings.xml deleted file mode 100644 index bf897b7..0000000 --- a/stringfog-sample-library/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - stringfog-sample-library - diff --git a/stringfog-sample-library/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java b/stringfog-sample-library/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java deleted file mode 100644 index 9682029..0000000 --- a/stringfog-sample-library/src/test/java/com/github/megatronking/stringfog/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.megatronking.stringfog; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file