SORU
22 EKİM 2009, PERŞEMBE


Nasıl JNI bir dizi Java dönmek için?

Android Mall of Sofia kullanmaya çalışıyorum.

Bir şekilde bir dizi (benim durumumda bir int[]) JNI Java için oluşturulan dönmek var mı? Eğer öyleyse, lütfen bunu JNI işlevini hızlı bir örnek sağlar.

-Teşekkürler

CEVAP
22 EKİM 2009, PERŞEMBE


Eğer belgeleri inceledi ve hala sorularınız varsa, ilk sorunuza bir parçası olmalıdır. Bu durumda, örneğin, JNI işlevi diziler bir dizi oluşturur. Dış diziyi bir 'Nesne' JNI ile dizi oluşturma NewObjectArray() işlevi. oluşur JNI açısından bakıldığında, iki boyutlu bir dizidir, bir nesne dizisinin diğer iç diziler bir dizi içeren.

Döngü için aşağıdaki türü int olan iç diziler oluşturur[] JNI kullanarak fonksiyonu NewIntArray(). Eğer sen in tek boyutlu bir dizi dönmek istedim, sonra NewIntArray() fonksiyon dönüş değeri oluşturmak için kullanmak istiyorum. Eğer Dizeleri tek boyutlu bir dizi oluşturmak için zaman istedim ama sınıf için farklı bir parametre ile NewObjectArray() Bu fonksiyonu kullanmak istiyorum.

İnt bir dizi dönmek istiyorsanız bu yana, o zaman kod şöyle bir şey olacak:

JNIEXPORT jintArray JNICALL Java_ArrayTest_initIntArray(JNIEnv *env, jclass cls, int size)
{
 jintArray result;
 result = (*env)->NewIntArray(env, size);
 if (result == NULL) {
     return NULL; /* out of memory error thrown */
 }
 int i;
 // fill a temp structure to use to populate the java int array
 jint fill[256];
 for (i = 0; i < size; i  ) {
     fill[i] = 0; // put whatever logic you want to populate the values here.
 }
 // move from the temp structure to the java structure
 (*env)->SetIntArrayRegion(env, result, 0, size, fill);
 return result;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012
  • Slave Boy Films - Fandom from a Galaxy Far Far Away

    Slave Boy Fi

    12 HAZİRAN 2009