diff --git a/.gitignore b/.gitignore
index 5524d609..b51a05b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-# Auto generated files 
+# Auto generated files
 *.slo
 *.lo
 *.o
@@ -46,6 +46,7 @@ example/*
 !example/example.vcxproj
 !example/CMakeLists.txt
 !example/multisink.cpp
+!example/jni
 
 # generated files
 generated
diff --git a/example/example.cpp b/example/example.cpp
index 217d1433..2323b57d 100644
--- a/example/example.cpp
+++ b/example/example.cpp
@@ -13,6 +13,7 @@
 
 void async_example();
 void syslog_example();
+void android_example();
 void user_defined_example();
 void err_handler_example();
 
@@ -48,7 +49,6 @@ int main(int, char*[])
         auto my_logger = spd::basic_logger_mt("basic_logger", "logs/basic.txt");
         my_logger->info("Some log message");
 
-
         // Create a file rotating logger with 5mb size max and 3 rotated files
         auto rotating_logger = spd::rotating_logger_mt("some_logger_name", "logs/mylogfile", 1048576 * 5, 3);
         for (int i = 0; i < 10; ++i)
@@ -76,6 +76,9 @@ int main(int, char*[])
         // syslog example. linux/osx only
         syslog_example();
 
+        // android example. compile with NDK
+        android_example();
+
         // Log user-defined types example
         user_defined_example();
 
@@ -119,6 +122,16 @@ void syslog_example()
 #endif
 }
 
+// Android example
+void android_example()
+{
+#if defined(__ANDROID__)
+    std::string tag = "spdlog-android";
+    auto android_logger = spd::android_logger("android", tag);
+    android_logger->critical("Use \"adb shell logcat\" to view this message.");
+#endif
+}
+
 // user defined types logging by implementing operator<<
 struct my_type
 {
@@ -148,4 +161,3 @@ void err_handler_example()
     });
     spd::get("console")->info("some invalid message to trigger an error {}{}{}{}", 3);
 }
-
diff --git a/example/jni/Android.mk b/example/jni/Android.mk
new file mode 100644
index 00000000..7accbad3
--- /dev/null
+++ b/example/jni/Android.mk
@@ -0,0 +1,15 @@
+# Setup a project
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := example
+LOCAL_SRC_FILES := example.cpp
+LOCAL_CPPFLAGS += -Wall -Wshadow -Wextra -pedantic -std=c++11 -fPIE -pie
+LOCAL_LDFLAGS +=  -fPIE -pie
+
+# Add exception support and set path for spdlog's headers
+LOCAL_CPPFLAGS += -fexceptions -I../include
+# Use android's log library
+LOCAL_LDFLAGS += -llog
+
+include $(BUILD_EXECUTABLE)
diff --git a/example/jni/Application.mk b/example/jni/Application.mk
new file mode 100644
index 00000000..dccd2a5a
--- /dev/null
+++ b/example/jni/Application.mk
@@ -0,0 +1,2 @@
+# Exceptions are used in spdlog. Link to an exception-ready C++ runtime.
+APP_STL = gnustl_static
diff --git a/example/jni/example.cpp b/example/jni/example.cpp
new file mode 120000
index 00000000..6170abce
--- /dev/null
+++ b/example/jni/example.cpp
@@ -0,0 +1 @@
+../example.cpp
\ No newline at end of file