diff --git a/src/dynamic/reference/CMakeLists.txt b/src/dynamic/reference/CMakeLists.txt
index 79bf7ec..4eeebea 100644
--- a/src/dynamic/reference/CMakeLists.txt
+++ b/src/dynamic/reference/CMakeLists.txt
@@ -4,9 +4,17 @@
 #
 
 cmake_minimum_required (VERSION 3.0.2)
+project(dynamic-reference)
 
 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 
+if("${CMAKE_SYSTEM_NAME}" STREQUAL Android)
+    add_definitions("-DBOOST_ALL_NO_LIB") # Turn off auto-linking as we specify the libs manually
+    find_package(Boost REQUIRED COMPONENTS system filesystem)
+    include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
+    link_directories(${Boost_LIBRARY_DIRS})
+endif()
+
 # File needed to wrap the existing backend into a dynamic one
 list(APPEND armnnRefDynamicBackend_sources
     RefDynamicBackend.cpp
@@ -24,12 +32,42 @@
 # Remove the file that contains the static backend registration
 list(REMOVE_ITEM RefBackendFiles ${RefBackendPath}/RefRegistryInitializer.cpp)
 
-# Create the shared object
-add_library(Arm_CpuRef_backend MODULE ${armnnRefDynamicBackend_sources} ${RefBackendFiles})
+if("${CMAKE_SYSTEM_NAME}" STREQUAL Android)
+    # Set the common backend source path
+    set(CommonBackendPath ${PROJECT_SOURCE_DIR}/../../../src/backends/backendsCommon)
+    # Source files of the common backend
+    file(GLOB CommonBackendFiles ${CommonBackendPath}/*.cpp)
+
+    set(ArmnnPath ${PROJECT_SOURCE_DIR}/../../../src/armnn)
+    file(GLOB ArmnnFiles ${ArmnnPath}/*.cpp)
+
+    file(GLOB LayerFiles ${ArmnnPath}/layers/*cpp)
+    file(GLOB OptimizationFIles ${ArmnnPath}/optimizations/*.cpp)
+    file(GLOB ArmnnBaseFiles ${ArmnnPath}/*cpp)
+
+    set(ArmnnFiles ${ArmnnBaseFiles} ${LayerFiles} ${OptimizationFIles})
+
+    set(ArmnnUtilsPath ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils)
+    file(GLOB ArmnnUtilsFiles ${ArmnnUtilsPath}/*cpp)
+
+    set(ProfilingPath ${PROJECT_SOURCE_DIR}/../../../src/profiling)
+    file(GLOB ProfilingFiles ${ProfilingPath}/*cpp)
+
+    add_library(Arm_CpuRef_backend MODULE
+        ${armnnRefDynamicBackend_sources} ${RefBackendFiles} ${CommonBackendFiles}
+        ${ArmnnFiles} ${ArmnnUtilsFiles} ${ProfilingFiles})
+else()
+    # Create the shared object
+    add_library(Arm_CpuRef_backend MODULE ${armnnRefDynamicBackend_sources} ${RefBackendFiles})
+endif()
 
 target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../include)
 target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../third-party) # for half
 target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnn)
 target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/armnnUtils)
 target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/backends)
-target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling)
\ No newline at end of file
+target_include_directories(Arm_CpuRef_backend PRIVATE ${PROJECT_SOURCE_DIR}/../../../src/profiling)
+if("${CMAKE_SYSTEM_NAME}" STREQUAL Android)
+    target_include_directories(Arm_CpuRef_backend PRIVATE ${Boost_INCLUDE_DIRS})
+    target_link_libraries(Arm_CpuRef_backend ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
+endif()
