Возможно, я пытаюсь сделать что-то, чего не должен делать.
Я запускаю блок кода в эмуляторе.Это выглядит (более или менее) так: http://pastie.org/1291380
Это для создания живого фона обоев.Я передаю растровое изображение, цветовую палитру и массив плиток. Размер моего растрового изображения составляет 256 x 256. getRedPal / getGreenPal / getBluePal по существу выполняет вызов Color.red () / Color.green () / Color.blue ()чтобы получить компоненты цвета rgb объекта палитры.
Петли запыхиваются;Я дошел до того, что значение j drawInC достигло 32, до того как эмулятор вышел из строя и сгорел:
11-11 15: 34: 44.032: INFO / distort_bmp (598): DrawInC: i:0 j: 32
11-11 15: 34: 44.032: INFO / distort_bmp (598): DrawTiles: i: 0 j: 0
11-11 15: 34: 44.032: INFO/ distort_bmp (598): DrawTiles: i: 0 j: 1
11-11 15: 34: 44.032: INFO / distort_bmp (598): DrawTiles: i: 0 j: 2
11-11 15: 34: 44.032: INFO / distort_bmp (598): DrawTiles: i: 0 j: 3
11-11 15: 34: 44.032: INFO / distort_bmp (598): DrawTiles: i:0 j: 4
После чего я получаю файл дампа, отправленный в / data / tombstones.Вот дамп (но я искренне не нахожу в нем ничего ценного, просто набор адресов памяти): http://pastie.org/1291394
Я добавил android: vmSafeMode = "true" в мойпосле прочтения в другом месте, что это может решить проблему.Это на 2.2, используя bitmap.h.
Лично я сомневаюсь в этом
jbyte* buffer =
(*env)->GetByteArrayElements(env, arr, &isCopy)
призыве;Я где-то взял этот код из сети, так как не смог получить значения из моего байтового массива "arr".
Есть идеи?
РЕДАКТИРОВАТЬ После манипуляции с итераторами циклов (я сократил количество циклов) я теперь получаю информативную ошибку:
"Переполнение ReferenceTable (max = 512) "
JNI local reference table summary (512 entries):
509 of Ljava/lang/Class; 164B (3 unique)
2 of Ljava/lang/String; 28B (2 unique)
1 of [Ljava/lang/String; 28B
Memory held directly by tracked refs is 576 bytes
Failed adding to JNI local ref table (has 512 entries)
То, что" 509 из java.lang.class "не выглядит слишком правильным для меня ... как я могу оптимизировать свой код здесь?