diff --git a/settings.gradle b/settings.gradle
index e7b4def..06e5e47 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app'
+include ':app', ':util'
diff --git a/util/.gitignore b/util/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/util/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/util/build.gradle b/util/build.gradle
new file mode 100644
index 0000000..b313bbd
--- /dev/null
+++ b/util/build.gradle
@@ -0,0 +1,31 @@
+apply plugin: 'com.android.library'
+
+android {
+ compileSdkVersion 25
+ buildToolsVersion "25.0.0"
+
+ defaultConfig {
+ minSdkVersion 15
+ targetSdkVersion 25
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+ androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ exclude group: 'com.android.support', module: 'support-annotations'
+ })
+ compile 'com.android.support:appcompat-v7:25.1.0'
+ testCompile 'junit:junit:4.12'
+}
diff --git a/util/proguard-rules.pro b/util/proguard-rules.pro
new file mode 100644
index 0000000..d96da59
--- /dev/null
+++ b/util/proguard-rules.pro
@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /Users/zhenguo/Documents/develop/android-sdk-macosx/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/util/src/androidTest/java/com/ihongqiqu/util/ExampleInstrumentedTest.java b/util/src/androidTest/java/com/ihongqiqu/util/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..3a6d7b5
--- /dev/null
+++ b/util/src/androidTest/java/com/ihongqiqu/util/ExampleInstrumentedTest.java
@@ -0,0 +1,27 @@
+package com.ihongqiqu.util;
+
+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.ihongqiqu.util.test", appContext.getPackageName());
+ }
+}
diff --git a/util/src/main/AndroidManifest.xml b/util/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..d2a7ca5
--- /dev/null
+++ b/util/src/main/AndroidManifest.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/util/src/main/res/values/strings.xml b/util/src/main/res/values/strings.xml
new file mode 100644
index 0000000..a0bc8b0
--- /dev/null
+++ b/util/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ util
+
diff --git a/util/src/test/java/com/ihongqiqu/util/ExampleUnitTest.java b/util/src/test/java/com/ihongqiqu/util/ExampleUnitTest.java
new file mode 100644
index 0000000..6643bab
--- /dev/null
+++ b/util/src/test/java/com/ihongqiqu/util/ExampleUnitTest.java
@@ -0,0 +1,18 @@
+package com.ihongqiqu.util;
+
+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