diff options
| author | 2009-10-19 17:04:21 -0700 | |
|---|---|---|
| committer | 2009-10-19 17:04:21 -0700 | |
| commit | 37c4157d7cdad71dc9abc93d652e81c33e346d93 (patch) | |
| tree | 8fbf09577c3882912db555221fc032e73b2e2e43 | |
| parent | 62df88bcc95a714c1d5035471dfe7fe0ddd9d50b (diff) | |
add "junk path" -k option to aapt (DO NOT MERGE)
Adds a "junk path" option to aapt so that you can do:
aapt add -k archive.zip path/to/some.file
and have the file stored in the zip under the name "some.file"
(without the path). Needed so that we can use 'aapt add' in place of
'zip -j' when building jar files, which will lead to smaller
incremental OTAs.
(This is a cherry-pick of a change already submitted to eclair-mr2;
the change was approved for mr1.)
| -rw-r--r-- | tools/aapt/Bundle.h | 13 | ||||
| -rw-r--r-- | tools/aapt/Command.cpp | 13 | ||||
| -rw-r--r-- | tools/aapt/Main.cpp | 4 |
3 files changed, 22 insertions, 8 deletions
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h index 234e5b23d7b6..1ac13f216f6d 100644 --- a/tools/aapt/Bundle.h +++ b/tools/aapt/Bundle.h @@ -80,11 +80,13 @@ public: void setValues(bool val) { mValues = val; } int getCompressionMethod(void) const { return mCompressionMethod; } void setCompressionMethod(int val) { mCompressionMethod = val; } + bool getJunkPath(void) const { return mJunkPath; } + void setJunkPath(bool val) { mJunkPath = val; } const char* getOutputAPKFile() const { return mOutputAPKFile; } void setOutputAPKFile(const char* val) { mOutputAPKFile = val; } - /* - * Input options. + /* + * Input options. */ const char* getAssetSourceDir() const { return mAssetSourceDir; } void setAssetSourceDir(const char* dir) { mAssetSourceDir = dir; } @@ -119,7 +121,7 @@ public: void setVersionCode(const char* val) { mVersionCode = val; } const char* getVersionName() const { return mVersionName; } void setVersionName(const char* val) { mVersionName = val; } - + /* * Set and get the file specification. * @@ -161,6 +163,7 @@ private: bool mPseudolocalize; bool mValues; int mCompressionMethod; + bool mJunkPath; const char* mOutputAPKFile; const char* mAssetSourceDir; const char* mProguardFile; @@ -173,13 +176,13 @@ private: android::Vector<const char*> mJarFiles; android::Vector<const char*> mNoCompressExtensions; android::Vector<const char*> mResourceSourceDirs; - + const char* mMinSdkVersion; const char* mTargetSdkVersion; const char* mMaxSdkVersion; const char* mVersionCode; const char* mVersionName; - + /* file specification */ int mArgc; char* const* mArgv; diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp index 47423418e8b2..1a536d6a8085 100644 --- a/tools/aapt/Command.cpp +++ b/tools/aapt/Command.cpp @@ -848,7 +848,7 @@ int doDump(Bundle* bundle) printf("uses-feature:'android.hardware.camera'\n"); printf("uses-feature:'android.hardware.camera.autofocus'\n"); } - + if (hasMainActivity) { printf("main\n"); } @@ -997,8 +997,15 @@ int doAdd(Bundle* bundle) printf(" '%s'... (from gzip)\n", fileName); result = zip->addGzip(fileName, String8(fileName).getBasePath().string(), NULL); } else { - printf(" '%s'...\n", fileName); - result = zip->add(fileName, bundle->getCompressionMethod(), NULL); + if (bundle->getJunkPath()) { + String8 storageName = String8(fileName).getPathLeaf(); + printf(" '%s' as '%s'...\n", fileName, storageName.string()); + result = zip->add(fileName, storageName.string(), + bundle->getCompressionMethod(), NULL); + } else { + printf(" '%s'...\n", fileName); + result = zip->add(fileName, bundle->getCompressionMethod(), NULL); + } } if (result != NO_ERROR) { fprintf(stderr, "Unable to add '%s' to '%s'", bundle->getFileSpecEntry(i), zipFileName); diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp index e61010cd695f..98286c02d7e7 100644 --- a/tools/aapt/Main.cpp +++ b/tools/aapt/Main.cpp @@ -99,6 +99,7 @@ void usage(void) " -f force overwrite of existing files\n" " -g specify a pixel tolerance to force images to grayscale, default 0\n" " -j specify a jar or zip file containing classes to include\n" + " -k junk path of file(s) added\n" " -m make package directories under location specified by -J\n" #if 0 " -p pseudolocalize the default configuration\n" @@ -236,6 +237,9 @@ int main(int argc, char* const argv[]) bundle.setGrayscaleTolerance(tolerance); printf("%s: Images with deviation <= %d will be forced to grayscale.\n", prog, tolerance); break; + case 'k': + bundle.setJunkPath(true); + break; case 'm': bundle.setMakePackageDirs(true); break; |