Přeskočit na obsah

Převod souboru JAR do AAR

Zabalte Java knihovnu do Android archivu a zkontrolujte její závislosti a kompatibilitu.

Převádějte soubory JAR online

Pro převod JAR do AAR zatím vlastní online konvertor nemáme, ale soubory JAR můžete online převést do těchto formátů:

Jak převést soubor jar do formátu aar

Projekt Android může vyžadovat AAR, pokud je dodaná knihovna distribuována jako JAR, ale zároveň potřebuje prostředky Androidu, položky manifestu nebo metadata knihovny. Konverze zabalí existující třídy JVM do kontejneru knihovny Android; automaticky však nepřevede desktopový kód Java na kód kompatibilní s Androidem.

Co je formát JAR

JAR (Java ARchive) je balíček založený na formátu ZIP, který obsahuje soubory JVM .class, prostředky, metadata a volitelně manifest identifikující spustitelnou hlavní třídu. Knihovny Java a Kotlin, desktopové aplikace, Maven, Gradle, IntelliJ IDEA a Android Studio běžně používají soubory JAR.

JAR lze v projektu Android použít přímo, pokud jsou jeho bytecode a závislosti kompatibilní s Androidem. Sám o sobě neposkytuje prostředky Androidu, manifest knihovny Android, pravidla R8 pro konzumenta, nativní knihovny ani metadata balení specifická pro Android.

Co je formát AAR

AAR (Android ARchive) je archivní formát knihoven pluginu Android Gradle Plugin. Jde také o soubor ZIP, který běžně obsahuje classes.jar a AndroidManifest.xml, s volitelnými položkami res/, assets/, jni/, prefab/, lint.jar, proguard.txt a soubory symbolů prostředků.

AAR může jako jeden artefakt knihovny Android poskytovat prostředky Androidu, deklarace manifestu, nativní knihovny, pravidla zmenšování pro konzumenta a zkompilovaný kód knihovny. Gradle tyto komponenty sloučí do aplikace. Archiv automaticky neobsahuje externí závislosti Maven; ty se obvykle deklarují v metadatech publikace nebo dodávají samostatně.

Jak zabalit JAR jako AAR

Nejprve zkontrolujte JAR

Před zabalením vypište jeho obsah pomocí nástroje JDK:

jar tf vendor.jar

Ověřte, že obsahuje třídy knihovny, nikoli desktopovou aplikaci, a zkontrolujte úroveň jejího Java bytecode. Kompilátor D8 pro Android dokáže zpracovat podporovaný Java bytecode, ale třídy, které volají API určená pouze pro desktop, například AWT, Swing nebo nedostupné moduly JDK, se samotným zabalením nestanou použitelnými v Androidu.

Minimální wrapper pro čistě Java knihovnu

U JAR, který nepotřebuje zdrojový kód Androidu, prostředky ani další deklarace manifestu, vytvořte adresář AAR obsahující JAR pod požadovaným názvem classes.jar a manifest:

mkdir aar-temp
cp vendor.jar aar-temp/classes.jar
printf '%s\n' '<manifest xmlns:android="http://schemas.android.com/apk/res/android" />' > aar-temp/AndroidManifest.xml
(cd aar-temp && zip -r ../vendor.aar classes.jar AndroidManifest.xml)

V systému Windows mohou archiv ZIP vytvořit JDK jar nebo 7-Zip: přidejte classes.jar a AndroidManifest.xml do kořene archivu a uložte jej jako vendor.aar. Nevkládejte je do dalšího adresáře.

Jedná se o operaci zabalení, nikoli o kompilaci nebo konverzi závislostí. Pokud JAR potřebuje také prostředky Androidu, přidejte je do kořene AAR pod res/; prostředky aplikace přidejte pod assets/ a požadované deklarace do AndroidManifest.xml.

Použití modulu knihovny Android pro doplňky Androidu

  1. V Android Studio zvolte File → New → New Module → Android Library a vyberte vhodné minimální SDK.
  2. Vložte zdrojový kód Androidu, prostředky, assets a deklarace manifestu do adresářů modulu src/main.
  3. Přidejte původní JAR jako závislost při kompilaci, pokud jej kód modulu používá:
