title: How to use Native Activity? Can it be combined with traditional activity?
body: <p>I have two libraries (.so), which I load in java code.</p>
  
  <p>However there are a few specific operations which require Java(Activity)&lt;->C++(.so files) calls. </p>
  
  <p>Can I use Native Activity to implement part of those functionalities? Is native activity something which is additional to traditional activity or do I have to choose, which type of activity I will use?</p>
  
  <p><strong>[EDIT]</strong></p>
  
  <p>there is a set of events which can be handled in native code by <strong><a href="http://developer.android.com/reference/android/app/NativeActivity.html">native activity</a></strong></p>
  
  <p>android-ndk/sources/android/native_app_glue/android_native_app_glue.h</p>
  
  <pre><code>enum {
      /**
       * Command from main thread: the AInputQueue has changed.  Upon processing
       * this command, android_app-&gt;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-&gt;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-&gt;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,
  };
  </code></pre>
  
  <p>since I know that part of my code (which should be called after specific event) is written in C++, I think it will be better to handle this in C++ via native Activity. However I have also code which have to be called after handle events in Java.</p>
  
  <p>question is... can I have native version (native interface) of my activity, which will help me with some events, and traditional java interface to this same activity in this same time?</p>