diff --git a/app/src/main/jni/wrappers-example.cpp b/app/src/main/jni/wrappers-example.cpp
new file mode 100644
index 0000000..5553258
--- /dev/null
+++ b/app/src/main/jni/wrappers-example.cpp
@@ -0,0 +1,43 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2014-2015,  Regents of the University of California,
+ *                           Arizona Board of Regents,
+ *                           Colorado State University,
+ *                           University Pierre & Marie Curie, Sorbonne University,
+ *                           Washington University in St. Louis,
+ *                           Beijing Institute of Technology,
+ *                           The University of Memphis.
+ *
+ * This file is part of NFD (Named Data Networking Forwarding Daemon).
+ * See AUTHORS.md for complete list of NFD authors and contributors.
+ *
+ * NFD is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ *
+ * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "wrappers-example.hpp"
+#include "android-logger-streambuf.hpp"
+
+#include <iostream>
+
+JNIEXPORT void JNICALL
+Java_net_named_1data_nfd_wrappers_Example_main(JNIEnv*, jclass)
+{
+  nfd_android::AndroidLoggerStreambuf newBuffer;
+  std::streambuf *backupCout = std::cout.rdbuf(&newBuffer);
+  std::streambuf *backupCerr = std::cerr.rdbuf(&newBuffer);
+
+  std::cout << "Test message to cout" << std::endl;
+  std::cerr << "Test message to cerr" << std::endl;
+
+  std::cerr.rdbuf(backupCerr);
+  std::cout.rdbuf(backupCout);
+}
