2011-07-24 27 views
9

Bir Android oluşturma sistemi için bazı Ant betikleri üzerinde çalışıyorum ve aapt çağırmak için bir öğeye rastladım. BenAnt komut dosyasında aapt öğesi için belgeler

<aapt executable="${aapt}" 
      command="package" 
      debug="${build.packaging.debug}" 
      manifest="AndroidManifest.xml" 
      assets="${asset.absolute.dir}" 
      androidjar="${android.jar}" 
      apkfolder="${out.absolute.dir}" 
      resourcefilename="${resource.package.file.name}" 
      resourcefilter="${aapt.resource.filter}"> 
     <res path="${resource.absolute.dir}" /> 
     <!-- <nocompress /> forces no compression on any files in assets or res/raw --> 
     <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw --> 
    </aapt> 

isterim farklı bir format kullanmak

exec çalıştırılabilir = "$ {aapt}"

ama main_rules.xml dosyasının çıkıp olanlarla çokça örnek gördük Bu öğeyi kullanarak paketi yeniden adlandırmak, ancak nasıl kullanılacağı hakkında herhangi bir belge bulamıyor. Nerede bulabileceğimi bilen var mı?

Teşekkür

cevap

1
ederim kaynak kodu ötesinde herhangi bir kayıt varsa şüphe

.

+3

. .. örneğin burada bulunabilir: http://www.netmite.com/android/mydroid/1.5/development/tools/anttasks/src/com/android/ant/AaptExecLoopTask.java –

7

bir şey bulur ve Android SDK yeni (er) versiyonunda

<exec executable="${aapt}" failonerror="true"> 
     <arg value="package" /> 
     <arg value="-f" /> 
     <arg value="-v" /> 
     <arg value="-M" /> 
     <arg path="AndroidManifest.xml" /> 
     <arg value="-A" /> 
     <arg path="assets" /> 
     <arg value="-I" /> 
     <arg path="${android.jar}" /> 
     <arg value="-m" /> 
     <arg value="-J" /> 
     <arg path="${out.absolute.dir}" /> 
     <arg value="-F" /> 
     <arg path="${out.absolute.dir}/${resource.package.file.name}" /> 
     <arg value="-S" /> 
     <arg path="res" /> 
     <arg value="--rename-manifest-package" /> 
     <arg value="my.new.package.name" /> 
    </exec> 
7

iş gibi görünüyor aşağıdaki kullanarak sona erdi olamazdı ant inşa komut farklı bir şekilde çalışır. aapt komutunu bir exec10 öğesi aracılığıyla doğrudan çağırmaz, daha ziyade bir aapt görevini tanımlar. İkincisi, java sınıfı com.android.ant.AaptExecTask tarafından uygulanır. Bu sınıf, yalnızca aapt komut satırı seçeneklerinin bir alt kümesini sağlar. kaynak java doc bulunduğu haliyle

Sen aapt komut satırı seçenekleri ve aşağıdaki karınca parametreler arasında haritalama kısa bir açıklamasını bulabilirsiniz: Bildiğim kadarıyla öğrendim olarak

Aapt Option    Ant Name  Type 
--------------------------------------------------------------------------------- 
path to aapt   executable  attribute (Path) 
command     command   attribute (String) 
-v      verbose   attribute (boolean) 
-f      force   attribute (boolean) 
-M AndroidManifest.xml manifest  attribute (Path) 
-I base-package   androidjar  attribute (Path) 
-A asset-source-dir  assets   attribute (Path 
-S resource-sources  <res path=""> nested element(s) 
             with attribute (Path) 
-0 extension   <nocompress extension=""> nested element(s) 
         <nocompress>    with attribute (String) 
-F apk-file    apkfolder     attribute (Path) 
         outfolder     attribute (Path) deprecated 
         apkbasename    attribute (String) 
         basename     attribute (String) deprecated 

-J R-file-dir  rfolder   attribute (Path) 
            -m always enabled 

, hiçbir şekilde orada Bu yeni yapı göreviyle genel aapt seçeneklerini sunmak. Bu, yalnızca SDK'nın build.xml 'un değiştirilmiş bir kopyasının, aapt çağırmalarının yerini alacak şekilde değiştirilmesiyle mümkün görünüyor. Herkes daha iyi bir çözüm bilen varsa

, ben de ;-)

DÜZENLEME hakkında okumak memnun olurum: tanıtıldı adlandırma paketleri tekrar SDK bile daha yeni sürümlerinde:

Aapt Option --rename-manifest-package package-name 
Ant Name  manifestpackage 
Type   attribute (String) 
+0

Öznitelik adını bulmak - uzun süre için adren-manifest-paket seçeneği. Bu benim için çok faydalı. – lishali