Hi All,
I ported one muti-threaded native code (binary) to android platform,
and is working fine,
Now i am trying to run this code by creating apk, created my native
code as shared library using NDK and
i am calling this shared library by using JNI, below is the sample
code,
But it is not working, i am new to java and jni, i did some web
search, and i found that i need to attache/detach threads in jni,
It will be very helpful if someone help me to handle this native
threads in jni.
Thanks
/************************** apk code
***************************************/
public class HelloJni extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText( stringFromJNI() );
setContentView(tv);
}
public native String stringFromJNI();
static {
System.loadLibrary("my_lib");
}
}
/****************************** JNI function
************************************/
jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject
thiz)
{
int rc = native_main();
if (rc == 0)
return (*env)->NewStringUTF(env, "Successful!");
else
return (*env)->NewStringUTF(env, "Failure!");
}
/********************************* Native code
***********************************/
int
native_main()
{
int cnt;
pthread_t thread;
for (cnt =0; cnt < 5; cnt++)
{
if ( 0 != pthread_create (&thread1, NULL, (void *) &my_function,
(void *) cnt))
{
return -1;
}
}
pthread_exit(0); /* exit */
return 0;
}
void my_function(void* cnt)
{
int c = (int) cnt;
switch (c)
{
case 0:
/* calling native funtion1 */
break;
case 1:
/* calling native funtion2 */
break;
case 2:
/* calling native funtion3 */
break;
case 3:
/* calling native funtion4 */
break;
case 4:
/* calling native funtion5 */
break;
}
}
/******************************************************************/
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting