mirror of
https://github.com/zxing/zxing.git
synced 2024-11-10 04:54:04 -08:00
Converted the Android client and the test app to use the Android 1.5 SDK, and to use a more efficient preview frame mechanism too. We now require devices to be running Cupcake or a newer version of the platform. This change temporarily removes the Proguard step, which Sean is going to add back.
git-svn-id: https://zxing.googlecode.com/svn/trunk@1023 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
9f475ac33e
commit
d71c099313
|
@ -22,7 +22,7 @@ versionName is 2.31, 2.4, or 3.0. -->
|
|||
package="com.google.zxing.client.android"
|
||||
android:versionName="2.9"
|
||||
android:versionCode="23">
|
||||
<uses-sdk android:minSdkVersion="1"/>
|
||||
<uses-sdk android:minSdkVersion="3"/>
|
||||
<application android:icon="@drawable/launcher_icon"
|
||||
android:label="@string/app_name">
|
||||
<activity android:name=".CaptureActivity"
|
||||
|
|
15
android/build.properties
Normal file
15
android/build.properties
Normal file
|
@ -0,0 +1,15 @@
|
|||
# This file is used to override default values used by the Ant build system.
|
||||
#
|
||||
# This file must be checked in Version Control Systems, as it is
|
||||
# integral to the build system of your project.
|
||||
|
||||
# The name of your application package as defined in the manifest.
|
||||
# Used by the 'uninstall' rule.
|
||||
application-package=com.google.zxing.client.android
|
||||
|
||||
# The name of the source folder.
|
||||
#source-folder=src
|
||||
|
||||
# The name of the output folder.
|
||||
#out-folder=bin
|
||||
|
|
@ -14,109 +14,130 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<project name="BarcodeScanner" default="debug-optimized">
|
||||
<!-- SDK Locations -->
|
||||
<project name="BarcodeScanner" default="debug">
|
||||
|
||||
<!-- Normally the Android build system looks for a local.properties. Since that's only used
|
||||
to find the SDK location, I've removed it and pointed us at the global ZXing build.properties. -->
|
||||
<property file="../build.properties"/>
|
||||
<property name="sdk-folder" value="${android-home}"/>
|
||||
<property name="android-tools" value="${sdk-folder}/tools"/>
|
||||
<!-- Parts of the Android build system insist on the name 'sdk-location', so alias it. -->
|
||||
<property name="sdk-location" value="${android-home}"/>
|
||||
|
||||
<!-- Application Package Name -->
|
||||
<property name="application-package" value="com.google.zxing.client.android" />
|
||||
<!-- The build.properties file can be created by you and is never touched
|
||||
by the 'android' tool. This is the place to change some of the default property values
|
||||
used by the Ant rules.
|
||||
Here are some properties you may want to change/update:
|
||||
|
||||
<!-- The intermediates directory -->
|
||||
<!-- Eclipse uses "bin" for its own output, so we do the same. -->
|
||||
<property name="outdir" value="bin" />
|
||||
application-package
|
||||
the name of your application package as defined in the manifest. Used by the
|
||||
'uninstall' rule.
|
||||
source-folder
|
||||
the name of the source folder. Default is 'src'.
|
||||
out-folder
|
||||
the name of the output folder. Default is 'bin'.
|
||||
|
||||
<!-- ************************************************************************************* -->
|
||||
<!-- No user servicable parts below. -->
|
||||
Properties related to the SDK location or the project target should be updated
|
||||
using the 'android' tool with the 'update' action.
|
||||
|
||||
<property name="android-framework" value="${android-tools}/lib/framework.aidl" />
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems.
|
||||
|
||||
-->
|
||||
<!--<property file="build.properties"/>-->
|
||||
|
||||
<!-- The default.properties file is created and updated by the 'android' tool, as well as ADT.
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems. -->
|
||||
<property file="default.properties"/>
|
||||
|
||||
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
||||
This requires ant 1.6.0 or above. -->
|
||||
<path id="android.antlibs">
|
||||
<pathelement path="${sdk-location}/tools/lib/anttasks.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/sdklib.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/androidprefs.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/apkbuilder.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/jarutils.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef name="setup"
|
||||
classname="com.android.ant.SetupTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
||||
and import the rules files.
|
||||
To customize the rules, copy/paste them below the task, and disable import by setting
|
||||
the import attribute to false:
|
||||
<setup import="false" />
|
||||
|
||||
This will ensure that the properties are setup correctly but that your customized
|
||||
targets are used.
|
||||
-->
|
||||
<setup import="false" />
|
||||
|
||||
<!-- Custom tasks -->
|
||||
<taskdef name="aaptexec"
|
||||
classname="com.android.ant.AaptExecLoopTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<taskdef name="apkbuilder"
|
||||
classname="com.android.ant.ApkBuilderTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<!-- Properties -->
|
||||
|
||||
<property name="android-tools" value="${sdk-location}/tools" />
|
||||
|
||||
<!-- Input directories -->
|
||||
<property name="resource-dir" value="res" />
|
||||
<property name="asset-dir" value="assets" />
|
||||
<property name="srcdir" value="src" />
|
||||
<condition property="srcdir-ospath"
|
||||
value="${basedir}\${srcdir}"
|
||||
else="${basedir}/${srcdir}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<property name="source-folder" value="src" />
|
||||
<property name="gen-folder" value="gen" />
|
||||
<property name="resource-folder" value="res" />
|
||||
<property name="asset-folder" value="assets" />
|
||||
<property name="source-location" value="${basedir}/${source-folder}" />
|
||||
|
||||
<property name="external-libs" value="../core" />
|
||||
<condition property="external-libs-ospath"
|
||||
value="${basedir}\${external-libs}"
|
||||
else="${basedir}/${external-libs}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<!-- folder for the 3rd party java libraries -->
|
||||
<property name="external-libs-folder" value="../core" />
|
||||
|
||||
<!-- folder for the native libraries -->
|
||||
<property name="native-libs-folder" value="libs" />
|
||||
|
||||
<!-- Output directories -->
|
||||
<property name="outdir-classes" value="${outdir}/classes" />
|
||||
<condition property="outdir-classes-ospath"
|
||||
value="${basedir}\${outdir-classes}"
|
||||
else="${basedir}/${outdir-classes}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<!-- Create R.java in the source directory -->
|
||||
<property name="outdir-r" value="src" />
|
||||
<property name="gen-folder" value="gen" />
|
||||
<property name="out-folder" value="bin" />
|
||||
<property name="out-classes" value="${out-folder}/classes" />
|
||||
<property name="out-classes-location" value="${basedir}/${out-classes}"/>
|
||||
<!-- out folders for a parent project if this project is an instrumentation project -->
|
||||
<property name="main-out-folder" value="../${out-folder}" />
|
||||
<property name="main-out-classes" value="${main-out-folder}/classes"/>
|
||||
|
||||
<!-- Intermediate files -->
|
||||
<property name="dex-file" value="classes.dex" />
|
||||
<property name="intermediate-dex" value="${outdir}/${dex-file}" />
|
||||
<condition property="intermediate-dex-ospath"
|
||||
<property name="intermediate-dex" value="${out-folder}/${dex-file}" />
|
||||
<!-- dx does not properly support incorrect / or \ based on the platform
|
||||
and Ant cannot convert them because the parameter is not a valid path.
|
||||
Because of this we have to compute different paths depending on the platform. -->
|
||||
<condition property="intermediate-dex-location"
|
||||
value="${basedir}\${intermediate-dex}"
|
||||
else="${basedir}/${intermediate-dex}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<!-- The final package file to generate -->
|
||||
<property name="resources-package" value="${outdir}/${ant.project.name}.ap_" />
|
||||
<condition property="resources-package-ospath"
|
||||
value="${basedir}\${resources-package}"
|
||||
else="${basedir}/${resources-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" />
|
||||
<condition property="out-debug-package-ospath"
|
||||
value="${basedir}\${out-debug-package}"
|
||||
else="${basedir}/${out-debug-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />
|
||||
<condition property="out-unsigned-package-ospath"
|
||||
value="${basedir}\${out-unsigned-package}"
|
||||
else="${basedir}/${out-unsigned-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<property name="out-debug-package" value="${out-folder}/${ant.project.name}-debug.apk"/>
|
||||
|
||||
<!-- Tools -->
|
||||
<condition property="aapt" value="${android-tools}/aapt.exe" else="${android-tools}/aapt" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="aidl" value="${android-tools}/aidl.exe" else="${android-tools}/aidl" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="adb" value="${android-tools}/adb.exe" else="${android-tools}/adb" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="exe" value=".exe" else=""><os family="windows"/></condition>
|
||||
<property name="adb" value="${android-tools}/adb${exe}"/>
|
||||
|
||||
<property name="android-jar" value="${sdk-folder}/android.jar" />
|
||||
|
||||
<!-- Rules -->
|
||||
<!-- rules -->
|
||||
|
||||
<!-- Create the output directories if they don't exist yet. -->
|
||||
<target name="dirs">
|
||||
<echo>Creating output directories if needed...</echo>
|
||||
<mkdir dir="${outdir}" />
|
||||
<mkdir dir="${outdir-classes}" />
|
||||
<mkdir dir="${resource-folder}" />
|
||||
<mkdir dir="${external-libs-folder}" />
|
||||
<mkdir dir="${gen-folder}" />
|
||||
<mkdir dir="${out-folder}" />
|
||||
<mkdir dir="${out-classes}" />
|
||||
</target>
|
||||
|
||||
<!-- Generate the R.java file for this project's resources. -->
|
||||
|
@ -126,13 +147,13 @@ limitations under the License.
|
|||
<arg value="package" />
|
||||
<arg value="-m" />
|
||||
<arg value="-J" />
|
||||
<arg value="${outdir-r}" />
|
||||
<arg path="${gen-folder}" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg path="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<arg path="${resource-folder}" />
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg path="${android-jar}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
@ -140,217 +161,104 @@ limitations under the License.
|
|||
<target name="aidl" depends="dirs">
|
||||
<echo>Compiling aidl files into Java classes...</echo>
|
||||
<apply executable="${aidl}" failonerror="true">
|
||||
<arg value="-p${android-framework}" />
|
||||
<arg value="-I${srcdir}" />
|
||||
<fileset dir="${srcdir}">
|
||||
<arg value="-p${android-aidl}" />
|
||||
<arg value="-I${source-folder}" />
|
||||
<arg value="-o${gen-folder}" />
|
||||
<fileset dir="${source-folder}">
|
||||
<include name="**/*.aidl"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<!-- Compile this project's .java files into .class files. -->
|
||||
<target name="compile" depends="clean, dirs, resource-src, aidl">
|
||||
<target name="compile" depends="resource-src, aidl">
|
||||
<javac encoding="ascii" target="1.5" debug="true" extdirs=""
|
||||
srcdir="."
|
||||
destdir="${outdir-classes}"
|
||||
bootclasspath="${android-jar}">
|
||||
destdir="${out-classes}"
|
||||
bootclasspathref="android.target.classpath">
|
||||
<src path="${source-folder}" />
|
||||
<src path="${gen-folder}" />
|
||||
<classpath>
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
<fileset dir="${external-libs-folder}" includes="*.jar"/>
|
||||
<pathelement path="${main-out-classes}"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="compile-release" depends="clean, dirs, resource-src, aidl">
|
||||
<javac encoding="ascii" target="1.5" debug="off" extdirs=""
|
||||
srcdir="."
|
||||
destdir="${outdir-classes}"
|
||||
bootclasspath="${android-jar}">
|
||||
<classpath>
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<!--
|
||||
Getting an error like this?
|
||||
|
||||
[apply] UNEXPECTED TOP-LEVEL EXCEPTION:
|
||||
[apply] com.android.dx.cf.code.SimException: local variable type
|
||||
mismatch: attempt to set or access a value of type int using a local
|
||||
variable of type com.google.zxing.qrcode.decoder.Version. This is
|
||||
symptomatic of .class transformation tools that ignore local variable
|
||||
information.
|
||||
|
||||
Build core/ with the 'build-no-debug' target. It's a long story.
|
||||
-->
|
||||
|
||||
<target name="optimize" depends="compile-release">
|
||||
<fail message="Please put proguard.jar in 'bin' under the WTK install directory">
|
||||
<condition>
|
||||
<not>
|
||||
<available file="${WTK-home}/bin/proguard.jar" type="file"/>
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<unzip src="../core/core.jar" dest="${outdir-classes}" overwrite="true"/>
|
||||
<jar jarfile="temp.jar" basedir="${outdir-classes}"/>
|
||||
<delete dir="${outdir-classes}"/>
|
||||
<mkdir dir="${outdir-classes}"/>
|
||||
<java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">
|
||||
<jvmarg value="-Dmaximum.inlined.code.length=32"/>
|
||||
<arg value="-injars temp.jar"/>
|
||||
<arg value="-outjars temp-optimized.jar"/>
|
||||
<arg value="-libraryjars ${android-jar}"/>
|
||||
<arg value="-keep class com.google.zxing.client.android.*Activity"/>
|
||||
<arg value="-keep class com.google.zxing.client.android.ViewfinderView { public * ; }"/>
|
||||
<arg value="-keep class com.google.zxing.client.android.SearchBookContents* { public * ; }"/>
|
||||
<arg value="-target 5"/>
|
||||
<arg value="-optimizationpasses 7"/>
|
||||
<arg value="-dontshrink"/>
|
||||
<arg value="-dontobfuscate"/>
|
||||
<arg value="-dontskipnonpubliclibraryclasses"/>
|
||||
<arg value="-verbose"/>
|
||||
<arg value="-dump proguard-dump.txt"/>
|
||||
</java>
|
||||
<delete file="temp.jar"/>
|
||||
<unzip src="temp-optimized.jar" dest="${outdir-classes}" overwrite="true"/>
|
||||
<delete file="temp-optimized.jar"/>
|
||||
</target>
|
||||
|
||||
<!-- Convert this project's .class files into .dex files. -->
|
||||
<target name="dex" depends="compile">
|
||||
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
|
||||
<echo>NOTE: This will fail unless you built core with build-no-debug.</echo>
|
||||
<echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>
|
||||
<apply executable="${dx}" failonerror="true" parallel="true">
|
||||
<arg value="-JXmx256M"/>
|
||||
<arg value="--dex" />
|
||||
<arg value="--output=${intermediate-dex-ospath}" />
|
||||
<arg path="${outdir-classes-ospath}" />
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
<arg value="--output=${intermediate-dex-location}" />
|
||||
<arg path="${out-classes-location}" />
|
||||
<fileset dir="${external-libs-folder}" includes="*.jar"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="dex-optimized" depends="compile-release,optimize">
|
||||
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
|
||||
<echo>NOTE: This will fail unless you built core with build-no-debug.</echo>
|
||||
<apply executable="${dx}" failonerror="true" parallel="true">
|
||||
<arg value="--dex" />
|
||||
<arg value="--output=${intermediate-dex-ospath}" />
|
||||
<arg path="${outdir-classes-ospath}" />
|
||||
<!-- workaround to appease 'apply'. Not really the right Ant task to use here. -->
|
||||
<fileset dir="." includes="nosuchfile.jar"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<!-- Put the project's resources into the output package file. -->
|
||||
<target name="package-res-and-assets">
|
||||
<echo>Packaging resources and assets...</echo>
|
||||
<exec executable="${aapt}" failonerror="true">
|
||||
<arg value="package" />
|
||||
<arg value="-f" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<arg value="-A" />
|
||||
<arg value="${asset-dir}" />
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg value="-F" />
|
||||
<arg value="${resources-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->
|
||||
<target name="package-res-no-assets">
|
||||
<echo>Packaging resources...</echo>
|
||||
<exec executable="${aapt}" failonerror="true">
|
||||
<arg value="package" />
|
||||
<arg value="-f" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<!-- No assets directory -->
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg value="-F" />
|
||||
<arg value="${resources-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Invoke the proper target depending on whether or not an assets directory is present. -->
|
||||
<target name="package-res">
|
||||
<available file="${asset-dir}" type="dir"
|
||||
property="res-target" value="and-assets" />
|
||||
<property name="res-target" value="no-assets" />
|
||||
<antcall target="package-res-${res-target}" />
|
||||
<!-- Put the project's resources into the output package file
|
||||
This actually can create multiple resource package in case
|
||||
Some custom apk with specific configuration have been
|
||||
declared in default.properties.
|
||||
-->
|
||||
<target name="package-resources">
|
||||
<echo>Packaging resources</echo>
|
||||
<aaptexec executable="${aapt}"
|
||||
command="package"
|
||||
manifest="AndroidManifest.xml"
|
||||
resources="${resource-folder}"
|
||||
assets="${asset-folder}"
|
||||
androidjar="${android-jar}"
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}" />
|
||||
</target>
|
||||
|
||||
<!-- Package the application and sign it with a debug key.
|
||||
This is the default target when building. It is used for debug. -->
|
||||
<target name="debug" depends="dex, package-res">
|
||||
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-debug-package-ospath}" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
<arg value="-rj" />
|
||||
<arg value="${external-libs-ospath}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Package the optimized application and sign it with a debug key. -->
|
||||
<target name="debug-optimized" depends="dex-optimized, package-res">
|
||||
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-debug-package-ospath}" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
<arg value="-rj" />
|
||||
<arg value="${external-libs-ospath}" />
|
||||
</exec>
|
||||
This is the default target when building. It is used for debug. -->
|
||||
<target name="debug" depends="dex, package-resources">
|
||||
<apkbuilder
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}"
|
||||
signed="true"
|
||||
verbose="false">
|
||||
<file path="${intermediate-dex}" />
|
||||
<sourcefolder path="${source-folder}" />
|
||||
<jarfolder path="${external-libs-folder}" />
|
||||
<nativefolder path="${native-libs-folder}" />
|
||||
</apkbuilder>
|
||||
</target>
|
||||
|
||||
<!-- Package the application without signing it.
|
||||
This allows for the application to be signed later with an official publishing key. -->
|
||||
<target name="release" depends="dex-optimized, package-res">
|
||||
<echo>Packaging ${out-unsigned-package} for release...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-unsigned-package-ospath}" />
|
||||
<arg value="-u" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
</exec>
|
||||
<echo>It will need to be signed with jarsigner before being published.</echo>
|
||||
This allows for the application to be signed later with an official publishing key. -->
|
||||
<target name="release" depends="dex, package-resources">
|
||||
<apkbuilder
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}"
|
||||
signed="false"
|
||||
verbose="false">
|
||||
<file path="${intermediate-dex}" />
|
||||
<sourcefolder path="${source-folder}" />
|
||||
<jarfolder path="${external-libs-folder}" />
|
||||
<nativefolder path="${native-libs-folder}" />
|
||||
</apkbuilder>
|
||||
<echo>All generated packages need to be signed with jarsigner before they are published.</echo>
|
||||
</target>
|
||||
|
||||
<!-- Install the package on the default emulator -->
|
||||
<target name="install">
|
||||
<target name="install" depends="debug">
|
||||
<echo>Installing ${out-debug-package} onto default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="install" />
|
||||
<arg value="${out-debug-package}" />
|
||||
<arg path="${out-debug-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="reinstall">
|
||||
<target name="reinstall" depends="debug">
|
||||
<echo>Installing ${out-debug-package} onto default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="install" />
|
||||
<arg value="-r" />
|
||||
<arg value="${out-debug-package}" />
|
||||
<arg path="${out-debug-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
@ -359,13 +267,28 @@ limitations under the License.
|
|||
<echo>Uninstalling ${application-package} from the default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="uninstall" />
|
||||
<arg value="${application-package}" />
|
||||
<arg path="${application-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${outdir}"/>
|
||||
<delete file="proguard-dump.txt"/>
|
||||
<target name="help">
|
||||
<echo>Android Ant Build. Available targets:</echo>
|
||||
<echo> help: Displays this help.</echo>
|
||||
<echo> debug: Builds the application and sign it with a debug key.</echo>
|
||||
<echo> release: Builds the application. The generated apk file must be</echo>
|
||||
<echo> signed before it is published.</echo>
|
||||
<echo> install: Installs the debug package onto a running emulator or</echo>
|
||||
<echo> device. This can only be used if the application has </echo>
|
||||
<echo> not yet been installed.</echo>
|
||||
<echo> reinstall: Installs the debug package on a running emulator or</echo>
|
||||
<echo> device that already has the application.</echo>
|
||||
<echo> The signatures must match.</echo>
|
||||
<echo> uninstall: uninstall the application from a running emulator or</echo>
|
||||
<echo> device.</echo>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${out-folder}"/>
|
||||
<delete dir="${gen-folder}"/>
|
||||
</target>
|
||||
</project>
|
||||
|
|
11
android/default.properties
Normal file
11
android/default.properties
Normal file
|
@ -0,0 +1,11 @@
|
|||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system use,
|
||||
# "build.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=Google Inc.:Google APIs:3
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package com.google.zxing.client.android;
|
||||
|
||||
import com.google.zxing.ResultPoint;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
|
@ -26,7 +28,6 @@ import android.util.Log;
|
|||
import android.view.Display;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.WindowManager;
|
||||
import com.google.zxing.ResultPoint;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
@ -118,7 +119,7 @@ final class CameraManager {
|
|||
if (mCamera != null && mPreviewing) {
|
||||
mPreviewHandler = handler;
|
||||
mPreviewMessage = message;
|
||||
mCamera.setPreviewCallback(previewCallback);
|
||||
mCamera.setOneShotPreviewCallback(previewCallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -175,7 +176,6 @@ final class CameraManager {
|
|||
*/
|
||||
private final Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
|
||||
public void onPreviewFrame(byte[] data, Camera camera) {
|
||||
camera.setPreviewCallback(null);
|
||||
if (mPreviewHandler != null) {
|
||||
Message message = mPreviewHandler.obtainMessage(mPreviewMessage, mScreenResolution.x,
|
||||
mScreenResolution.y, data);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.google.zxing.client.androidtest">
|
||||
<uses-sdk android:minSdkVersion="3"/>
|
||||
<application android:label="@string/app_name"
|
||||
android:icon="@drawable/icon"
|
||||
android:debuggable="true">
|
||||
|
|
15
androidtest/build.properties
Normal file
15
androidtest/build.properties
Normal file
|
@ -0,0 +1,15 @@
|
|||
# This file is used to override default values used by the Ant build system.
|
||||
#
|
||||
# This file must be checked in Version Control Systems, as it is
|
||||
# integral to the build system of your project.
|
||||
|
||||
# The name of your application package as defined in the manifest.
|
||||
# Used by the 'uninstall' rule.
|
||||
application-package=com.google.zxing.client.androidtest
|
||||
|
||||
# The name of the source folder.
|
||||
#source-folder=src
|
||||
|
||||
# The name of the output folder.
|
||||
#out-folder=bin
|
||||
|
|
@ -14,109 +14,130 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<project name="ZXingTest" default="debug-optimized">
|
||||
<!-- SDK Locations -->
|
||||
<project name="ZXingTest" default="debug">
|
||||
|
||||
<!-- Normally the Android build system looks for a local.properties. Since that's only used
|
||||
to find the SDK location, I've removed it and pointed us at the global ZXing build.properties. -->
|
||||
<property file="../build.properties"/>
|
||||
<property name="sdk-folder" value="${android-home}"/>
|
||||
<property name="android-tools" value="${sdk-folder}/tools"/>
|
||||
<!-- Parts of the Android build system insist on the name 'sdk-location', so alias it. -->
|
||||
<property name="sdk-location" value="${android-home}"/>
|
||||
|
||||
<!-- Application Package Name -->
|
||||
<property name="application-package" value="com.google.zxing.client.androidtest" />
|
||||
<!-- The build.properties file can be created by you and is never touched
|
||||
by the 'android' tool. This is the place to change some of the default property values
|
||||
used by the Ant rules.
|
||||
Here are some properties you may want to change/update:
|
||||
|
||||
<!-- The intermediates directory -->
|
||||
<!-- Eclipse uses "bin" for its own output, so we do the same. -->
|
||||
<property name="outdir" value="bin" />
|
||||
application-package
|
||||
the name of your application package as defined in the manifest. Used by the
|
||||
'uninstall' rule.
|
||||
source-folder
|
||||
the name of the source folder. Default is 'src'.
|
||||
out-folder
|
||||
the name of the output folder. Default is 'bin'.
|
||||
|
||||
<!-- ************************************************************************************* -->
|
||||
<!-- No user servicable parts below. -->
|
||||
Properties related to the SDK location or the project target should be updated
|
||||
using the 'android' tool with the 'update' action.
|
||||
|
||||
<property name="android-framework" value="${android-tools}/lib/framework.aidl" />
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems.
|
||||
|
||||
-->
|
||||
<!--<property file="build.properties"/>-->
|
||||
|
||||
<!-- The default.properties file is created and updated by the 'android' tool, as well as ADT.
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems. -->
|
||||
<property file="default.properties"/>
|
||||
|
||||
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
||||
This requires ant 1.6.0 or above. -->
|
||||
<path id="android.antlibs">
|
||||
<pathelement path="${sdk-location}/tools/lib/anttasks.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/sdklib.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/androidprefs.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/apkbuilder.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/jarutils.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef name="setup"
|
||||
classname="com.android.ant.SetupTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
||||
and import the rules files.
|
||||
To customize the rules, copy/paste them below the task, and disable import by setting
|
||||
the import attribute to false:
|
||||
<setup import="false" />
|
||||
|
||||
This will ensure that the properties are setup correctly but that your customized
|
||||
targets are used.
|
||||
-->
|
||||
<setup import="false" />
|
||||
|
||||
<!-- Custom tasks -->
|
||||
<taskdef name="aaptexec"
|
||||
classname="com.android.ant.AaptExecLoopTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<taskdef name="apkbuilder"
|
||||
classname="com.android.ant.ApkBuilderTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<!-- Properties -->
|
||||
|
||||
<property name="android-tools" value="${sdk-location}/tools" />
|
||||
|
||||
<!-- Input directories -->
|
||||
<property name="resource-dir" value="res" />
|
||||
<property name="asset-dir" value="assets" />
|
||||
<property name="srcdir" value="src" />
|
||||
<condition property="srcdir-ospath"
|
||||
value="${basedir}\${srcdir}"
|
||||
else="${basedir}/${srcdir}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<property name="source-folder" value="src" />
|
||||
<property name="gen-folder" value="gen" />
|
||||
<property name="resource-folder" value="res" />
|
||||
<property name="asset-folder" value="assets" />
|
||||
<property name="source-location" value="${basedir}/${source-folder}" />
|
||||
|
||||
<property name="external-libs" value="../core" />
|
||||
<condition property="external-libs-ospath"
|
||||
value="${basedir}\${external-libs}"
|
||||
else="${basedir}/${external-libs}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<!-- folder for the 3rd party java libraries -->
|
||||
<property name="external-libs-folder" value="../core" />
|
||||
|
||||
<!-- folder for the native libraries -->
|
||||
<property name="native-libs-folder" value="libs" />
|
||||
|
||||
<!-- Output directories -->
|
||||
<property name="outdir-classes" value="${outdir}/classes" />
|
||||
<condition property="outdir-classes-ospath"
|
||||
value="${basedir}\${outdir-classes}"
|
||||
else="${basedir}/${outdir-classes}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<!-- Create R.java in the source directory -->
|
||||
<property name="outdir-r" value="src" />
|
||||
<property name="gen-folder" value="gen" />
|
||||
<property name="out-folder" value="bin" />
|
||||
<property name="out-classes" value="${out-folder}/classes" />
|
||||
<property name="out-classes-location" value="${basedir}/${out-classes}"/>
|
||||
<!-- out folders for a parent project if this project is an instrumentation project -->
|
||||
<property name="main-out-folder" value="../${out-folder}" />
|
||||
<property name="main-out-classes" value="${main-out-folder}/classes"/>
|
||||
|
||||
<!-- Intermediate files -->
|
||||
<property name="dex-file" value="classes.dex" />
|
||||
<property name="intermediate-dex" value="${outdir}/${dex-file}" />
|
||||
<condition property="intermediate-dex-ospath"
|
||||
<property name="intermediate-dex" value="${out-folder}/${dex-file}" />
|
||||
<!-- dx does not properly support incorrect / or \ based on the platform
|
||||
and Ant cannot convert them because the parameter is not a valid path.
|
||||
Because of this we have to compute different paths depending on the platform. -->
|
||||
<condition property="intermediate-dex-location"
|
||||
value="${basedir}\${intermediate-dex}"
|
||||
else="${basedir}/${intermediate-dex}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<!-- The final package file to generate -->
|
||||
<property name="resources-package" value="${outdir}/${ant.project.name}.ap_" />
|
||||
<condition property="resources-package-ospath"
|
||||
value="${basedir}\${resources-package}"
|
||||
else="${basedir}/${resources-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" />
|
||||
<condition property="out-debug-package-ospath"
|
||||
value="${basedir}\${out-debug-package}"
|
||||
else="${basedir}/${out-debug-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
|
||||
<property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />
|
||||
<condition property="out-unsigned-package-ospath"
|
||||
value="${basedir}\${out-unsigned-package}"
|
||||
else="${basedir}/${out-unsigned-package}" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<property name="out-debug-package" value="${out-folder}/${ant.project.name}-debug.apk"/>
|
||||
|
||||
<!-- Tools -->
|
||||
<condition property="aapt" value="${android-tools}/aapt.exe" else="${android-tools}/aapt" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="aidl" value="${android-tools}/aidl.exe" else="${android-tools}/aidl" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="adb" value="${android-tools}/adb.exe" else="${android-tools}/adb" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="dx" value="${android-tools}/dx.bat" else="${android-tools}/dx" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="apk-builder" value="${android-tools}/apkbuilder.bat" else="${android-tools}/apkbuilder" >
|
||||
<os family="windows"/>
|
||||
</condition>
|
||||
<condition property="exe" value=".exe" else=""><os family="windows"/></condition>
|
||||
<property name="adb" value="${android-tools}/adb${exe}"/>
|
||||
|
||||
<property name="android-jar" value="${sdk-folder}/android.jar" />
|
||||
|
||||
<!-- Rules -->
|
||||
<!-- rules -->
|
||||
|
||||
<!-- Create the output directories if they don't exist yet. -->
|
||||
<target name="dirs">
|
||||
<echo>Creating output directories if needed...</echo>
|
||||
<mkdir dir="${outdir}" />
|
||||
<mkdir dir="${outdir-classes}" />
|
||||
<mkdir dir="${resource-folder}" />
|
||||
<mkdir dir="${external-libs-folder}" />
|
||||
<mkdir dir="${gen-folder}" />
|
||||
<mkdir dir="${out-folder}" />
|
||||
<mkdir dir="${out-classes}" />
|
||||
</target>
|
||||
|
||||
<!-- Generate the R.java file for this project's resources. -->
|
||||
|
@ -126,13 +147,13 @@ limitations under the License.
|
|||
<arg value="package" />
|
||||
<arg value="-m" />
|
||||
<arg value="-J" />
|
||||
<arg value="${outdir-r}" />
|
||||
<arg path="${gen-folder}" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg path="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<arg path="${resource-folder}" />
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg path="${android-jar}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
@ -140,202 +161,104 @@ limitations under the License.
|
|||
<target name="aidl" depends="dirs">
|
||||
<echo>Compiling aidl files into Java classes...</echo>
|
||||
<apply executable="${aidl}" failonerror="true">
|
||||
<arg value="-p${android-framework}" />
|
||||
<arg value="-I${srcdir}" />
|
||||
<fileset dir="${srcdir}">
|
||||
<arg value="-p${android-aidl}" />
|
||||
<arg value="-I${source-folder}" />
|
||||
<arg value="-o${gen-folder}" />
|
||||
<fileset dir="${source-folder}">
|
||||
<include name="**/*.aidl"/>
|
||||
</fileset>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<!-- Compile this project's .java files into .class files. -->
|
||||
<target name="compile" depends="clean, dirs, resource-src, aidl">
|
||||
<target name="compile" depends="resource-src, aidl">
|
||||
<javac encoding="ascii" target="1.5" debug="true" extdirs=""
|
||||
srcdir="."
|
||||
destdir="${outdir-classes}"
|
||||
bootclasspath="${android-jar}">
|
||||
destdir="${out-classes}"
|
||||
bootclasspathref="android.target.classpath">
|
||||
<src path="${source-folder}" />
|
||||
<src path="${gen-folder}" />
|
||||
<classpath>
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
<fileset dir="${external-libs-folder}" includes="*.jar"/>
|
||||
<pathelement path="${main-out-classes}"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="compile-release" depends="clean, dirs, resource-src, aidl">
|
||||
<javac encoding="ascii" target="1.5" debug="off" extdirs=""
|
||||
srcdir="."
|
||||
destdir="${outdir-classes}"
|
||||
bootclasspath="${android-jar}">
|
||||
<classpath>
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
</classpath>
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="optimize" depends="compile-release">
|
||||
<fail message="Please put proguard.jar in 'bin' under the WTK install directory">
|
||||
<condition>
|
||||
<not>
|
||||
<available file="${WTK-home}/bin/proguard.jar" type="file"/>
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<unzip src="../core/core.jar" dest="${outdir-classes}" overwrite="true"/>
|
||||
<jar jarfile="temp.jar" basedir="${outdir-classes}"/>
|
||||
<delete dir="${outdir-classes}"/>
|
||||
<mkdir dir="${outdir-classes}"/>
|
||||
<java jar="${WTK-home}/bin/proguard.jar" fork="true" failonerror="true">
|
||||
<jvmarg value="-Dmaximum.inlined.code.length=32"/>
|
||||
<arg value="-injars temp.jar"/>
|
||||
<arg value="-outjars temp-optimized.jar"/>
|
||||
<arg value="-libraryjars ${android-jar}"/>
|
||||
<arg value="-keepattributes Exceptions,InnerClasses,Signature,!LocalVariableTable,!LocalVariableTypeTable"/>
|
||||
<arg value="-keep class com.google.zxing.client.androidtest.*Activity"/>
|
||||
<arg value="-keep class com.google.zxing.client.androidtest.ViewfinderView { public * ; }"/>
|
||||
<arg value="-target 5"/>
|
||||
<arg value="-optimizationpasses 7"/>
|
||||
<arg value="-dontshrink"/>
|
||||
<arg value="-dontobfuscate"/>
|
||||
<arg value="-dontskipnonpubliclibraryclasses"/>
|
||||
<arg value="-verbose"/>
|
||||
<arg value="-dump proguard-dump.txt"/>
|
||||
</java>
|
||||
<delete file="temp.jar"/>
|
||||
<unzip src="temp-optimized.jar" dest="${outdir-classes}" overwrite="true"/>
|
||||
<delete file="temp-optimized.jar"/>
|
||||
</target>
|
||||
|
||||
<!-- Convert this project's .class files into .dex files. -->
|
||||
<target name="dex" depends="compile">
|
||||
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
|
||||
<echo>Converting compiled files and external libraries into ${out-folder}/${dex-file}...</echo>
|
||||
<apply executable="${dx}" failonerror="true" parallel="true">
|
||||
<arg value="-JXmx256M"/>
|
||||
<arg value="--dex" />
|
||||
<arg value="--output=${intermediate-dex-ospath}" />
|
||||
<arg path="${outdir-classes-ospath}" />
|
||||
<fileset dir="${external-libs}" includes="*.jar"/>
|
||||
<arg value="--output=${intermediate-dex-location}" />
|
||||
<arg path="${out-classes-location}" />
|
||||
<fileset dir="${external-libs-folder}" includes="*.jar"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="dex-optimized" depends="compile-release,optimize">
|
||||
<echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo>
|
||||
<apply executable="${dx}" failonerror="true" parallel="true">
|
||||
<arg value="--dex" />
|
||||
<arg value="--output=${intermediate-dex-ospath}" />
|
||||
<arg path="${outdir-classes-ospath}" />
|
||||
<!-- workaround to appease 'apply'. Not really the right Ant task to use here. -->
|
||||
<fileset dir="." includes="nosuchfile.jar"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<!-- Put the project's resources into the output package file. -->
|
||||
<target name="package-res-and-assets">
|
||||
<echo>Packaging resources and assets...</echo>
|
||||
<exec executable="${aapt}" failonerror="true">
|
||||
<arg value="package" />
|
||||
<arg value="-f" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<arg value="-A" />
|
||||
<arg value="${asset-dir}" />
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg value="-F" />
|
||||
<arg value="${resources-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Same as package-res-and-assets, but without "-A ${asset-dir}" -->
|
||||
<target name="package-res-no-assets">
|
||||
<echo>Packaging resources...</echo>
|
||||
<exec executable="${aapt}" failonerror="true">
|
||||
<arg value="package" />
|
||||
<arg value="-f" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource-dir}" />
|
||||
<!-- No assets directory -->
|
||||
<arg value="-I" />
|
||||
<arg value="${android-jar}" />
|
||||
<arg value="-F" />
|
||||
<arg value="${resources-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Invoke the proper target depending on whether or not an assets directory is present. -->
|
||||
<target name="package-res">
|
||||
<available file="${asset-dir}" type="dir"
|
||||
property="res-target" value="and-assets" />
|
||||
<property name="res-target" value="no-assets" />
|
||||
<antcall target="package-res-${res-target}" />
|
||||
<!-- Put the project's resources into the output package file
|
||||
This actually can create multiple resource package in case
|
||||
Some custom apk with specific configuration have been
|
||||
declared in default.properties.
|
||||
-->
|
||||
<target name="package-resources">
|
||||
<echo>Packaging resources</echo>
|
||||
<aaptexec executable="${aapt}"
|
||||
command="package"
|
||||
manifest="AndroidManifest.xml"
|
||||
resources="${resource-folder}"
|
||||
assets="${asset-folder}"
|
||||
androidjar="${android-jar}"
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}" />
|
||||
</target>
|
||||
|
||||
<!-- Package the application and sign it with a debug key.
|
||||
This is the default target when building. It is used for debug. -->
|
||||
<target name="debug" depends="dex, package-res">
|
||||
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-debug-package-ospath}" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
<arg value="-rj" />
|
||||
<arg value="${external-libs-ospath}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- Package the optimized application and sign it with a debug key. -->
|
||||
<target name="debug-optimized" depends="dex-optimized, package-res">
|
||||
<echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-debug-package-ospath}" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
<arg value="-rj" />
|
||||
<arg value="${external-libs-ospath}" />
|
||||
</exec>
|
||||
This is the default target when building. It is used for debug. -->
|
||||
<target name="debug" depends="dex, package-resources">
|
||||
<apkbuilder
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}"
|
||||
signed="true"
|
||||
verbose="false">
|
||||
<file path="${intermediate-dex}" />
|
||||
<sourcefolder path="${source-folder}" />
|
||||
<jarfolder path="${external-libs-folder}" />
|
||||
<nativefolder path="${native-libs-folder}" />
|
||||
</apkbuilder>
|
||||
</target>
|
||||
|
||||
<!-- Package the application without signing it.
|
||||
This allows for the application to be signed later with an official publishing key. -->
|
||||
<target name="release" depends="dex-optimized, package-res">
|
||||
<echo>Packaging ${out-unsigned-package} for release...</echo>
|
||||
<exec executable="${apk-builder}" failonerror="true">
|
||||
<arg value="${out-unsigned-package-ospath}" />
|
||||
<arg value="-u" />
|
||||
<arg value="-z" />
|
||||
<arg value="${resources-package-ospath}" />
|
||||
<arg value="-f" />
|
||||
<arg value="${intermediate-dex-ospath}" />
|
||||
<arg value="-rf" />
|
||||
<arg value="${srcdir-ospath}" />
|
||||
</exec>
|
||||
<echo>It will need to be signed with jarsigner before being published.</echo>
|
||||
This allows for the application to be signed later with an official publishing key. -->
|
||||
<target name="release" depends="dex, package-resources">
|
||||
<apkbuilder
|
||||
outfolder="${out-folder}"
|
||||
basename="${ant.project.name}"
|
||||
signed="false"
|
||||
verbose="false">
|
||||
<file path="${intermediate-dex}" />
|
||||
<sourcefolder path="${source-folder}" />
|
||||
<jarfolder path="${external-libs-folder}" />
|
||||
<nativefolder path="${native-libs-folder}" />
|
||||
</apkbuilder>
|
||||
<echo>All generated packages need to be signed with jarsigner before they are published.</echo>
|
||||
</target>
|
||||
|
||||
<!-- Install the package on the default emulator -->
|
||||
<target name="install">
|
||||
<target name="install" depends="debug">
|
||||
<echo>Installing ${out-debug-package} onto default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="install" />
|
||||
<arg value="${out-debug-package}" />
|
||||
<arg path="${out-debug-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="reinstall">
|
||||
<target name="reinstall" depends="debug">
|
||||
<echo>Installing ${out-debug-package} onto default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="install" />
|
||||
<arg value="-r" />
|
||||
<arg value="${out-debug-package}" />
|
||||
<arg path="${out-debug-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
@ -344,13 +267,28 @@ limitations under the License.
|
|||
<echo>Uninstalling ${application-package} from the default emulator...</echo>
|
||||
<exec executable="${adb}" failonerror="true">
|
||||
<arg value="uninstall" />
|
||||
<arg value="${application-package}" />
|
||||
<arg path="${application-package}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${outdir}"/>
|
||||
<delete file="proguard-dump.txt"/>
|
||||
<target name="help">
|
||||
<echo>Android Ant Build. Available targets:</echo>
|
||||
<echo> help: Displays this help.</echo>
|
||||
<echo> debug: Builds the application and sign it with a debug key.</echo>
|
||||
<echo> release: Builds the application. The generated apk file must be</echo>
|
||||
<echo> signed before it is published.</echo>
|
||||
<echo> install: Installs the debug package onto a running emulator or</echo>
|
||||
<echo> device. This can only be used if the application has </echo>
|
||||
<echo> not yet been installed.</echo>
|
||||
<echo> reinstall: Installs the debug package on a running emulator or</echo>
|
||||
<echo> device that already has the application.</echo>
|
||||
<echo> The signatures must match.</echo>
|
||||
<echo> uninstall: uninstall the application from a running emulator or</echo>
|
||||
<echo> device.</echo>
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${out-folder}"/>
|
||||
<delete dir="${gen-folder}"/>
|
||||
</target>
|
||||
</project>
|
||||
|
|
11
androidtest/default.properties
Normal file
11
androidtest/default.properties
Normal file
|
@ -0,0 +1,11 @@
|
|||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system use,
|
||||
# "build.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=Google Inc.:Google APIs:3
|
|
@ -110,7 +110,7 @@ final class CameraManager {
|
|||
if (mCamera != null && mPreviewing) {
|
||||
mPreviewHandler = handler;
|
||||
mPreviewMessage = message;
|
||||
mCamera.setPreviewCallback(previewCallback);
|
||||
mCamera.setOneShotPreviewCallback(previewCallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -147,7 +147,6 @@ final class CameraManager {
|
|||
*/
|
||||
private final Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
|
||||
public void onPreviewFrame(byte[] data, Camera camera) {
|
||||
camera.setPreviewCallback(null);
|
||||
if (mPreviewHandler != null) {
|
||||
Message message = mPreviewHandler.obtainMessage(mPreviewMessage,
|
||||
mScreenResolution.x, mScreenResolution.y, data);
|
||||
|
|
Loading…
Reference in a new issue