From 022c31eefaa0c11fbc069fd35cf5311a556c9ae5 Mon Sep 17 00:00:00 2001 From: Sven Gothel <sgothel@jausoft.com> Date: Fri, 24 Jan 2014 13:05:11 +0100 Subject: Bug 856 - Android: Support dual ABI (x86 i686 *and* ARMv7arm), i.e. pick 'best' ABI - Use 'os.arch' as a prelim CPUType for MachineDescription - Always attempt to load a binary and parse it's elf header - Linux: self-exe - Android: gluegen-rt library - Other: java lib - Always use details (ABI) if ARM - Android: Check CPU_TYPE and CPU_TYPE2 // FIXME / HACK: // We use sCPUType for MachineDescriptionRuntime.getStatic() // until we have determined the final CPU_TYPE, etc. // MachineDescriptionRuntime gets notified via MachineDescriptionRuntime.notifyPropsInitialized() below. // // We could use Elf Ehdr's machine value to determine the bit-size // used for it's offset table! // However, 'os.arch' should be a good guess for this task. Tested manually on - Linux x86, x86_64, armhf (raspi) - Android intel and arm - Windows x86_64 - OSX x86_64 --- .../common/os/android/GluegenVersionActivity.java | 33 ++++++++++++---------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'src/java/jogamp/common/os/android') diff --git a/src/java/jogamp/common/os/android/GluegenVersionActivity.java b/src/java/jogamp/common/os/android/GluegenVersionActivity.java index 581776b..5db3213 100644 --- a/src/java/jogamp/common/os/android/GluegenVersionActivity.java +++ b/src/java/jogamp/common/os/android/GluegenVersionActivity.java @@ -3,14 +3,14 @@ * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. - * + * * 2. Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR @@ -20,7 +20,7 @@ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation are those of the * authors and should not be interpreted as representing official policies, either expressed * or implied, of JogAmp Community. @@ -40,21 +40,24 @@ import android.util.Log; public class GluegenVersionActivity extends Activity { TextView tv = null; - + @Override public void onCreate(Bundle savedInstanceState) { Log.d(MD.TAG, "onCreate - S"); super.onCreate(savedInstanceState); StaticContext.init(this.getApplicationContext()); + + System.setProperty("jogamp.debug", "all"); + tv = new TextView(this); final ScrollView scroller = new ScrollView(this); scroller.addView(tv); setContentView(scroller); - - tv.setText(VersionUtil.getPlatformInfo()+Platform.NEWLINE+GlueGenVersion.getInstance()+Platform.NEWLINE+Platform.NEWLINE); + + tv.setText(VersionUtil.getPlatformInfo()+Platform.NEWLINE+GlueGenVersion.getInstance()+Platform.NEWLINE+Platform.NEWLINE); Log.d(MD.TAG, "onCreate - X"); } - + @Override public void onStart() { Log.d(MD.TAG, "onStart - S"); @@ -64,14 +67,14 @@ public class GluegenVersionActivity extends Activity { } Log.d(MD.TAG, "onStart - X"); } - + @Override public void onRestart() { Log.d(MD.TAG, "onRestart - S"); super.onRestart(); if(null != tv) { tv.append("> restarted"+Platform.NEWLINE); - } + } Log.d(MD.TAG, "onRestart - X"); } @@ -80,7 +83,7 @@ public class GluegenVersionActivity extends Activity { Log.d(MD.TAG, "onResume - S"); if(null != tv) { tv.append("> resumed"+Platform.NEWLINE); - } + } super.onResume(); Log.d(MD.TAG, "onResume - X"); } @@ -90,7 +93,7 @@ public class GluegenVersionActivity extends Activity { Log.d(MD.TAG, "onPause - S"); if(null != tv) { tv.append("> paused"+Platform.NEWLINE); - } + } super.onPause(); // Log.d(MD.TAG, "onPause - x"); // finish(); // ensure destroy after pause() -> one shot activity @@ -103,7 +106,7 @@ public class GluegenVersionActivity extends Activity { if(null != tv) { tv.append("> stopped"+Platform.NEWLINE); } - super.onStop(); + super.onStop(); Log.d(MD.TAG, "onStop - X"); } @@ -115,7 +118,7 @@ public class GluegenVersionActivity extends Activity { } Log.d(MD.TAG, "onDestroy - x"); StaticContext.clear(); - super.onDestroy(); + super.onDestroy(); Log.d(MD.TAG, "onDestroy - X"); - } + } } -- cgit v1.2.3