{
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/App.java:
--------------------------------------------------------------------------------
1 | /**
2 | * The MIT License
3 | * Copyright (c) 2014-2016 Ilkka Seppälä
4 | *
5 | * Permission is hereby granted, free of charge, to any person obtaining a copy
6 | * of this software and associated documentation files (the "Software"), to deal
7 | * in the Software without restriction, including without limitation the rights
8 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | * copies of the Software, and to permit persons to whom the Software is
10 | * furnished to do so, subject to the following conditions:
11 | *
12 | * The above copyright notice and this permission notice shall be included in
13 | * all copies or substantial portions of the Software.
14 | *
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | * THE SOFTWARE.
22 | */
23 | package com.ody.study.designpatterns.singleton;
24 |
25 | import com.ody.study.util.LoggerFactory;
26 |
27 | import org.junit.Test;
28 |
29 | public class App {
30 |
31 | private static final LoggerFactory LOGGER = LoggerFactory.INSTANCE;
32 |
33 | /**
34 | * Program entry point.
35 | */
36 | @Test
37 | public void test() {
38 |
39 | EnumSingleton enum1 = EnumSingleton.INSTANCE;
40 | EnumSingleton enum2 = EnumSingleton.INSTANCE;
41 | LOGGER.info("枚举式1={}", enum1);
42 | LOGGER.info("枚举式2={}", enum2);
43 |
44 | StaticInnerClassSingleton inner1 = StaticInnerClassSingleton.getInstance();
45 | StaticInnerClassSingleton inner2 = StaticInnerClassSingleton.getInstance();
46 | LOGGER.info("静态内部类1={}", inner1);
47 | LOGGER.info("静态内部类2={}", inner2);
48 |
49 | EagerSingleton eager1 = EagerSingleton.INSTANCE;
50 | EagerSingleton eager2 = EagerSingleton.INSTANCE;
51 | LOGGER.info("饿汉式1={}", eager1);
52 | LOGGER.info("饿汉式2={}", eager2);
53 |
54 | EagerPlusSingleton eagerPlus1 = EagerPlusSingleton.getInstance();
55 | EagerPlusSingleton eagerPlus2 = EagerPlusSingleton.getInstance();
56 | LOGGER.info("升级版饿汉式1={}", eagerPlus1);
57 | LOGGER.info("升级版饿汉式2={}", eagerPlus1);
58 |
59 | LazySingleton lazy1 = LazySingleton.getInstance();
60 | LazySingleton lazy2 = LazySingleton.getInstance();
61 | LOGGER.info("懒汉1={}", lazy1);
62 | LOGGER.info("懒汉2={}", lazy2);
63 |
64 | LazyPlusSingleton lazyPlus1 = LazyPlusSingleton.getInstance();
65 | LazyPlusSingleton lazyPlus2 = LazyPlusSingleton.getInstance();
66 | LOGGER.info("升级版懒汉1={}", lazyPlus1);
67 | LOGGER.info("升级版懒汉2={}", lazyPlus2);
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/EagerPlusSingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public class EagerPlusSingleton {
8 | private static EagerPlusSingleton INSTANCE = null;
9 |
10 | static {
11 | INSTANCE = new EagerPlusSingleton();
12 | }
13 |
14 | private EagerPlusSingleton() {
15 | }
16 |
17 | public static EagerPlusSingleton getInstance() {
18 | return INSTANCE;
19 | }
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/EagerSingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public class EagerSingleton {
8 | public static final EagerSingleton INSTANCE = new EagerSingleton(); //静态的final的MaYun
9 |
10 | private EagerSingleton() {
11 | //MaYun诞生要做的事情
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/EnumSingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public enum EnumSingleton {
8 | INSTANCE;
9 |
10 | @Override
11 | public String toString() {
12 | return getDeclaringClass().getCanonicalName() + "@" + hashCode();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/LazyPlusSingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public class LazyPlusSingleton {
8 |
9 | private volatile static LazyPlusSingleton INSTANCE;
10 |
11 | private LazyPlusSingleton() {
12 | }
13 |
14 | public static LazyPlusSingleton getInstance() {
15 | if (INSTANCE == null) {
16 | synchronized (LazyPlusSingleton.class) {
17 | if (INSTANCE == null) {
18 | INSTANCE = new LazyPlusSingleton();
19 | }
20 | }
21 | }
22 | return INSTANCE;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/LazySingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public class LazySingleton {
8 | private static LazySingleton INSTANCE = null;
9 |
10 | private LazySingleton() {
11 | }
12 |
13 | public static synchronized LazySingleton getInstance() {
14 | if (INSTANCE == null) {
15 | INSTANCE = new LazySingleton();
16 | }
17 | return INSTANCE;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/designpatterns/singleton/StaticInnerClassSingleton.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.designpatterns.singleton;
2 |
3 | /**
4 | * Created by sunhuahui on 2017/8/28.
5 | */
6 |
7 | public class StaticInnerClassSingleton {
8 |
9 | private StaticInnerClassSingleton() {
10 | }
11 |
12 |
13 | public static StaticInnerClassSingleton getInstance() {
14 | return HelperHolder.INSTANCE;
15 | }
16 |
17 | private static class HelperHolder {
18 | private static final StaticInnerClassSingleton INSTANCE =
19 | new StaticInnerClassSingleton();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/json/Book.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.json;
2 |
3 | /**
4 | * Created by Samuel on 2017/6/9.
5 | */
6 |
7 | public class Book {
8 | private String date;
9 | private String name;
10 |
11 | public String getDate() {
12 | return date;
13 | }
14 |
15 | public void setDate(String date) {
16 | this.date = date;
17 | }
18 |
19 | public String getName() {
20 | return name;
21 | }
22 |
23 | public void setName(String name) {
24 | this.name = name;
25 | }
26 | }
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/json/NullStringToEmpty.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.json;
2 |
3 | import com.google.gson.Gson;
4 | import com.google.gson.GsonBuilder;
5 |
6 | import org.junit.Test;
7 |
8 | /**
9 | * Created by sunhuahui on 2017/9/18.
10 | */
11 |
12 | public class NullStringToEmpty {
13 |
14 | @Test
15 | public void app() {
16 | String json = "{\"name\":null, \"date\":\"1986\"}";
17 | Gson gson = new GsonBuilder().registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory()).create();
18 | //然后用上面一行写的gson来序列化和反序列化实体类type
19 | Book book = gson.fromJson(json, Book.class);
20 | System.out.println(book.getName());
21 | System.out.println(book.getDate());
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/json/NullStringToEmptyAdapterFactory.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.json;
2 |
3 | import com.google.gson.Gson;
4 | import com.google.gson.TypeAdapter;
5 | import com.google.gson.TypeAdapterFactory;
6 | import com.google.gson.reflect.TypeToken;
7 |
8 | /**
9 | * Created by sunhuahui on 2017/9/18.
10 | */
11 |
12 | public class NullStringToEmptyAdapterFactory implements TypeAdapterFactory {
13 | @SuppressWarnings("unchecked")
14 | public TypeAdapter create(Gson gson, TypeToken type) {
15 | Class rawType = (Class) type.getRawType();
16 | if (rawType != String.class) {
17 | return null;
18 | }
19 | return (TypeAdapter) new StringNullAdapter();
20 | }
21 | }
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/json/StringNullAdapter.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.json;
2 |
3 | import com.google.gson.TypeAdapter;
4 | import com.google.gson.stream.JsonReader;
5 | import com.google.gson.stream.JsonToken;
6 | import com.google.gson.stream.JsonWriter;
7 |
8 | import java.io.IOException;
9 |
10 | /**
11 | * Created by sunhuahui on 2017/9/18.
12 | */
13 |
14 | public class StringNullAdapter extends TypeAdapter {
15 | @Override
16 | public String read(JsonReader reader) throws IOException {
17 | // TODO Auto-generated method stub
18 | if (reader.peek() == JsonToken.NULL) {
19 | reader.nextNull();
20 | return "空";
21 | }
22 | return reader.nextString();
23 | }
24 |
25 | @Override
26 | public void write(JsonWriter writer, String value) throws IOException {
27 | // TODO Auto-generated method stub
28 | if (value == null) {
29 | writer.nullValue();
30 | return;
31 | }
32 | writer.value(value);
33 | }
34 | }
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/leetcode/AddTwoNumbers.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.leetcode;
2 |
3 | import org.junit.Test;
4 |
5 | /**
6 | * Created by sunhuahui on 2017/12/26.
7 | */
8 |
9 | public class AddTwoNumbers {
10 |
11 |
12 | @Test
13 | public void recursiveTest() {
14 | int sum = recursive(5);
15 | System.out.println("end : " + sum);
16 | }
17 |
18 | public class ListNode {
19 | int val;
20 | ListNode next;
21 |
22 | ListNode(int x) {
23 | val = x;
24 | }
25 | }
26 |
27 | public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
28 | ListNode node;
29 | boolean isEnter = false;
30 | if (l1.val + l2.val >= 10) {
31 | node = new ListNode(l1.val + l2.val - 10);
32 | isEnter = true;
33 | } else {
34 | node = new ListNode(l1.val + l2.val);
35 | }
36 |
37 | if (l1.next != null && l2.next != null) {
38 | if (isEnter) {
39 | l1.next.val += 1;
40 | } else {
41 | node.next = addTwoNumbers(l1.next, l2.next);
42 | }
43 | } else if (l1.next == null && l2.next != null) {
44 | if (isEnter) {
45 | node.next = addTwoNumbers(new ListNode(1), l2.next);
46 | } else {
47 | node.next = addTwoNumbers(new ListNode(0), l2.next);
48 | }
49 | } else if (l1.next != null && l2.next == null) {
50 | if (isEnter) {
51 | node.next = addTwoNumbers(l1.next, new ListNode(1));
52 | } else {
53 | node.next = addTwoNumbers(l1.next, new ListNode(0));
54 | }
55 |
56 | } else if (isEnter) {
57 | node.next = new ListNode(1);
58 | }
59 | return node;
60 | }
61 |
62 | int recursive(int i) {
63 | int sum = 0;
64 | if (0 == i)
65 | return (1);
66 | else {
67 | System.out.println(i);
68 | sum = i * recursive(i - 1);
69 | }
70 | System.out.println("end : " + sum);
71 | return sum;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/app/src/test/java/com/ody/study/util/LoggerFactory.java:
--------------------------------------------------------------------------------
1 | package com.ody.study.util;
2 |
3 | import static android.R.attr.format;
4 |
5 | /**
6 | * Created by sunhuahui on 2017/8/24.
7 | */
8 |
9 | public enum LoggerFactory {
10 |
11 | INSTANCE;
12 |
13 | public void info(String format, Object value) {
14 | int start = format.indexOf("{");
15 | int end = format.indexOf("}");
16 | System.out.println(format.substring(0, start + 1) + value + format.substring(end));
17 | }
18 |
19 | public void info(Object value) {
20 | System.out.println(value);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | apply from: "config.gradle"
3 |
4 | buildscript {
5 | repositories {
6 | jcenter()
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:2.3.3'
10 |
11 | // NOTE: Do not place your application dependencies here; they belong
12 | // in the individual module build.gradle files
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | jcenter()
19 | maven { url "https://jitpack.io" }
20 | //Bmob的maven仓库地址--必填
21 | maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
22 |
23 | //HotFix
24 | maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories" }
25 |
26 | //LeanCloud
27 | // maven {
28 | // url "http://mvn.leancloud.cn/nexus/content/repositories/public"
29 | // }
30 | }
31 | }
32 |
33 | task clean(type: Delete) {
34 | delete rootProject.buildDir
35 | }
36 |
--------------------------------------------------------------------------------
/circlemenu/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/circlemenu/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 25
5 | buildToolsVersion "25.0.2"
6 |
7 | defaultConfig {
8 | minSdkVersion 15
9 | targetSdkVersion 25
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |
15 | }
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | compile fileTree(dir: 'libs', include: ['*.jar'])
26 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
27 | exclude group: 'com.android.support', module: 'support-annotations'
28 | })
29 | compile 'com.android.support:appcompat-v7:' + rootProject.ext.dependencies.support_version
30 | testCompile 'junit:junit:4.12'
31 | }
32 |
--------------------------------------------------------------------------------
/circlemenu/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/sunhuahui/Library/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | # Uncomment this to preserve the line number information for
20 | # debugging stack traces.
21 | #-keepattributes SourceFile,LineNumberTable
22 |
23 | # If you keep the line number information, uncomment this to
24 | # hide the original source file name.
25 | #-renamesourcefileattribute SourceFile
26 |
--------------------------------------------------------------------------------
/circlemenu/src/androidTest/java/com/huaye/circlemenu/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.huaye.circlemenu;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.huaye.circlemenu.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/circlemenu/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/circlemenu/src/main/res/layout/circle_menu_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
20 |
21 |
--------------------------------------------------------------------------------
/circlemenu/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/circlemenu/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | CircleMenu
3 |
4 |
--------------------------------------------------------------------------------
/circlemenu/src/test/java/com/huaye/circlemenu/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.huaye.circlemenu;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/config.gradle:
--------------------------------------------------------------------------------
1 | ext {
2 | android = [
3 | compileSdkVersion: 26,
4 | buildToolsVersion: "26.0.0",
5 | minSdkVersion : 17,
6 | targetSdkVersion : 26,
7 | versionCode : 1,
8 | versionName : "1.0.0"
9 | ]
10 | dependencies = [
11 | "support_version": "26.+"
12 |
13 | ]
14 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sun8829/OdyAndroidStore/6b017b738dee3d625d203777820e1fcbd9c73f03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 28 10:00:20 PST 2015
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/groovy.gradle:
--------------------------------------------------------------------------------
1 | task(yugangshuo).doLast {
2 | println "start execute yuangshuo"
3 | }
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':circlemenu'
2 |
--------------------------------------------------------------------------------