Browse Source

Added an option to define libraries to be loaded on Android in a derived class.

This way it is no more needed to modify SDLActivity.java to add own libraries.
Philipp Wiesemann 10 years ago
parent
commit
bc382e390a
1 changed files with 20 additions and 10 deletions
  1. 20 10
      android-project/src/org/libsdl/app/SDLActivity.java

+ 20 - 10
android-project/src/org/libsdl/app/SDLActivity.java

@@ -54,18 +54,28 @@ public class SDLActivity extends Activity {
     // Audio
     protected static AudioTrack mAudioTrack;
 
+    /**
+     * This method is called by SDL before loading the native shared libraries.
+     * It can be overridden to provide names of shared libraries to be loaded.
+     * The default implementation returns the defaults. It never returns null.
+     * An array returned by a new implementation must at least contain "SDL2".
+     * Also keep in mind that the order the libraries are loaded may matter.
+     * @return names of shared libraries to be loaded (e.g. "SDL2", "main").
+     */
+    protected String[] getLibraries() {
+        return new String[] {
+            "SDL2",
+            // "SDL2_image",
+            // "SDL2_mixer",
+            // "SDL2_net",
+            // "SDL2_ttf",
+            "main"
+        };
+    }
+
     // Load the .so
     public void loadLibraries() {
-       String AppLibraries[] = {
-         "SDL2",
-         // "SDL2_image",
-         // "SDL2_mixer",
-         // "SDL2_net",
-         // "SDL2_ttf",
-         "main"
-       };
-
-       for (String lib : AppLibraries) {
+       for (String lib : getLibraries()) {
           System.loadLibrary(lib);
        }
     }