java如何创建native对象

必须使用jni,而且应该用C语言的malloc或者C++的new关键字。实例代码如下:

JNIEXPORT void JNICALLJava_com_example_demo_TestMemory_nativeMalloc(JNIEnv *, jobject)  
{  
          
         void * p= malloc(1024*1024*50);  
   
         SLOGD("allocate50M Bytes memory");  
   
         if (p !=NULL)  
         {         
                   //memorywill not used without calling memset()  
                   memset(p,0, 1024*1024*50);  
         }  
         else  
                   SLOGE("mallocfailure.");  
   ….  
   ….  
free(p); //free memory  
}  

或者:

JNIEXPORT voidJNICALL Java_com_example_demo_TestMemory_nativeMalloc(JNIEnv *, jobject)  
{  
          
         SLOGD("allocate 50M Bytesmemory");  
         char *p = new char[1024 * 1024 * 50];  
         if (p != NULL)  
         {         
                   //memory will not usedwithout calling memset()  
                   memset(p, 1, 1024*1024*50);  
         }  
         else  
                  SLOGE("newobject failure.");  
 ….  
….  
free(p); //free memory  
}  


猜你喜欢

转载自blog.csdn.net/hehe_heh/article/details/78431675