Currently the CIAO Android port has been tested using Android NDKr8e running on an Android 4.1.2 platform (API level 16).
The ACE test framework has been updated to be able to deploy CIAO regression tests in a mixed runtime environment. In this setup the plan launcher, naming service and execution manager run on a Linux host platform. CIAO nodes can be configured to run either on the Linux host platform or an Android device.
The tested configuration runs one node (with node manager, locality manager and component DLLs) on an Android device (a Beaglebone) and (the) other node(s) on linux.
The tests currently refactored to be able to run in such a test setup are listed in CIAO/examples/ciao_android.lst. For those tests minor changes are made in the run-test.pl scripts.
Below is a list of requirements needed to be able to set up an Android build and test environment:
libincov as well. For the described cross build xerces2 and libiconv-1.13.1 were ported to 
  Android (see below for more information)
  localeconv() method.
--- xerces-c-src_2_8_0/src/xercesc/runConfigure 2007-08-28 20:44:56.000000000 +0200
+++ ../android/xerces-c-src_2_8_0/src/xercesc/runConfigure  2013-09-19 14:23:55.604126857 +0200
@@ -324,7 +324,8 @@ if test $thread = "none"; then
 else
     THREADS=pthread
     threadingDefines="-DXML_USE_PTHREADS"
-    threadingLibs="-lpthread"
+    threadingLibs=""
+#    threadingLibs="-lpthread"
     if test $platform = "hp-11"; then
         if test $thread; then
         case $thread in
--- xerces-c-src_2_8_0/src/xercesc/util/XMLAbstractDoubleFloat.cpp  2007-08-28 20:44:52.000000000 +0200
+++ ../android/xerces-c-src_2_8_0/src/xercesc/util/XMLAbstractDoubleFloat.cpp 2013-09-19 11:18:07.244662085 +0200
@@ -437,6 +437,7 @@ void XMLAbstractDoubleFloat::normalizeZe
 
 void XMLAbstractDoubleFloat::normalizeDecimalPoint(char* const toNormal)
 {
+# if 0  
     // find the locale-specific decimal point delimiter
     lconv* lc = localeconv();
     char delimiter = *lc->decimal_point;
@@ -450,6 +451,7 @@ void XMLAbstractDoubleFloat::normalizeDe
             *period = delimiter;
         }
     }
+# endif    
 }
 
 
On the host, not only TAO_IDL, but also DAnCE and CIAO are needed, so the following workspace was used for the host build:
     {
      ACE/ace
      ACE/apps/gperf/src
      ACE/protocols/ace/INet
      TAO/tao
      TAO/TAO_IDL
      TAO/orbsvcs/orbsvcs/CosNaming.mpc
      TAO/orbsvcs/orbsvcs/CosNaming_Serv.mpc
      TAO/orbsvcs/orbsvcs/CosNaming_Skel.mpc
      TAO/orbsvcs/Naming_Service
      TAO/orbsvcs/orbsvcs/Svc_Utils.mpc
      CIAO/tools
      DAnCE/dance
      DAnCE/tools
      CIAO/ccm
      CIAO/ciao
      CIAO/examples/Hello
      }
     
     
     Setup the Android target build:
     
     Create ace/config.h: #include "ace/config-android.h"
     Create bin/MakeProjectCreator/config/default.features:
     
     ssl=0
     bzip2=0
     xerces2=1
     cross_compile=1
          
     Create include/makeinclude/platform_macros.GNU:
     fl=0
     xt=0
     CROSS_COMPILE=arm-linux-androideabi-
     xerces2=1
     debug=0
     buildbits=0
     
     Include the include/makeinclude/platform_android.GNU file.
     ACE_TEST_VERBOSE=1
     ANDROID_ABI=armeabi-v7a
     ANDROID_ARCH=arm
     ACE_ROOT= the path to the ACE_ROOT of the target
     CIAO_ROOT= the path to the CIAO_ROOT of the target
     DANCE_ROOT= the path to the DANCE_ROOT of the target
     HOST_ROOT= the path to the ACE_ROOT of the host
     MPC_ROOT= the path to the MPC_ROOT of the target
     TAO_ROOT= the path to the TAO_ROOT of the target
     
 
   Running test on mixed environmentEnsure the following environment variables are (re)set:
    ACE_ROOT= the path to the ACE_ROOT of the host
    ACE_TEST_VERBOSE=1
    ANDROID_ACE_ROOT=the path to the ACE_ROOT of the target
    ANDROID_ARCH=arm
    ANDROID_CIAO_ROOT=the path to the CIAO_ROOT of the target
    ANDROID_DANCE_ROOT=the path to the DANCE_ROOT of the target
    ANDROID_OS=remote
    ANDROID_REMOTE_SHELL="ssh targetname" with targetname is the hostname of the Android device
    ANDROID_TAO_ROOT=the path to the TAO_ROOT of the target
    CIAO_ROOT=the path to the CIAO_ROOT of the host
    DANCE_ROOT=/the path to the DANCE_ROOT of the host
    DOC_TEST_2=ANDROID
    HOST_ROOT=the path to the ACE_ROOT of the host
    TAO_ROOT= the path to the TAO_ROOT of the host