diff options
author | Sven Gothel <[email protected]> | 2012-03-17 21:15:49 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-03-17 21:15:49 +0100 |
commit | 235f8b1cbff8ed13071d5c19c0be492c0b25cb78 (patch) | |
tree | 659845e16bd69372bc7ddc3a42b3aa7130d18df5 /make/jogamp-androidtasks.xml | |
parent | 0cfc7847c58b51c9a26b50d905b592d1fc4c8578 (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.xml | 14 |
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}"/> |