dependencies {
    implementation files('libs/vendor.jar')
}

Pro Kotlin DSL použijte implementation(files("libs/vendor.jar")). Sestavení modulu pomocí ./gradlew :mylibrary:assembleRelease vytvoří AAR na cestě, jako je mylibrary/build/outputs/aar/mylibrary-release.aar.

Standardní sestavení knihovny Android obecně nevkládá lokální závislost JAR do výsledného AAR. Závislost zůstává samostatná, takže konzument může potřebovat původní JAR. Chcete-li distribuovat jeden archiv, použijte minimální wrapper, pokud není potřeba další zkompilovaný kód Androidu, sloučte JAR do classes.jar pomocí vlastní úlohy balení nebo použijte udržovaný plugin Gradle pro fat-AAR po ověření jeho kompatibility s verzí Android Gradle Plugin v projektu. Řešení fat-AAR může vytvářet duplicitní třídy a konflikty závislostí.

Kontroly kompatibility a kvality

Přejmenování vendor.jar na vendor.aar je neplatné, protože AAR očekává zkompilovanou knihovnu pod názvem classes.jar a manifest Androidu. Archiv zkontrolujte pomocí unzip -l vendor.aar nebo 7-Zip.

Sladěte úroveň bytecode knihovny s nastavením kompatibility Java a Kotlin v sestavení Androidu. Zkontrolujte její tranzitivní závislosti, požadovaná oprávnění nebo komponenty manifestu, nativní knihovny, odkazy na prostředky a pravidla R8 pro konzumenta; ruční wrapper nedokáže vygenerovat chybějící informace.

Otestujte AAR v samostatné aplikaci Android s kompatibilními verzemi Android Gradle Plugin, compile SDK a minimálního SDK. Pokud knihovna obsahuje pouze třídy Java kompatibilní s Androidem a žádný obsah specifický pro Android, může být distribuce původního JAR jednodušší než vytváření AAR.

Online a desktopové nástroje

Neexistuje spolehlivý univerzální online převodník JAR na AAR, protože správný výsledek závisí na prostředcích Androidu, deklaracích manifestu, závislostech a kompatibilitě bytecode. Vyhněte se nahrávání proprietárních knihoven do webových služeb pro archivaci. Pro sestavení modulů použijte Android Studio s Android Gradle Plugin a pro transparentní lokální zabalení archivů příkaz jar z JDK nebo 7-Zip.

Stručně řečeno, nelze přímo jednoduchým způsobem zkonvertovat soubor JAR do AAR souboru.
Proto pravděpodobně nenaleznete konverzní utilitu nebo zdarma online stránky/službu, která umí převést soubory .jar na .aar. Určitě lze nalézt webovou službu, která tuto konverzi slibuje online a zadarmo, ale pravděpodobně je to podvodná stránka slibující něco, co jednoduše nelze.

JAR vs AAR: srovnání formátů

Jak si formáty JAR a AAR stojí v nejdůležitějších vlastnostech pro tento převod.

Srovnání souborových formátů JAR a AAR
Vlastnost .JAR Java Archive .AAR Android Archive
Otevřený standard Ano Částečně otevřený
Komprese Obojí Bezeztrátový
Typická velikost souboru Střední Malé
Otevírá se ve webovém prohlížeči Ne Ne
Další úpravy Omezeně Omezeně
Podpora metadat Základní Základní
Čitelný jako prostý text Ne Ne
Nejvhodnější pro Vkládání do aplikací Vkládání do aplikací
Zavedeno 1996 2008
Vývojář Oracle (originally Sun Microsystems) Google
MIME typ application/java-archive application/java-archive

Informace o příponách a typech souborů poskytuje File-Extensions.org

Podobné .jar konverze

Reverzní konverze

Konverze do .aar
z jiných formátů

Sdílejte na sociálních sítích:

Soubor už byl stažen

Tento soubor už byl stažen. Kvůli ochraně soukromí jsme ho hned po stažení smazali ze serveru, takže ho nejde stáhnout znovu. Pokud ho potřebujete ještě jednou, převeďte soubor znovu.