Как APP_OPTIM проявляется в коде?

В Application.mk вы можете установить:

APP_OPTIM := release
APP_OPTIM := debug

Как я могу протестировать сборку release/отладки на С++?

Я предполагаю, что есть определения, поэтому я пробовал это, но регистрируются только сообщения "NOT":

#ifdef RELEASE
    LOGV("RELEASE");
#else
    LOGV("NOT RELEASE");
#endif

#ifdef DEBUG
    LOGV("DEBUG");
#else
    LOGV("NOT DEBUG");
#endif

Ответ 1

В android-ndk-r8b/build/core/add-application.mk мы читаем:

ifeq ($(APP_OPTIM),debug)
  APP_CFLAGS := -O0 -g $(APP_CFLAGS)
else
  APP_CFLAGS := -O2 -DNDEBUG -g $(APP_CFLAGS)
endif

Итак, чтобы ответить на ваш вопрос: в NDK r8b (последнее на сегодняшний день) вы можете проверить

#ifdef NDEBUG
// this is "release"
#else
// this is "debug"
#endif

Но вы можете добавить любые другие флаги компиляции через Android.mk или Application.mk в зависимости от $(APP_OPTIM), если хотите.