summaryrefslogtreecommitdiffstats
path: root/make/jogamp-androidtasks.xml
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-03-17 21:15:49 +0100
committerSven Gothel <[email protected]>2012-03-17 21:15:49 +0100
commit235f8b1cbff8ed13071d5c19c0be492c0b25cb78 (patch)
tree659845e16bd69372bc7ddc3a42b3aa7130d18df5 /make/jogamp-androidtasks.xml
parent0cfc7847c58b51c9a26b50d905b592d1fc4c8578 (diff)
Add 'asset' URLConnection; IOUtil uses URLConnection / incr. effeciency; Android ClassLoaderUtil cleanup;
- Add 'asset' URLConnection - Please read API doc 'PiggybackURLConnection' and 'AssetURLConnection' - Solves generic resource handling where platform locations may differ, ie ClassLoader lookup on Android in the 'assets/' subfolder. - New Android 'AssetDexClassLoader' uses 'assets/' folder for findResource(..) - aapt.signed (our APK ant task) - uses 'assets/' folder - adds the 'assetsdir' attribute allowing to copy other assets into the APK - IOUtil uses URLConnection / incr. effeciency - using URLConnection on all getResource(..) since URL is connected anyways for validation and URLConnection can be used by caller right away - String getRelativeOf(URL, String) -> URL getRelativeOf(URL, String) - preserves scheme, authority, etc - simple parentOf handling, more efficient - reusing new 'asset' protocol impl. - Android ClassLoaderUtil cleanup; - Use createClassLoader(..) impl for build-in static jogamp and user APKs, which removes code redundancy Tests: New code path, especially 'assets' are covered by new unit tests, no regressions on Linux.
Diffstat (limited to 'make/jogamp-androidtasks.xml')
-rw-r--r--make/jogamp-androidtasks.xml14
1 files changed, 10 insertions, 4 deletions
diff --git a/make/jogamp-androidtasks.xml b/make/jogamp-androidtasks.xml
index 5e8405b..5c68e0e 100644
--- a/make/jogamp-androidtasks.xml
+++ b/make/jogamp-androidtasks.xml
@@ -32,6 +32,7 @@
-->
<macrodef name="aapt.signed">
+ <attribute name="assetsdir" default="/non.existing.src.path"/>
<attribute name="jarsrcdir" default="/non.existing.src.path"/>
<attribute name="jarbuilddir" />
<attribute name="jarbasename" />
@@ -73,20 +74,24 @@
<delete file="${m.aapt.release.file.name}" includeEmptyDirs="true" quiet="true" failonerror="false" />
<delete dir="${m.aapt.build.apk}" includeEmptyDirs="true" quiet="true" failonerror="false" />
+ <mkdir dir="${m.aapt.build.apk}/image/assets" />
<mkdir dir="${m.aapt.build.apk}/image/lib/@{android.abi}" />
<mkdir dir="${m.aapt.build.apk}/image/lib/src" />
<mkdir dir="${m.aapt.build.apk}/image/lib/classes" />
- <mkdir dir="${m.aapt.build.apk}/image/lib/assets" />
<copy todir="${m.aapt.build.apk}/image/lib/@{android.abi}">
<fileset dir="@{nativebuilddir}">
<include name="*@{nativebasename}*.${native.library.suffix}" />
</fileset>
</copy>
- <copy todir="${m.aapt.build.apk}/image" failonerror="false" includeEmptyDirs="false">
+ <copy todir="${m.aapt.build.apk}/image/assets" failonerror="false" includeEmptyDirs="false">
<fileset dir="@{jarsrcdir}"
includes="**"
- excludes="**/*.java **/*.class **/*.h **/*.c **/*.m"/>
+ excludes="**/*.java **/*.class **/*.h **/*.c **/*.m **/*.sh"/>
+ </copy>
+ <copy todir="${m.aapt.build.apk}/image/assets" failonerror="false" includeEmptyDirs="false">
+ <fileset dir="@{assetsdir}"
+ includes="**"/>
</copy>
<copy file="@{androidmanifest.path}" tofile="${m.aapt.build.apk}/image/AndroidManifest.xml"/>
@@ -150,8 +155,9 @@
<arg line="-S" />
<arg value="@{androidresources.path}"/>
+ <!-- implicit image layout
<arg line="-A" />
- <arg value="${m.aapt.build.apk}/image/lib/assets"/>
+ <arg value="${m.aapt.build.apk}/image/assets"/> -->
<arg line="-I" />
<arg line="${android.jar}"/>