diff --git a/.gitignore b/.gitignore index 0ac83b3..26cafd8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ -# root files -sample-server/ - # built application files *.apk *.ap_ @@ -14,24 +11,19 @@ sample-server/ # generated files bin/ gen/ -out/ # Local configuration file (sdk path, etc) -*.properties -proguard-project.txt +local.properties -# Eclipse project files -.classpath -.project -.settings +# Eclipse +.metadata -# Proguard folder generated by Eclipse -proguard/ +.DS_Store -# Intellij project files +# Idea +.gradle *.iml -*.ipr -*.iws .idea/ -.DS_Store +# Gradle +build/ diff --git a/bintray.gradle b/bintray.gradle new file mode 100644 index 0000000..db2731c --- /dev/null +++ b/bintray.gradle @@ -0,0 +1,128 @@ +group = PROJ_GROUP +version = PROJ_VERSION +project.archivesBaseName = PROJ_ARTIFACT_ID + +apply plugin: 'com.jfrog.bintray' +apply plugin: 'com.github.dcendents.android-maven' + +task sourcesJar(type: Jar) { + from android.sourceSets.main.java.srcDirs + classifier = 'sources' +} + +task javadoc(type: Javadoc) { + source = android.sourceSets.main.java.srcDirs + classpath += configurations.compile + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +javadoc { + options{ + encoding "UTF-8" + charSet 'UTF-8' + author true + version true + links "http://androiddoc.qiniudn.com/reference/" + title "$PROJ_ARTIFACT_ID $PROJ_VERSION" + } +} + +artifacts { + archives sourcesJar + archives javadocJar +} + +install { + repositories.mavenInstaller { + pom.project { + name PROJ_NAME + description PROJ_DESCRIPTION + url PROJ_WEBSITEURL + inceptionYear PROJ_INCEPTION_YEAR + + packaging 'aar' + groupId PROJ_GROUP + artifactId PROJ_ARTIFACT_ID + version PROJ_VERSION + + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + scm { + connection PROJ_VCSURL + url PROJ_WEBSITEURL + + } + } + } +} + +bintray { + user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : project.property('BINTRAY_USER') + key = project.hasProperty('bintrayKey') ? project.property('bintrayKey') : project.property('BINTRAY_KEY') + + configurations = ['archives'] + + dryRun = false + publish = true + + pkg { + repo = 'maven' + name = PROJ_NAME + licenses = ['Apache-2.0'] + vcsUrl = PROJ_VCSURL + websiteUrl = PROJ_WEBSITEURL + issueTrackerUrl = PROJ_ISSUETRACKERURL + publicDownloadNumbers = true + version { + name = PROJ_VERSION + desc = PROJ_DESCRIPTION + vcsTag = PROJ_VERSION + + gpg { + sign = true + } + + mavenCentralSync { + sync = project.hasProperty('SONATYPE_USER') && project.hasProperty('SONATYPE_KEY') + user = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : "" + password = project.hasProperty('SONATYPE_PASS') ? project.property('SONATYPE_PASS') : "" + close = '1' + } + } + } +} + +//以下内容用于发布SNAPSHOT版本,如果不需要可以移除。 +//参考自:https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin + +apply plugin: "com.jfrog.artifactory" +artifactory { + contextUrl = 'https://oss.jfrog.org/artifactory' //The base Artifactory URL if not overridden by the publisher/resolver + resolve { + repository { + repoKey = 'libs-release' + } + } + publish { + repository { + repoKey = 'oss-snapshot-local' //The Artifactory repository key to publish to + username = bintray.user + password = bintray.key + maven = true + } + defaults { + //这里的名字和前面bintray.configurations的值一致即可,会将其包含的输出上传到jfrog上去 + publishConfigs('archives') + } + } +} diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..8b0aeb4 --- /dev/null +++ b/build.gradle @@ -0,0 +1,17 @@ +buildscript { + repositories { + jcenter() + google() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.2.1' + } +} + +allprojects { + repositories { + jcenter() + google() + } +} + diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..1d3591c --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..8c0fb64 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..4510e10 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed May 16 13:09:32 CST 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..7c43b2a --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,41 @@ +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0' + classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0" // Remove it if you won't to publish SNAPSHOT version. + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 27 + + defaultConfig { + minSdkVersion 9 + targetSdkVersion 27 + versionCode 28 + versionName "1.9.2" + consumerProguardFiles 'proguard-rules.pro' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + lintOptions { + abortOnError false + } +} + +dependencies { +} + +if (hasProperty("bintrayUser") || hasProperty("BINTRAY_USER")) { + apply from: '../bintray.gradle' +} diff --git a/library/gradle.properties b/library/gradle.properties new file mode 100644 index 0000000..530cf36 --- /dev/null +++ b/library/gradle.properties @@ -0,0 +1,13 @@ +PROJ_GROUP=com.githang +PROJ_ARTIFACT_ID=android-lite-orm +PROJ_VERSION=1.9.3 +PROJ_NAME=android-lite-orm +PROJ_DESCRIPTION=LiteOrm is a fast, small, powerful ORM framework for Android. LiteOrm makes you do CRUD operarions on SQLite database with a sigle line of code efficiently. +PROJ_INCEPTION_YEAR=2016 +PROJ_WEBSITEURL=https://github.com/msdx/android-lite-orm +PROJ_VCSURL=git@github.com:msdx/android-lite-orm.git +PROJ_ISSUETRACKERURL=https://github.com/msdx/android-lite-orm/issues + +LICENSE_NAME=The Apache Software License, Version 2.0 +LICENSE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +LICENSE_DISTRIBUTION=repo diff --git a/library/proguard-android-optimize.txt b/library/proguard-android-optimize.txt deleted file mode 100644 index b0330b4..0000000 --- a/library/proguard-android-optimize.txt +++ /dev/null @@ -1,39 +0,0 @@ -#Orm混淆建议: -# 1. 给你要持久化的每一个Java(Model)类设置一个表名:即为类添加@Table("table_name")注解。 -# 2. 给你要持久化的每一个属性(成员变量)设置一个列名: 即为属性加@Column("column_name")注解。 -# 满足1、2则可以将你要持久化的类和者属性随意混淆; -# 反之,则需要将你要持久化的类和属性keep住,不可混淆。 - --optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* --optimizationpasses 5 --allowaccessmodification --dontpreverify - -# The remainder of this file is identical to the non-optimized version -# of the Proguard configuration file (except that the other file has -# flags to turn off optimization). - --dontusemixedcaseclassnames --dontskipnonpubliclibraryclasses --verbose - -# 使用注解 --keepattributes *Annotation*,Signature,Exceptions,InnerClasses - -# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations --keepclassmembers enum * { - **[] $VALUES; - public *; -} - -# 保持混淆时类的实名及行号(--------------- 调试时打开 --------------) -#-keepattributes SourceFile,LineNumberTable - -# 开发者需要调用,不可以混淆 --keep public class com.litesuits.orm.LiteOrm { *; } --keep public class com.litesuits.orm.db.* { *; } --keep public class com.litesuits.orm.db.model.** { *; } --keep public class com.litesuits.orm.db.annotation.** { *; } --keep public class com.litesuits.orm.db.enums.** { *; } --keep public class com.litesuits.orm.log.* { *; } --keep public class com.litesuits.orm.db.assit.* { *; } \ No newline at end of file diff --git a/library/proguard-rules.pro b/library/proguard-rules.pro new file mode 100644 index 0000000..91ff372 --- /dev/null +++ b/library/proguard-rules.pro @@ -0,0 +1,30 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /home/quinn/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 *; +#} + + +# 使用注解 +-keepattributes *Annotation*,Signature,Exceptions,InnerClasses + +# 开发者需要调用,不可以混淆 +-keep public class com.litesuits.orm.LiteOrm { *; } +-keep public class com.litesuits.orm.db.* { *; } +-keep public class com.litesuits.orm.db.model.** { *; } +-keep public class com.litesuits.orm.db.annotation.** { *; } +-keep public class com.litesuits.orm.db.enums.** { *; } +-keep public class com.litesuits.orm.log.* { *; } +-keep public class com.litesuits.orm.db.assit.* { *; } \ No newline at end of file diff --git a/library/project.properties b/library/project.properties deleted file mode 100644 index 9bdb3da..0000000 --- a/library/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -android.library=true -# Project target. -target=android-11 diff --git a/library/AndroidManifest.xml b/library/src/main/AndroidManifest.xml similarity index 60% rename from library/AndroidManifest.xml rename to library/src/main/AndroidManifest.xml index 11e050d..00f4082 100644 --- a/library/AndroidManifest.xml +++ b/library/src/main/AndroidManifest.xml @@ -1,10 +1,7 @@ - - - + diff --git a/library/src/com/litesuits/orm/LiteOrm.java b/library/src/main/java/com/litesuits/orm/LiteOrm.java similarity index 100% rename from library/src/com/litesuits/orm/LiteOrm.java rename to library/src/main/java/com/litesuits/orm/LiteOrm.java diff --git a/library/src/com/litesuits/orm/db/DataBase.java b/library/src/main/java/com/litesuits/orm/db/DataBase.java similarity index 100% rename from library/src/com/litesuits/orm/db/DataBase.java rename to library/src/main/java/com/litesuits/orm/db/DataBase.java diff --git a/library/src/com/litesuits/orm/db/DataBaseConfig.java b/library/src/main/java/com/litesuits/orm/db/DataBaseConfig.java similarity index 100% rename from library/src/com/litesuits/orm/db/DataBaseConfig.java rename to library/src/main/java/com/litesuits/orm/db/DataBaseConfig.java diff --git a/library/src/com/litesuits/orm/db/TableManager.java b/library/src/main/java/com/litesuits/orm/db/TableManager.java similarity index 100% rename from library/src/com/litesuits/orm/db/TableManager.java rename to library/src/main/java/com/litesuits/orm/db/TableManager.java diff --git a/library/src/com/litesuits/orm/db/annotation/Check.java b/library/src/main/java/com/litesuits/orm/db/annotation/Check.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Check.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Check.java diff --git a/library/src/com/litesuits/orm/db/annotation/Collate.java b/library/src/main/java/com/litesuits/orm/db/annotation/Collate.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Collate.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Collate.java diff --git a/library/src/com/litesuits/orm/db/annotation/Column.java b/library/src/main/java/com/litesuits/orm/db/annotation/Column.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Column.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Column.java diff --git a/library/src/com/litesuits/orm/db/annotation/Conflict.java b/library/src/main/java/com/litesuits/orm/db/annotation/Conflict.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Conflict.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Conflict.java diff --git a/library/src/com/litesuits/orm/db/annotation/Default.java b/library/src/main/java/com/litesuits/orm/db/annotation/Default.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Default.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Default.java diff --git a/library/src/com/litesuits/orm/db/annotation/Ignore.java b/library/src/main/java/com/litesuits/orm/db/annotation/Ignore.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Ignore.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Ignore.java diff --git a/library/src/com/litesuits/orm/db/annotation/MapCollection.java b/library/src/main/java/com/litesuits/orm/db/annotation/MapCollection.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/MapCollection.java rename to library/src/main/java/com/litesuits/orm/db/annotation/MapCollection.java diff --git a/library/src/com/litesuits/orm/db/annotation/Mapping.java b/library/src/main/java/com/litesuits/orm/db/annotation/Mapping.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Mapping.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Mapping.java diff --git a/library/src/com/litesuits/orm/db/annotation/NotNull.java b/library/src/main/java/com/litesuits/orm/db/annotation/NotNull.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/NotNull.java rename to library/src/main/java/com/litesuits/orm/db/annotation/NotNull.java diff --git a/library/src/com/litesuits/orm/db/annotation/PrimaryKey.java b/library/src/main/java/com/litesuits/orm/db/annotation/PrimaryKey.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/PrimaryKey.java rename to library/src/main/java/com/litesuits/orm/db/annotation/PrimaryKey.java diff --git a/library/src/com/litesuits/orm/db/annotation/Table.java b/library/src/main/java/com/litesuits/orm/db/annotation/Table.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Table.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Table.java diff --git a/library/src/com/litesuits/orm/db/annotation/Temporary.java b/library/src/main/java/com/litesuits/orm/db/annotation/Temporary.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Temporary.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Temporary.java diff --git a/library/src/com/litesuits/orm/db/annotation/Unique.java b/library/src/main/java/com/litesuits/orm/db/annotation/Unique.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/Unique.java rename to library/src/main/java/com/litesuits/orm/db/annotation/Unique.java diff --git a/library/src/com/litesuits/orm/db/annotation/UniqueCombine.java b/library/src/main/java/com/litesuits/orm/db/annotation/UniqueCombine.java similarity index 100% rename from library/src/com/litesuits/orm/db/annotation/UniqueCombine.java rename to library/src/main/java/com/litesuits/orm/db/annotation/UniqueCombine.java diff --git a/library/src/com/litesuits/orm/db/assit/Checker.java b/library/src/main/java/com/litesuits/orm/db/assit/Checker.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/Checker.java rename to library/src/main/java/com/litesuits/orm/db/assit/Checker.java diff --git a/library/src/com/litesuits/orm/db/assit/CollSpliter.java b/library/src/main/java/com/litesuits/orm/db/assit/CollSpliter.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/CollSpliter.java rename to library/src/main/java/com/litesuits/orm/db/assit/CollSpliter.java diff --git a/library/src/com/litesuits/orm/db/assit/Encrypt.java b/library/src/main/java/com/litesuits/orm/db/assit/Encrypt.java similarity index 92% rename from library/src/com/litesuits/orm/db/assit/Encrypt.java rename to library/src/main/java/com/litesuits/orm/db/assit/Encrypt.java index 17fcfd6..0301de7 100755 --- a/library/src/com/litesuits/orm/db/assit/Encrypt.java +++ b/library/src/main/java/com/litesuits/orm/db/assit/Encrypt.java @@ -37,7 +37,7 @@ public static String getSHA512EncString(String txt) { public static String getEncodeString(String src, String algorithm) { try { - MessageDigest digest = MessageDigest.getInstance("MD5"); + MessageDigest digest = MessageDigest.getInstance(algorithm); digest.update(src.getBytes()); byte[] md = digest.digest(); int j = md.length; diff --git a/library/src/com/litesuits/orm/db/assit/Querier.java b/library/src/main/java/com/litesuits/orm/db/assit/Querier.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/Querier.java rename to library/src/main/java/com/litesuits/orm/db/assit/Querier.java diff --git a/library/src/com/litesuits/orm/db/assit/QueryBuilder.java b/library/src/main/java/com/litesuits/orm/db/assit/QueryBuilder.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/QueryBuilder.java rename to library/src/main/java/com/litesuits/orm/db/assit/QueryBuilder.java diff --git a/library/src/com/litesuits/orm/db/assit/SQLBuilder.java b/library/src/main/java/com/litesuits/orm/db/assit/SQLBuilder.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/SQLBuilder.java rename to library/src/main/java/com/litesuits/orm/db/assit/SQLBuilder.java diff --git a/library/src/com/litesuits/orm/db/assit/SQLStatement.java b/library/src/main/java/com/litesuits/orm/db/assit/SQLStatement.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/SQLStatement.java rename to library/src/main/java/com/litesuits/orm/db/assit/SQLStatement.java diff --git a/library/src/com/litesuits/orm/db/assit/SQLiteHelper.java b/library/src/main/java/com/litesuits/orm/db/assit/SQLiteHelper.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/SQLiteHelper.java rename to library/src/main/java/com/litesuits/orm/db/assit/SQLiteHelper.java diff --git a/library/src/com/litesuits/orm/db/assit/Transaction.java b/library/src/main/java/com/litesuits/orm/db/assit/Transaction.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/Transaction.java rename to library/src/main/java/com/litesuits/orm/db/assit/Transaction.java diff --git a/library/src/com/litesuits/orm/db/assit/WhereBuilder.java b/library/src/main/java/com/litesuits/orm/db/assit/WhereBuilder.java similarity index 100% rename from library/src/com/litesuits/orm/db/assit/WhereBuilder.java rename to library/src/main/java/com/litesuits/orm/db/assit/WhereBuilder.java diff --git a/library/src/com/litesuits/orm/db/enums/AssignType.java b/library/src/main/java/com/litesuits/orm/db/enums/AssignType.java similarity index 100% rename from library/src/com/litesuits/orm/db/enums/AssignType.java rename to library/src/main/java/com/litesuits/orm/db/enums/AssignType.java diff --git a/library/src/com/litesuits/orm/db/enums/Relation.java b/library/src/main/java/com/litesuits/orm/db/enums/Relation.java similarity index 100% rename from library/src/com/litesuits/orm/db/enums/Relation.java rename to library/src/main/java/com/litesuits/orm/db/enums/Relation.java diff --git a/library/src/com/litesuits/orm/db/enums/Strategy.java b/library/src/main/java/com/litesuits/orm/db/enums/Strategy.java similarity index 100% rename from library/src/com/litesuits/orm/db/enums/Strategy.java rename to library/src/main/java/com/litesuits/orm/db/enums/Strategy.java diff --git a/library/src/com/litesuits/orm/db/impl/CascadeSQLiteImpl.java b/library/src/main/java/com/litesuits/orm/db/impl/CascadeSQLiteImpl.java similarity index 100% rename from library/src/com/litesuits/orm/db/impl/CascadeSQLiteImpl.java rename to library/src/main/java/com/litesuits/orm/db/impl/CascadeSQLiteImpl.java diff --git a/library/src/com/litesuits/orm/db/impl/SingleSQLiteImpl.java b/library/src/main/java/com/litesuits/orm/db/impl/SingleSQLiteImpl.java similarity index 100% rename from library/src/com/litesuits/orm/db/impl/SingleSQLiteImpl.java rename to library/src/main/java/com/litesuits/orm/db/impl/SingleSQLiteImpl.java diff --git a/library/src/com/litesuits/orm/db/model/ColumnsValue.java b/library/src/main/java/com/litesuits/orm/db/model/ColumnsValue.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/ColumnsValue.java rename to library/src/main/java/com/litesuits/orm/db/model/ColumnsValue.java diff --git a/library/src/com/litesuits/orm/db/model/ConflictAlgorithm.java b/library/src/main/java/com/litesuits/orm/db/model/ConflictAlgorithm.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/ConflictAlgorithm.java rename to library/src/main/java/com/litesuits/orm/db/model/ConflictAlgorithm.java diff --git a/library/src/com/litesuits/orm/db/model/EntityTable.java b/library/src/main/java/com/litesuits/orm/db/model/EntityTable.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/EntityTable.java rename to library/src/main/java/com/litesuits/orm/db/model/EntityTable.java diff --git a/library/src/com/litesuits/orm/db/model/MapInfo.java b/library/src/main/java/com/litesuits/orm/db/model/MapInfo.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/MapInfo.java rename to library/src/main/java/com/litesuits/orm/db/model/MapInfo.java diff --git a/library/src/com/litesuits/orm/db/model/MapProperty.java b/library/src/main/java/com/litesuits/orm/db/model/MapProperty.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/MapProperty.java rename to library/src/main/java/com/litesuits/orm/db/model/MapProperty.java diff --git a/library/src/com/litesuits/orm/db/model/Primarykey.java b/library/src/main/java/com/litesuits/orm/db/model/Primarykey.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/Primarykey.java rename to library/src/main/java/com/litesuits/orm/db/model/Primarykey.java diff --git a/library/src/com/litesuits/orm/db/model/Property.java b/library/src/main/java/com/litesuits/orm/db/model/Property.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/Property.java rename to library/src/main/java/com/litesuits/orm/db/model/Property.java diff --git a/library/src/com/litesuits/orm/db/model/RelationKey.java b/library/src/main/java/com/litesuits/orm/db/model/RelationKey.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/RelationKey.java rename to library/src/main/java/com/litesuits/orm/db/model/RelationKey.java diff --git a/library/src/com/litesuits/orm/db/model/SQLiteColumn.java b/library/src/main/java/com/litesuits/orm/db/model/SQLiteColumn.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/SQLiteColumn.java rename to library/src/main/java/com/litesuits/orm/db/model/SQLiteColumn.java diff --git a/library/src/com/litesuits/orm/db/model/SQLiteTable.java b/library/src/main/java/com/litesuits/orm/db/model/SQLiteTable.java similarity index 100% rename from library/src/com/litesuits/orm/db/model/SQLiteTable.java rename to library/src/main/java/com/litesuits/orm/db/model/SQLiteTable.java diff --git a/library/src/main/java/com/litesuits/orm/db/utils/ClassFactory.java b/library/src/main/java/com/litesuits/orm/db/utils/ClassFactory.java new file mode 100644 index 0000000..2e39195 --- /dev/null +++ b/library/src/main/java/com/litesuits/orm/db/utils/ClassFactory.java @@ -0,0 +1,135 @@ +package com.litesuits.orm.db.utils; + +import java.io.ObjectInputStream; +import java.io.ObjectStreamClass; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +/** + * Magic that creates instances of arbitrary concrete classes. Derived from Gson's UnsafeAllocator + * and ConstructorConstructor classes. + * Copy from square/moshi project. + * @author Joel Leitch + * @author Jesse Wilson + */ +abstract class ClassFactory { + abstract T newInstance() throws + InvocationTargetException, IllegalAccessException, InstantiationException; + + public static ClassFactory get(final Class rawType) { + // Try to find a no-args constructor. May be any visibility including private. + try { + final Constructor constructor = rawType.getDeclaredConstructor(); + constructor.setAccessible(true); + return new ClassFactory() { + @SuppressWarnings("unchecked") // T is the same raw type as is requested + @Override + public T newInstance() throws IllegalAccessException, InvocationTargetException, + InstantiationException { + Object[] args = null; + return (T) constructor.newInstance(args); + } + + @Override + public String toString() { + return rawType.getName(); + } + }; + } catch (NoSuchMethodException ignored) { + // No no-args constructor. Fall back to something more magical... + } + + // Try the JVM's Unsafe mechanism. + // public class Unsafe { + // public Object allocateInstance(Class type); + // } + try { + Class unsafeClass = Class.forName("sun.misc.Unsafe"); + Field f = unsafeClass.getDeclaredField("theUnsafe"); + f.setAccessible(true); + final Object unsafe = f.get(null); + final Method allocateInstance = unsafeClass.getMethod("allocateInstance", Class.class); + return new ClassFactory() { + @SuppressWarnings("unchecked") + @Override + public T newInstance() throws InvocationTargetException, IllegalAccessException { + return (T) allocateInstance.invoke(unsafe, rawType); + } + + @Override + public String toString() { + return rawType.getName(); + } + }; + } catch (IllegalAccessException e) { + throw new AssertionError(); + } catch (ClassNotFoundException ignored) { + // Not the expected version of the Oracle Java library! + } catch (NoSuchMethodException ignore) { + // Not the expected version of the Oracle Java library! + } catch (NoSuchFieldException ignore) { + // Not the expected version of the Oracle Java library! + } + + // Try (post-Gingerbread) Dalvik/libcore's ObjectStreamClass mechanism. + // public class ObjectStreamClass { + // private static native int getConstructorId(Class c); + // private static native Object newInstance(Class instantiationClass, int methodId); + // } + try { + Method getConstructorId = ObjectStreamClass.class.getDeclaredMethod( + "getConstructorId", Class.class); + getConstructorId.setAccessible(true); + final int constructorId = (Integer) getConstructorId.invoke(null, Object.class); + final Method newInstance = ObjectStreamClass.class.getDeclaredMethod("newInstance", + Class.class, int.class); + newInstance.setAccessible(true); + return new ClassFactory() { + @SuppressWarnings("unchecked") + @Override + public T newInstance() throws InvocationTargetException, IllegalAccessException { + return (T) newInstance.invoke(null, rawType, constructorId); + } + + @Override + public String toString() { + return rawType.getName(); + } + }; + } catch (IllegalAccessException e) { + throw new AssertionError(); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException ignored) { + // Not the expected version of Dalvik/libcore! + } + + // Try (pre-Gingerbread) Dalvik/libcore's ObjectInputStream mechanism. + // public class ObjectInputStream { + // private static native Object newInstance( + // Class instantiationClass, Class constructorClass); + // } + try { + final Method newInstance = ObjectInputStream.class.getDeclaredMethod( + "newInstance", Class.class, Class.class); + newInstance.setAccessible(true); + return new ClassFactory() { + @SuppressWarnings("unchecked") + @Override + public T newInstance() throws InvocationTargetException, IllegalAccessException { + return (T) newInstance.invoke(null, rawType, Object.class); + } + + @Override + public String toString() { + return rawType.getName(); + } + }; + } catch (Exception ignored) { + } + + throw new IllegalArgumentException("cannot construct instances of " + rawType.getName()); + } +} \ No newline at end of file diff --git a/library/src/com/litesuits/orm/db/utils/ClassUtil.java b/library/src/main/java/com/litesuits/orm/db/utils/ClassUtil.java similarity index 62% rename from library/src/com/litesuits/orm/db/utils/ClassUtil.java rename to library/src/main/java/com/litesuits/orm/db/utils/ClassUtil.java index 00eb65e..bc92366 100755 --- a/library/src/com/litesuits/orm/db/utils/ClassUtil.java +++ b/library/src/main/java/com/litesuits/orm/db/utils/ClassUtil.java @@ -1,17 +1,22 @@ package com.litesuits.orm.db.utils; -import android.annotation.TargetApi; -import android.os.Build; import com.litesuits.orm.db.annotation.MapCollection; import java.lang.reflect.Array; -import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; -import java.util.Arrays; +import java.util.ArrayDeque; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; /** * 类工具 @@ -20,6 +25,7 @@ * @date 2013-6-10下午8:00:46 */ public class ClassUtil { + private static final Map CLASS_FACTORIES = new HashMap(); /** * 判断类是否是基础数据类型 @@ -39,22 +45,12 @@ public static boolean isBaseDataType(Class clazz) { */ public static T newInstance(Class claxx) throws IllegalAccessException, InvocationTargetException, InstantiationException { - Constructor[] cons = claxx.getDeclaredConstructors(); - for (Constructor c : cons) { - Class[] cls = c.getParameterTypes(); - if (cls.length == 0) { - c.setAccessible(true); - return (T) c.newInstance(); - } else { - Object[] objs = new Object[cls.length]; - for (int i = 0; i < cls.length; i++) { - objs[i] = getDefaultPrimiticeValue(cls[i]); - } - c.setAccessible(true); - return (T) c.newInstance(objs); - } + ClassFactory factory = CLASS_FACTORIES.get(claxx); + if (factory == null) { + factory = ClassFactory.get(claxx); + CLASS_FACTORIES.put(claxx, factory); } - return null; + return factory.newInstance(); } public static Object newCollection(Class claxx) throws IllegalAccessException, InstantiationException { @@ -64,7 +60,22 @@ public static Object newCollection(Class claxx) throws IllegalAccessException public static Object newCollectionForField(Field field) throws IllegalAccessException, InstantiationException { MapCollection coll = field.getAnnotation(MapCollection.class); if (coll == null) { - return field.getType().newInstance(); + final Class rawType = field.getType(); + if (rawType.isInterface()) { + if (List.class.isAssignableFrom(rawType)) { + return new ArrayList<>(); + } else if (SortedSet.class.isAssignableFrom(rawType)) { + return new TreeSet<>(); + } else if (Set.class.isAssignableFrom(rawType)) { + return new LinkedHashSet<>(); + } else if (Queue.class.isAssignableFrom(rawType)) { + return new ArrayDeque<>(); + } else { + throw new IllegalAccessException("The type " + rawType.getName() + " cannot be instantiated"); + } + } else { + return rawType.newInstance(); + } } else { return coll.value().newInstance(); } diff --git a/library/src/com/litesuits/orm/db/utils/DataUtil.java b/library/src/main/java/com/litesuits/orm/db/utils/DataUtil.java similarity index 100% rename from library/src/com/litesuits/orm/db/utils/DataUtil.java rename to library/src/main/java/com/litesuits/orm/db/utils/DataUtil.java diff --git a/library/src/com/litesuits/orm/db/utils/FieldUtil.java b/library/src/main/java/com/litesuits/orm/db/utils/FieldUtil.java similarity index 93% rename from library/src/com/litesuits/orm/db/utils/FieldUtil.java rename to library/src/main/java/com/litesuits/orm/db/utils/FieldUtil.java index d52b525..2ee07d9 100755 --- a/library/src/com/litesuits/orm/db/utils/FieldUtil.java +++ b/library/src/main/java/com/litesuits/orm/db/utils/FieldUtil.java @@ -139,13 +139,13 @@ public static void setNumber(Object o, Field field, long n) throws IllegalAccess } else if (claxx == byte.class) { field.setByte(o, (byte) n); } else if (claxx == Long.class) { - field.set(o, new Long(n)); + field.set(o, Long.valueOf(n)); } else if (claxx == Integer.class) { - field.set(o, new Integer((int) n)); + field.set(o, Integer.valueOf((int) n)); } else if (claxx == Short.class) { - field.set(o, new Short((short) n)); + field.set(o, Short.valueOf((short) n)); } else if (claxx == Byte.class) { - field.set(o, new Byte((byte) n)); + field.set(o, Byte.valueOf((byte) n)); } else { throw new RuntimeException("field is not a number class"); } diff --git a/library/src/com/litesuits/orm/kvdb/DataCache.java b/library/src/main/java/com/litesuits/orm/kvdb/DataCache.java similarity index 100% rename from library/src/com/litesuits/orm/kvdb/DataCache.java rename to library/src/main/java/com/litesuits/orm/kvdb/DataCache.java diff --git a/library/src/com/litesuits/orm/kvdb/FileDataCahe.java b/library/src/main/java/com/litesuits/orm/kvdb/FileDataCahe.java similarity index 100% rename from library/src/com/litesuits/orm/kvdb/FileDataCahe.java rename to library/src/main/java/com/litesuits/orm/kvdb/FileDataCahe.java diff --git a/library/src/com/litesuits/orm/log/OrmLog.java b/library/src/main/java/com/litesuits/orm/log/OrmLog.java similarity index 100% rename from library/src/com/litesuits/orm/log/OrmLog.java rename to library/src/main/java/com/litesuits/orm/log/OrmLog.java diff --git a/sample/build.gradle b/sample/build.gradle new file mode 100644 index 0000000..2dfb6d0 --- /dev/null +++ b/sample/build.gradle @@ -0,0 +1,15 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 27 + + defaultConfig { + minSdkVersion 16 + targetSdkVersion 22 + } +} + +dependencies { + implementation project(':library') +} + diff --git a/sample/ic_launcher-web.png b/sample/ic_launcher-web.png deleted file mode 100755 index 64bb92a..0000000 Binary files a/sample/ic_launcher-web.png and /dev/null differ diff --git a/sample/libs/lite-orm-1.9.1.jar b/sample/libs/lite-orm-1.9.1.jar deleted file mode 100644 index a79a3df..0000000 Binary files a/sample/libs/lite-orm-1.9.1.jar and /dev/null differ diff --git a/sample/proguard-android-optimize.txt b/sample/proguard-android-optimize.txt deleted file mode 100644 index 11f7ec7..0000000 --- a/sample/proguard-android-optimize.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This is a configuration file for ProGuard. -# http://proguard.sourceforge.net/index.html#manual/usage.html - -# Optimizations: If you don't want to optimize, use the -# proguard-android.txt configuration file instead of this one, which -# turns off the optimization flags. Adding optimization introduces -# certain risks, since for example not all optimizations performed by -# ProGuard works on all versions of Dalvik. The following flags turn -# off various optimizations known to have issues, but the list may not -# be complete or up to date. (The "arithmetic" optimization can be -# used if you are only targeting Android 2.0 or later.) Make sure you -# test thoroughly if you go this route. - -# ---------------------android sdk 推荐混淆配置-------------------# --optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* --optimizationpasses 5 --allowaccessmodification --dontpreverify - -# The remainder of this file is identical to the non-optimized version -# of the Proguard configuration file (except that the other file has -# flags to turn off optimization). - --dontusemixedcaseclassnames --dontskipnonpubliclibraryclasses --verbose - --keepattributes *Annotation* --keep public class com.google.vending.licensing.ILicensingService --keep public class com.android.vending.licensing.ILicensingService - -# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native --keepclasseswithmembernames class * { - native ; -} - -# keep setters in Views so that animations can still work. -# see http://proguard.sourceforge.net/manual/examples.html#beans --keepclassmembers public class * extends android.view.View { - void set*(***); - *** get*(); -} - -# We want to keep methods in Activity that could be used in the XML attribute onClick --keepclassmembers class * extends android.app.Activity { - public void *(android.view.View); -} - -# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} - --keep class * implements android.os.Parcelable { - public static final android.os.Parcelable$Creator *; -} - --keepclassmembers class **.R$* { - public static ; -} - - -# The support library contains references to newer platform versions. -# Don't warn about those in case this app is linking against an older -# platform version. We know about them, and they are safe. --dontwarn android.support.** - -# ---------------------android sdk 推荐的混淆配置结束-------------------# - -# 使用注解 --keepattributes Signature -# -keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod - -# 模型数据需要序列化,不可混淆 -#-keep class * implements java.io.Serializable { *; } - -##---------------Begin: proguard configuration for Gson ---------- -# Gson uses generic type information stored in a class file when working with fields. Proguard -# removes such information by default, so configure it to keep all of it. -#-keep class com.google.gson.** { *; } -# Gson specific classes -#-keep class sun.misc.Unsafe { *; } -#-keep class com.google.gson.stream.** { *; } -# Application classes that will be serialized/deserialized over Gson -#-keep class com.google.gson.examples.android.model.** { *; } -##---------------End: proguard configuration for Gson ---------- - diff --git a/sample/project.properties b/sample/project.properties deleted file mode 100755 index 4ab1256..0000000 --- a/sample/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-19 diff --git a/sample/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml similarity index 92% rename from sample/AndroidManifest.xml rename to sample/src/main/AndroidManifest.xml index b3b1ce6..436e144 100755 --- a/sample/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -4,9 +4,6 @@ android:versionCode="1" android:versionName="1.0"> - - diff --git a/sample/src/com/litesuits/orm/model/Model.java b/sample/src/main/java/com/litesuits/orm/model/Model.java similarity index 100% rename from sample/src/com/litesuits/orm/model/Model.java rename to sample/src/main/java/com/litesuits/orm/model/Model.java diff --git a/sample/src/com/litesuits/orm/model/Person.java b/sample/src/main/java/com/litesuits/orm/model/Person.java similarity index 100% rename from sample/src/com/litesuits/orm/model/Person.java rename to sample/src/main/java/com/litesuits/orm/model/Person.java diff --git a/sample/src/com/litesuits/orm/model/TestModel.java b/sample/src/main/java/com/litesuits/orm/model/TestModel.java similarity index 100% rename from sample/src/com/litesuits/orm/model/TestModel.java rename to sample/src/main/java/com/litesuits/orm/model/TestModel.java diff --git a/sample/src/com/litesuits/orm/model/User.java b/sample/src/main/java/com/litesuits/orm/model/User.java similarity index 100% rename from sample/src/com/litesuits/orm/model/User.java rename to sample/src/main/java/com/litesuits/orm/model/User.java diff --git a/sample/src/com/litesuits/orm/model/cascade/Book.java b/sample/src/main/java/com/litesuits/orm/model/cascade/Book.java similarity index 100% rename from sample/src/com/litesuits/orm/model/cascade/Book.java rename to sample/src/main/java/com/litesuits/orm/model/cascade/Book.java diff --git a/sample/src/com/litesuits/orm/model/cascade/Classes.java b/sample/src/main/java/com/litesuits/orm/model/cascade/Classes.java similarity index 100% rename from sample/src/com/litesuits/orm/model/cascade/Classes.java rename to sample/src/main/java/com/litesuits/orm/model/cascade/Classes.java diff --git a/sample/src/com/litesuits/orm/model/cascade/School.java b/sample/src/main/java/com/litesuits/orm/model/cascade/School.java similarity index 100% rename from sample/src/com/litesuits/orm/model/cascade/School.java rename to sample/src/main/java/com/litesuits/orm/model/cascade/School.java diff --git a/sample/src/com/litesuits/orm/model/cascade/Student.java b/sample/src/main/java/com/litesuits/orm/model/cascade/Student.java similarity index 100% rename from sample/src/com/litesuits/orm/model/cascade/Student.java rename to sample/src/main/java/com/litesuits/orm/model/cascade/Student.java diff --git a/sample/src/com/litesuits/orm/model/cascade/Teacher.java b/sample/src/main/java/com/litesuits/orm/model/cascade/Teacher.java similarity index 100% rename from sample/src/com/litesuits/orm/model/cascade/Teacher.java rename to sample/src/main/java/com/litesuits/orm/model/cascade/Teacher.java diff --git a/sample/src/com/litesuits/orm/model/single/Address.java b/sample/src/main/java/com/litesuits/orm/model/single/Address.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Address.java rename to sample/src/main/java/com/litesuits/orm/model/single/Address.java diff --git a/sample/src/com/litesuits/orm/model/single/BaseModel.java b/sample/src/main/java/com/litesuits/orm/model/single/BaseModel.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/BaseModel.java rename to sample/src/main/java/com/litesuits/orm/model/single/BaseModel.java diff --git a/sample/src/com/litesuits/orm/model/single/Boss.java b/sample/src/main/java/com/litesuits/orm/model/single/Boss.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Boss.java rename to sample/src/main/java/com/litesuits/orm/model/single/Boss.java diff --git a/sample/src/com/litesuits/orm/model/single/Company.java b/sample/src/main/java/com/litesuits/orm/model/single/Company.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Company.java rename to sample/src/main/java/com/litesuits/orm/model/single/Company.java diff --git a/sample/src/com/litesuits/orm/model/single/Man.java b/sample/src/main/java/com/litesuits/orm/model/single/Man.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Man.java rename to sample/src/main/java/com/litesuits/orm/model/single/Man.java diff --git a/sample/src/com/litesuits/orm/model/single/Person.java b/sample/src/main/java/com/litesuits/orm/model/single/Person.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Person.java rename to sample/src/main/java/com/litesuits/orm/model/single/Person.java diff --git a/sample/src/com/litesuits/orm/model/single/Wife.java b/sample/src/main/java/com/litesuits/orm/model/single/Wife.java similarity index 100% rename from sample/src/com/litesuits/orm/model/single/Wife.java rename to sample/src/main/java/com/litesuits/orm/model/single/Wife.java diff --git a/sample/src/com/litesuits/orm/samples/BaseActivity.java b/sample/src/main/java/com/litesuits/orm/samples/BaseActivity.java similarity index 100% rename from sample/src/com/litesuits/orm/samples/BaseActivity.java rename to sample/src/main/java/com/litesuits/orm/samples/BaseActivity.java diff --git a/sample/src/com/litesuits/orm/samples/CascadeTestActivity.java b/sample/src/main/java/com/litesuits/orm/samples/CascadeTestActivity.java similarity index 100% rename from sample/src/com/litesuits/orm/samples/CascadeTestActivity.java rename to sample/src/main/java/com/litesuits/orm/samples/CascadeTestActivity.java diff --git a/sample/src/com/litesuits/orm/samples/LiteOrmInstance.java b/sample/src/main/java/com/litesuits/orm/samples/LiteOrmInstance.java similarity index 100% rename from sample/src/com/litesuits/orm/samples/LiteOrmInstance.java rename to sample/src/main/java/com/litesuits/orm/samples/LiteOrmInstance.java diff --git a/sample/src/com/litesuits/orm/samples/MainActivity.java b/sample/src/main/java/com/litesuits/orm/samples/MainActivity.java similarity index 100% rename from sample/src/com/litesuits/orm/samples/MainActivity.java rename to sample/src/main/java/com/litesuits/orm/samples/MainActivity.java diff --git a/sample/src/com/litesuits/orm/samples/SingleTestActivity.java b/sample/src/main/java/com/litesuits/orm/samples/SingleTestActivity.java similarity index 100% rename from sample/src/com/litesuits/orm/samples/SingleTestActivity.java rename to sample/src/main/java/com/litesuits/orm/samples/SingleTestActivity.java diff --git a/sample/src/com/litesuits/orm/test/SqliteUtils.java b/sample/src/main/java/com/litesuits/orm/test/SqliteUtils.java similarity index 100% rename from sample/src/com/litesuits/orm/test/SqliteUtils.java rename to sample/src/main/java/com/litesuits/orm/test/SqliteUtils.java diff --git a/sample/src/com/litesuits/orm/test/TestClassType.java b/sample/src/main/java/com/litesuits/orm/test/TestClassType.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestClassType.java rename to sample/src/main/java/com/litesuits/orm/test/TestClassType.java diff --git a/sample/src/com/litesuits/orm/test/TestCollection.java b/sample/src/main/java/com/litesuits/orm/test/TestCollection.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestCollection.java rename to sample/src/main/java/com/litesuits/orm/test/TestCollection.java diff --git a/sample/src/com/litesuits/orm/test/TestGeneric.java b/sample/src/main/java/com/litesuits/orm/test/TestGeneric.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestGeneric.java rename to sample/src/main/java/com/litesuits/orm/test/TestGeneric.java diff --git a/sample/src/com/litesuits/orm/test/TestGetClass.java b/sample/src/main/java/com/litesuits/orm/test/TestGetClass.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestGetClass.java rename to sample/src/main/java/com/litesuits/orm/test/TestGetClass.java diff --git a/sample/src/com/litesuits/orm/test/TestInstance.java b/sample/src/main/java/com/litesuits/orm/test/TestInstance.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestInstance.java rename to sample/src/main/java/com/litesuits/orm/test/TestInstance.java diff --git a/sample/src/com/litesuits/orm/test/TestNewInstance.java b/sample/src/main/java/com/litesuits/orm/test/TestNewInstance.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestNewInstance.java rename to sample/src/main/java/com/litesuits/orm/test/TestNewInstance.java diff --git a/sample/src/com/litesuits/orm/test/TestNext.java b/sample/src/main/java/com/litesuits/orm/test/TestNext.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestNext.java rename to sample/src/main/java/com/litesuits/orm/test/TestNext.java diff --git a/sample/src/com/litesuits/orm/test/TestSpliter.java b/sample/src/main/java/com/litesuits/orm/test/TestSpliter.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestSpliter.java rename to sample/src/main/java/com/litesuits/orm/test/TestSpliter.java diff --git a/sample/src/com/litesuits/orm/test/TestTry.java b/sample/src/main/java/com/litesuits/orm/test/TestTry.java similarity index 100% rename from sample/src/com/litesuits/orm/test/TestTry.java rename to sample/src/main/java/com/litesuits/orm/test/TestTry.java diff --git a/sample/res/drawable-xxhdpi/ic_launcher.png b/sample/src/main/res/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from sample/res/drawable-xxhdpi/ic_launcher.png rename to sample/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/sample/res/drawable/ic_launcher.png b/sample/src/main/res/drawable/ic_launcher.png similarity index 100% rename from sample/res/drawable/ic_launcher.png rename to sample/src/main/res/drawable/ic_launcher.png diff --git a/sample/res/drawable/selector_button.xml b/sample/src/main/res/drawable/selector_button.xml similarity index 100% rename from sample/res/drawable/selector_button.xml rename to sample/src/main/res/drawable/selector_button.xml diff --git a/sample/res/layout/act_list_btn.xml b/sample/src/main/res/layout/act_list_btn.xml similarity index 100% rename from sample/res/layout/act_list_btn.xml rename to sample/src/main/res/layout/act_list_btn.xml diff --git a/sample/res/layout/act_main.xml b/sample/src/main/res/layout/act_main.xml similarity index 100% rename from sample/res/layout/act_main.xml rename to sample/src/main/res/layout/act_main.xml diff --git a/sample/res/values-zh/strings.xml b/sample/src/main/res/values-zh/strings.xml similarity index 100% rename from sample/res/values-zh/strings.xml rename to sample/src/main/res/values-zh/strings.xml diff --git a/sample/res/values/colors.xml b/sample/src/main/res/values/colors.xml similarity index 100% rename from sample/res/values/colors.xml rename to sample/src/main/res/values/colors.xml diff --git a/sample/res/values/dimens.xml b/sample/src/main/res/values/dimens.xml similarity index 100% rename from sample/res/values/dimens.xml rename to sample/src/main/res/values/dimens.xml diff --git a/sample/res/values/strings.xml b/sample/src/main/res/values/strings.xml similarity index 100% rename from sample/res/values/strings.xml rename to sample/src/main/res/values/strings.xml diff --git a/sample/res/values/styles.xml b/sample/src/main/res/values/styles.xml similarity index 100% rename from sample/res/values/styles.xml rename to sample/src/main/res/values/styles.xml diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..1c52b4c --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':sample', ':library' \ No newline at end of file