FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveLinux / FiveDroid (Android) Starting the Harbour virtual machine from Android !!!
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Starting the Harbour virtual machine from Android !!!
Posted: Tue Apr 26, 2011 06:52 AM
In order to start the Harbour virtual machine, we need to create a
simple Java class to interface from Java to Harbour (c level):

Code (fw): Select all Collapse
public class Harbour {
        static {
                System.loadLibrary( "harbour" );
        }

        public native void vmInit( int i );
}


Now, for a test, we simply add this code in harbour/src/rtl/adir.prg:

Code (fw): Select all Collapse
function Main()

return nil

#pragma BEGINDUMP

#include <jni.h>

JNIEXPORT void JNICALL Java_test_test_Harbour_vmInit( JNIEnv * env,
jobject obj, jint i )
{
   hb_vmInit( i );

}

#pragma ENDDUMP


where test_test is the name of the package that we have used to
include the Class Harbour in the Android (Java) project.

Then from Android we do:
Code (fw): Select all Collapse
      Harbour harbour = new Harbour();
     harbour.vmInit( 1 );

already tested and working fine :-)

Viktor, it may be convenient if such JINIEXPORT (entry point from Java
to C) could be provided in the Harbour project source code, same as we
have an entry point for Windows, etc.

For more info, examples and full source code for using Harbour with
Android, please visit:
http://code.google.com/p/fivedroid/
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion