Tengo dos bibliotecas (.so), que cargo en código java.¿Cómo usar la actividad nativa? ¿Se puede combinar con la actividad tradicional?
Sin embargo, hay algunas operaciones específicas que requieren Java (Actividad) < -> C++ (. So archivos) llamadas.
¿Puedo utilizar Native Activity para implementar parte de esas funcionalidades? ¿La actividad nativa es algo que es adicional a la actividad tradicional o tengo que elegir qué tipo de actividad usaré?
[EDIT]
hay un conjunto de eventos que puede ser manejado en código nativo por native activity
android-NDK/fuentes/android/native_app_glue/android_native_app_glue.h
enum {
/**
* Command from main thread: the AInputQueue has changed. Upon processing
* this command, android_app->inputQueue will be updated to the new queue
* (or NULL).
*/
APP_CMD_INPUT_CHANGED,
/**
* Command from main thread: a new ANativeWindow is ready for use. Upon
* receiving this command, android_app->window will contain the new window
* surface.
*/
APP_CMD_INIT_WINDOW,
/**
* Command from main thread: the existing ANativeWindow needs to be
* terminated. Upon receiving this command, android_app->window still
* contains the existing window; after calling android_app_exec_cmd
* it will be set to NULL.
*/
APP_CMD_TERM_WINDOW,
/**
* Command from main thread: the current ANativeWindow has been resized.
* Please redraw with its new size.
*/
APP_CMD_WINDOW_RESIZED,
/**
* Command from main thread: the system needs that the current ANativeWindow
* be redrawn. You should redraw the window before handing this to
* android_app_exec_cmd() in order to avoid transient drawing glitches.
*/
APP_CMD_WINDOW_REDRAW_NEEDED,
/**
* Command from main thread: the content area of the window has changed,
* such as from the soft input window being shown or hidden. You can
* find the new content rect in android_app::contentRect.
*/
APP_CMD_CONTENT_RECT_CHANGED,
/**
* Command from main thread: the app's activity window has gained
* input focus.
*/
APP_CMD_GAINED_FOCUS,
/**
* Command from main thread: the app's activity window has lost
* input focus.
*/
APP_CMD_LOST_FOCUS,
/**
* Command from main thread: the current device configuration has changed.
*/
APP_CMD_CONFIG_CHANGED,
/**
* Command from main thread: the system is running low on memory.
* Try to reduce your memory use.
*/
APP_CMD_LOW_MEMORY,
/**
* Command from main thread: the app's activity has been started.
*/
APP_CMD_START,
/**
* Command from main thread: the app's activity has been resumed.
*/
APP_CMD_RESUME,
/**
* Command from main thread: the app should generate a new saved state
* for itself, to restore from later if needed. If you have saved state,
* allocate it with malloc and place it in android_app.savedState with
* the size in android_app.savedStateSize. The will be freed for you
* later.
*/
APP_CMD_SAVE_STATE,
/**
* Command from main thread: the app's activity has been paused.
*/
APP_CMD_PAUSE,
/**
* Command from main thread: the app's activity has been stopped.
*/
APP_CMD_STOP,
/**
* Command from main thread: the app's activity is being destroyed,
* and waiting for the app thread to clean up and exit before proceeding.
*/
APP_CMD_DESTROY,
};
ya que sé que parte de mi código (que debería llamarse después de un evento específico) está escrito en C++, creo que será mejor para manejar esto en C++ a través de la actividad nativa. Sin embargo, también tengo un código que debe llamarse después de manejar eventos en Java.
pregunta es ... ¿puedo tener una versión nativa (interfaz nativa) de mi actividad, que me ayudará con algunos eventos, y la interfaz tradicional de Java para esta misma actividad en este mismo momento?
Por lo que entiendo @noisy su problema es que "No puede cargar dos bibliotecas nativas" ¿Estoy en lo correcto? – 100rabh