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

  • footiecyclo

    footiecyclo

    26 EYLÜL 2009
  • Fuse

    Fuse

    21 Kasım 2005
  • HER0R

    HER0R

    16 Aralık 2007