// for reuse by other targets (signing/zipaligning)
Path path = new Path(antProject);
+ // The createApk method uses mBaseName for the base name of the packages (resources
+ // and apk files).
+ // The generated apk file name is
+ // debug: {base}[-{config}]-debug-unaligned.apk
+ // release: {base}[-{config}]-unsigned.apk
+ // Unfortunately for 1.5 projects and before the 'install' ant target expects the name
+ // of the default debug package to be {base}-debug.apk
+ // In order to support those package, we look for the 'out-debug-unaligned-package'
+ // property. If this exist, then we generate {base}[-{config}]-debug-unaligned.apk
+ // otherwise we generate {base}[-{config}]-debug.apk
+ // FIXME: Make apkbuilder export the package name used instead of
+ // having to keep apkbuilder and the rules file in sync
+ String debugPackageSuffix = "-debug-unaligned.apk";
+ if (antProject.getProperty("out-debug-unaligned-package") == null) {
+ debugPackageSuffix = "-debug.apk";
+ }
+
// first do a full resource package
- createApk(apkBuilder, null /*configName*/, null /*resourceFilter*/, path);
+ createApk(apkBuilder, null /*configName*/, null /*resourceFilter*/, path,
+ debugPackageSuffix);
// now see if we need to create file with filtered resources.
// Get the project base directory.
if (apkConfigs.size() > 0) {
Set<Entry<String, String>> entrySet = apkConfigs.entrySet();
for (Entry<String, String> entry : entrySet) {
- createApk(apkBuilder, entry.getKey(), entry.getValue(), path);
+ createApk(apkBuilder, entry.getKey(), entry.getValue(), path,
+ debugPackageSuffix);
}
}
* @param resourceFilter the resource configuration filter to pass to aapt (if configName is
* non null)
* @param path Ant {@link Path} to which add the generated APKs as {@link PathElement}
+ * @param debugPackageSuffix suffix for the debug packages.
* @throws FileNotFoundException
* @throws ApkCreationException
*/
private void createApk(ApkBuilderImpl apkBuilder, String configName, String resourceFilter,
- Path path)
+ Path path, String debugPackageSuffix)
throws FileNotFoundException, ApkCreationException {
// All the files to be included in the archive have already been prep'ed up, except
// the resource package.
}
if (mSigned) {
- filename = filename + "-debug-unaligned.apk";
+ filename = filename + debugPackageSuffix;
} else {
filename = filename + "-unsigned.apk";
}
<echo>Installing ${out-debug-package} onto default emulator...</echo>
<exec executable="${adb}" failonerror="true">
<arg value="install" />
- <arg path="${out-debug-package}" />
- </exec>
- </target>
-
- <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 path="${out-debug-package}" />
</exec>
<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> install: Installs/reinstall the debug package onto a running</echo>
+ <echo> emulator or device.</echo>
+ <echo> If the application was previously installed, the</echo>
+ <echo> signatures must match.</echo>
<echo> uninstall: uninstall the application from a running emulator or</echo>
<echo> device.</echo>
</target>