Является ли их гарантированное время жизни для переменных области файла, объявленных в файлах .c и .cpp (JNI)?

0

При вызове JNI-функций из Java в Android-приложении с использованием JNI это гарантированное время жизни для переменных, объявленных в области файлов? Мы называем эту функцию несколько раз, может ли система Android выгружать нашу программу из памяти, не прерывая процесс приложения, чтобы сохранить память между вызовами? Является ли наша переменная продолжительность жизни гарантированной для жизни процесса?

#include <stuff>

int counter = 0;

extern "C" void com_package_Class_dostuffFromJava(JNIenv.....)
{
    LOG("Counter: %d" , counter);
    ++counter;
}
  • 0
    Да. Нет да. Бонусный текст.
  • 0
    (Возможно, вам придется беспокоиться о безопасности потоков.)
Теги:
android-ndk
jni

1 ответ

1
Лучший ответ

Любая операционная система может обмениваться или использовать память страниц, но я не понимаю, почему это касается вас. "Гарантированная жизнь" переменной в области файлов в C - это жизнь процесса.

  • 0
    Вы уверены, что это верно для платформы Android, где система может просто случайным образом уничтожить одну из ваших операций, например, не прерывая процесс? «Если действие приостановлено или остановлено, система может удалить его из памяти, либо попросив его завершить (вызвав его метод finish ())», либо просто уничтожив его процесс.
  • 0
    Уничтожение процесса приведет к сбросу переменной; Вызов метода финиша не будет.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню