]> git.saurik.com Git - android/aapt.git/commitdiff
add "junk path" -k option to aapt
authorDoug Zongker <dougz@android.com>
Fri, 9 Oct 2009 18:24:51 +0000 (11:24 -0700)
committerDoug Zongker <dougz@android.com>
Tue, 13 Oct 2009 20:33:31 +0000 (13:33 -0700)
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.

Bundle.h
Command.cpp
Main.cpp

index 234e5b23d7b614ddd066966f4ab54dd22b7c6e41..1ac13f216f6d826856a63119d003cac253a842ff 100644 (file)
--- a/Bundle.h
+++ b/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;
index 47423418e8b2ba5b7e80fb795353a95540f37191..1a536d6a80853aa5315ec4baedf3a3faa96724ec 100644 (file)
@@ -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);
index e61010cd695f78a86df6fc6fa63efad591f0e536..98286c02d7e7c59274cd76b423bdc5dff790f1a2 100644 (file)
--- a/Main.cpp
+++ b/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;