+
+/**
+ * To set Activity to JNI.
+ * This must be called by the Android API before CA Initialization.
+ * @param[in] env JNI Environment pointer.
+ * @param[in] activity Activity object.
+ */
+void CANativeSetActivity(JNIEnv *env, jobject activity);
+
+/**
+ * To get Activity.
+ * Called from adapters to get Activity.
+ * @return Activity object.
+ */
+jobject *CANativeGetActivity();
+
+/**
+ * get method ID for method Name and class
+ * @param[in] env JNI interface pointer.
+ * @param[in] className android class.
+ * @param[in] methodName android method name.
+ * @param[in] methodFormat method type of methodName.
+ * @return jmethodID iD of the method.
+ */
+jmethodID CAGetJNIMethodID(JNIEnv *env, const char* className,
+ const char* methodName,
+ const char* methodFormat);
+
+/**
+ * check JNI exception occurrence
+ * @param[in] env JNI interface pointer.
+ * @return true(occurrence) or false(no occurrence).
+ */
+bool CACheckJNIException(JNIEnv *env);
+
+/**
+ * To Delete other Global References
+ * Called during CATerminate to remove global references
+ */
+void CADeleteGlobalReferences();
+
+#endif
+
+#ifndef WITH_ARDUINO
+/**
+ * print send state in the adapter.
+ * @param[in] adapter transport adapter type.
+ * @param[in] addr remote address.
+ * @param[in] port port.
+ * @param[in] sentLen sent data length.
+ * @param[in] isSuccess sent state.
+ * @param[in] message detailed message.
+ */
+void CALogSendStateInfo(CATransportAdapter_t adapter,
+ const char *addr, uint16_t port, ssize_t sentLen,
+ bool isSuccess, const char* message);
+
+/**
+ * print adapter state in the adapter.
+ * @param[in] adapter transport adapter type.
+ * @param[in] state adapter state.
+ */
+void CALogAdapterStateInfo(CATransportAdapter_t adapter, CANetworkStatus_t state);
+
+/**
+ * print adapter type name in the adapter.
+ * @param[in] adapter transport adapter type.
+ */
+void CALogAdapterTypeInfo(CATransportAdapter_t adapter);