diff --git a/common/os/Mutex.cxx b/common/os/Mutex.cxx
index 13013cf..4794568 100644
--- a/common/os/Mutex.cxx
+++ b/common/os/Mutex.cxx
@@ -18,6 +18,10 @@
 
 #ifdef WIN32
 #include <windows.h>
+#elif defined(__ANDROID__)
+#include <utils/Errors.h>
+#include <utils/Mutex.h>
+#include <utils/Condition.h>
 #else
 #include <pthread.h>
 #endif
@@ -33,6 +37,8 @@
 #ifdef WIN32
   systemMutex = new CRITICAL_SECTION;
   InitializeCriticalSection((CRITICAL_SECTION*)systemMutex);
+#elif defined(__ANDROID__)
+  systemMutex = new ::android::Mutex;
 #else
   int ret;
 
@@ -48,6 +54,8 @@
 #ifdef WIN32
   DeleteCriticalSection((CRITICAL_SECTION*)systemMutex);
   delete (CRITICAL_SECTION*)systemMutex;
+#elif defined(__ANDROID__)
+  delete (::android::Mutex*)systemMutex;
 #else
   pthread_mutex_destroy((pthread_mutex_t*)systemMutex);
   delete (pthread_mutex_t*)systemMutex;
@@ -58,6 +66,12 @@
 {
 #ifdef WIN32
   EnterCriticalSection((CRITICAL_SECTION*)systemMutex);
+#elif defined(__ANDROID__)
+  android::status_t ret;
+
+  ret = ((::android::Mutex*)systemMutex)->lock();
+  if (ret != android::NO_ERROR)
+    throw rdr::SystemException("Failed to lock mutex", ret);
 #else
   int ret;
 
@@ -71,6 +85,8 @@
 {
 #ifdef WIN32
   LeaveCriticalSection((CRITICAL_SECTION*)systemMutex);
+#elif defined(__ANDROID__)
+  ((::android::Mutex*)systemMutex)->unlock();
 #else
   int ret;
 
@@ -87,6 +103,8 @@
 #ifdef WIN32
   systemCondition = new CONDITION_VARIABLE;
   InitializeConditionVariable((CONDITION_VARIABLE*)systemCondition);
+#elif defined(__ANDROID__)
+  systemCondition = new ::android::Condition;
 #else
   int ret;
 
@@ -101,6 +119,8 @@
 {
 #ifdef WIN32
   delete (CONDITION_VARIABLE*)systemCondition;
+#elif defined(__ANDROID__)
+  delete (::android::Condition*)systemCondition;
 #else
   pthread_cond_destroy((pthread_cond_t*)systemCondition);
   delete (pthread_cond_t*)systemCondition;
@@ -117,6 +137,12 @@
                                  INFINITE);
   if (!ret)
     throw rdr::SystemException("Failed to wait on condition variable", GetLastError());
+#elif defined(__ANDROID__)
+  android::status_t ret;
+
+  ret = ((::android::Condition*)systemCondition)->wait(*(::android::Mutex*)mutex->systemMutex);
+  if (ret != android::NO_ERROR)
+    throw rdr::SystemException("Failed to wait on condition variable", ret);
 #else
   int ret;
 
@@ -131,6 +157,8 @@
 {
 #ifdef WIN32
   WakeConditionVariable((CONDITION_VARIABLE*)systemCondition);
+#elif defined(__ANDROID__)
+  ((::android::Condition*)systemCondition)->signal();
 #else
   int ret;
 
@@ -144,6 +172,8 @@
 {
 #ifdef WIN32
   WakeAllConditionVariable((CONDITION_VARIABLE*)systemCondition);
+#elif defined(__ANDROID__)
+  ((::android::Condition*)systemCondition)->broadcast();
 #else
   int ret;
 
