Change-Id: Iaf4384cc4a1c3ec35ec00b3b0b88b19f5c73609c
Signed-off-by: Tim Kourt <tim.a.kourt@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/2201
Reviewed-by: Erich Keane <erich.keane@intel.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build.cmd')
4.Build scons for android and your targeted architecture (This will also build Android API):
def ndkBuild = new File(System.env.ANDROID_NDK_HOME, 'ndk-build.cmd')
4.Build scons for android and your targeted architecture (This will also build Android API):
- a.scons TARGET_OS=android TARGET_ARCH=<target arch> TARGET_TRANSPORT=IP RELEASE=1
- where <target arch> can be armeabi, armeabi-v7a, x86.
+ a.scons TARGET_OS=android TARGET_ARCH=<target arch> TARGET_TRANSPORT=<target transport> RELEASE=1
+ where <target arch> can be armeabi, armeabi-v7a, x86, x86_64.
Note: To build in debug mode, use RELEASE=0.
Note: The minimum SDK version supported is 21.
Note: To build in debug mode, use RELEASE=0.
Note: The minimum SDK version supported is 21.
- Note: Only TARGET_TRANSPORT currently supported is IP
b.If the project is setup correctly, you should see a BUILD SUCCESSFUL message on the terminal
c.You should see the .aar files generated inside of '<iotivity>/android/android_api/base/build/outputs/aar' directory. The .aar files contain jni directory and also a .jar file
b.If the project is setup correctly, you should see a BUILD SUCCESSFUL message on the terminal
c.You should see the .aar files generated inside of '<iotivity>/android/android_api/base/build/outputs/aar' directory. The .aar files contain jni directory and also a .jar file
scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BT $2
scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BLE $2
scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BT $2
scons TARGET_OS=android TARGET_ARCH=x86 RELEASE=$1 TARGET_TRANSPORT=BLE $2
+ echo "*********** Build for android x86_64 *************"
+ scons TARGET_OS=android TARGET_ARCH=x86_64 RELEASE=$1 TARGET_TRANSPORT=IP $2
+ scons TARGET_OS=android TARGET_ARCH=x86_64 RELEASE=$1 TARGET_TRANSPORT=BT $2
+ scons TARGET_OS=android TARGET_ARCH=x86_64 RELEASE=$1 TARGET_TRANSPORT=BLE $2
+
echo "*********** Build for android armeabi *************"
scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=IP $2
scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=BT $2
echo "*********** Build for android armeabi *************"
scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=IP $2
scons TARGET_OS=android TARGET_ARCH=armeabi RELEASE=$1 TARGET_TRANSPORT=BT $2
-
-/* from unistd.h */
-int getpagesize(void)
-{
- extern unsigned int __page_size;
- return __page_size;
-}
-
-int __getpageshift(void)
-{
- extern unsigned int __page_shift;
- return __page_shift;
-}
if target_arch == 'armeabi-v7a-hard':
target_arch = 'armeabi-v7a'
if target_arch == 'armeabi-v7a-hard':
target_arch = 'armeabi-v7a'
- if target_arch not in ['x86', 'armeabi', 'armeabi-v7a']:
+ if target_arch not in ['x86', 'x86_64','armeabi', 'armeabi-v7a']:
if not env.GetOption('help') and not env.GetOption('clean'):
print '''
*********************************** Warning ***********************************
if not env.GetOption('help') and not env.GetOption('clean'):
print '''
*********************************** Warning ***********************************
-* current only x86, armeabi, armeabi-v7a libraries are provided! *
+* current only x86, x86_64, armeabi, armeabi-v7a libraries are provided! *
*******************************************************************************
'''
else:
*******************************************************************************
'''
else:
public class DataReader
{
public class DataReader
{
- private int pDataReaderInstance;
+ private long pDataReaderInstance;
- public DataReader(int dataReaderInstance)
+ private DataReader(long dataReaderInstance)
{
pDataReaderInstance = dataReaderInstance;
}
{
pDataReaderInstance = dataReaderInstance;
}
- private int pIModelDataInstance;
+ private long pIModelDataInstance;
- public ModelData(int iModelDataInstance)
+ private ModelData(long iModelDataInstance)
{
pIModelDataInstance = iModelDataInstance;
}
{
pIModelDataInstance = iModelDataInstance;
}
return CoreController.getInstance().getPropertyValue(
pIModelDataInstance, propertyIndex);
}
return CoreController.getInstance().getPropertyValue(
pIModelDataInstance, propertyIndex);
}
-}
\ No newline at end of file
*/
public class QueryEngine
{
*/
public class QueryEngine
{
- private int pQueryEngineInstance;
+ private long pQueryEngineInstance;
- public QueryEngine(int queryEngineInstance)
+ private QueryEngine(long queryEngineInstance)
{
pQueryEngineInstance = queryEngineInstance;
}
{
pQueryEngineInstance = queryEngineInstance;
}
* @return int - Instance of the query engine object, set on object's creation
*
*/
* @return int - Instance of the query engine object, set on object's creation
*
*/
- public int getQueryEngineInstance()
+ public long getQueryEngineInstance()
{
return pQueryEngineInstance;
}
{
return pQueryEngineInstance;
}
CoreController.getInstance().killContextQuery(pQueryEngineInstance,
cqid);
}
CoreController.getInstance().killContextQuery(pQueryEngineInstance,
cqid);
}
-}
\ No newline at end of file
env->GetMethodID(g_ClassQueryEngineEvent, "onQueryEngineEvent",
"(ILorg/iotivity/service/ssm/DataReader;)V");
env->GetMethodID(g_ClassQueryEngineEvent, "onQueryEngineEvent",
"(ILorg/iotivity/service/ssm/DataReader;)V");
- jmethodID cid_DataReader = env->GetMethodID(g_ClassDataReader, "<init>", "(I)V");
+ jmethodID cid_DataReader = env->GetMethodID(g_ClassDataReader, "<init>", "(J)V");
if (cid_DataReader == NULL)
return SSM_E_FAIL;
if (cid_DataReader == NULL)
return SSM_E_FAIL;
- env->CallVoidMethod(m_objQueryEngineEvent, midQueryEngineEvent,
+ env->CallVoidMethod(m_objQueryEngineEvent,
+ midQueryEngineEvent,
- env->NewObject(g_ClassDataReader, cid_DataReader, (jint)pResult));
+ env->NewObject(
+ g_ClassDataReader,
+ cid_DataReader,
+ reinterpret_cast<jlong>(pResult)));
DETACH_CURRENT_THREAD(g_JVM);
DETACH_CURRENT_THREAD(g_JVM);
- jmethodID cid_QueryEngine = env->GetMethodID(g_ClassQueryEngine, "<init>", "(I)V");
+ jmethodID cid_QueryEngine = env->GetMethodID(g_ClassQueryEngine, "<init>", "(J)V");
if (cid_QueryEngine == NULL)
return NULL;
if (cid_QueryEngine == NULL)
return NULL;
- return env->NewObject(g_ClassQueryEngine, cid_QueryEngine, (jint)pQueryEngine);
+ return env->NewObject(g_ClassQueryEngine, cid_QueryEngine, reinterpret_cast<jlong>(pQueryEngine));
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_releaseQueryEngine
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_releaseQueryEngine
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_executeContextQuery
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_executeContextQuery
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jstring jstrContextQuery)
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jstring jstrContextQuery)
{
int cqid = -1;
if (jstrContextQuery == NULL)
{
int cqid = -1;
if (jstrContextQuery == NULL)
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerQueryEvent
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerQueryEvent
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jobject queryEngineEvent)
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jobject queryEngineEvent)
{
IQueryEngine *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
{
IQueryEngine *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_killContextQuery
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_killContextQuery
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jint cqid)
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jint cqid)
{
IQueryEngine *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
{
IQueryEngine *pQueryEngine = (IQueryEngine *)pQueryEngineInstance;
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getDataId
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getDataId
-(JNIEnv *env, jclass clz, jint pDataReaderInstance)
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance)
{
IModelData *pDataReader = (IModelData *)pDataReaderInstance;
{
IModelData *pDataReader = (IModelData *)pDataReaderInstance;
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyCount
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyCount
-(JNIEnv *env, jclass clz, jint pIModelDataInstance )
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance )
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
}
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyName
}
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyName
-(JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex )
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance, jint propertyIndex )
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
}
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyValue
}
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyValue
-(JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex )
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance, jint propertyIndex )
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
{
IModelData *pModelData = (IModelData *)pIModelDataInstance;
}
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getAffectedModels
}
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getAffectedModels
-(JNIEnv *env, jclass clz, jint pDataReaderInstance)
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance)
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
std::vector<std::string> affectedModels;
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
std::vector<std::string> affectedModels;
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getModelDataCount
}
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getModelDataCount
-(JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName)
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance, jstring jstrModelName)
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
int modelCount = 0;
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
int modelCount = 0;
}
//return IModelData
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getModelData
}
//return IModelData
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getModelData
-(JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName, jint jintDataIndex )
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance, jstring jstrModelName, jint jintDataIndex )
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
IModelData *pModelData = NULL;
{
IDataReader *pDataReader = (IDataReader *)pDataReaderInstance;
IModelData *pModelData = NULL;
- jmethodID cid_ModelData = env->GetMethodID(g_ClassModelData, "<init>", "(I)V");
+ jmethodID cid_ModelData = env->GetMethodID(g_ClassModelData, "<init>", "(J)V");
if (cid_ModelData == NULL)
return NULL;
if (cid_ModelData == NULL)
return NULL;
- return env->NewObject(g_ClassModelData, cid_ModelData, (jint)pModelData);
+ return env->NewObject(g_ClassModelData, cid_ModelData, reinterpret_cast<jlong>(pModelData));
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerReportReceiver
}
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerReportReceiver
(JNIEnv *env, jclass clz, jobject queryEngine);
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_executeContextQuery
(JNIEnv *env, jclass clz, jobject queryEngine);
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_executeContextQuery
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jstring jstrContextQuery);
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jstring jstrContextQuery);
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerQueryEvent
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerQueryEvent
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jobject queryEngineEvent);
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jobject queryEngineEvent);
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_killContextQuery
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_killContextQuery
-(JNIEnv *env, jclass clz, jint pQueryEngineInstance, jint cqid);
+(JNIEnv *env, jclass clz, jlong pQueryEngineInstance, jint cqid);
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getDataId
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getDataId
-(JNIEnv *env, jclass clz, jint pDataReaderInstance);
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance);
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getAffectedModels
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getAffectedModels
-(JNIEnv *env, jclass clz, jint pDataReaderInstance);
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance);
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getModelDataCount
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getModelDataCount
-(JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName);
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance, jstring jstrModelName);
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getModelData
JNIEXPORT jobject JNICALL Java_org_iotivity_service_ssm_CoreController_getModelData
-(JNIEnv *env, jclass clz, jint pDataReaderInstance, jstring jstrModelName, jint jintDataIndex );
+(JNIEnv *env, jclass clz, jlong pDataReaderInstance, jstring jstrModelName, jint jintDataIndex );
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyCount
JNIEXPORT jint JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyCount
-(JNIEnv *env, jclass clz, jint pIModelDataInstance );
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance );
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyName
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyName
-(JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex );
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance, jint propertyIndex );
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyValue
JNIEXPORT jstring JNICALL Java_org_iotivity_service_ssm_CoreController_getPropertyValue
-(JNIEnv *env, jclass clz, jint pIModelDataInstance, jint propertyIndex );
+(JNIEnv *env, jclass clz, jlong pIModelDataInstance, jint propertyIndex );
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerReportReceiver
(JNIEnv *env, jclass clz, jobject reportReceiver );
JNIEXPORT void JNICALL Java_org_iotivity_service_ssm_CoreController_registerReportReceiver
(JNIEnv *env, jclass clz, jobject reportReceiver );
-#endif
\ No newline at end of file
if target_arch == 'armeabi-v7a-hard':
target_arch = 'armeabi-v7a'
if target_arch == 'armeabi-v7a-hard':
target_arch = 'armeabi-v7a'
- if target_arch not in ['x86', 'armeabi', 'armeabi-v7a']:
+ if target_arch not in ['x86', 'x86_64','armeabi', 'armeabi-v7a']:
if not env.GetOption('help') and not env.GetOption('clean'):
print '''
*********************************** Warning ***********************************
if not env.GetOption('help') and not env.GetOption('clean'):
print '''
*********************************** Warning ***********************************
-* current only x86, armeabi, armeabi-v7a libraries are provided! *
+* current only x86, x86_64, armeabi, armeabi-v7a libraries are provided! *
*******************************************************************************
'''
else:
*******************************************************************************
'''
else: