【Android】AARファイルの生成と利用


序文

現在、アプリ開発のモジュール化テクノロジは標準であり、開発者が使用できるように多くの機能モジュールが抽出されています。開発者が使用できるように、これらのモジュールは Java のライブラリと同様にパッケージ化されます。JavaではモジュールをJarパッケージとしてパッケージ化できますが、AndroidではJavaファイルだけでなく他のリソースファイルも存在するため、AARファイル(パッケージ化形式)が表示されます。ライブラリ ファイルをパッケージ化して AAR を生成します。


1.AARとは何ですか?

aar は圧縮形式 (パッケージ化されたライブラリ) であり、Android の Jar パッケージに相当しますが、レイアウト、ドローアブル、その他の解像度リソースなど、Android に関連するいくつかのリソースを含めることができます。

2. ステップを使用する

2 つの部分の生成と使用を含め、特に言うことはありません。始めましょう。

1.生成AAR

まず、Android プロジェクトを作成し、その中に新しいライブラリを作成します。ここではデフォルトの名前を使用します。

ここに画像の説明を挿入
このようなライブラリが生成されるので、今日の目標は、このライブラリにいくつかの機能を実装し、それを AAR ファイルにパッケージ化し、他のプロジェクトに提供できるようにすることです。
ここに画像の説明を挿入
このライブラリでは、DoSomething というクラスを作成し、その中に printSomething メソッドが含まれています。ここで使用する言語は Kotlin です。

package com.example.mylibrary

class DoSomething {
    
    
    public fun printSomething(){
    
    
        println("你好,你想要输出一些东西!")
    }
}

準備作業がすべて完了したので、荷造りを始めましょう。次のコードを現在のライブラリ ディレクトリのbuild.gradle ファイルに直接追加しましたもちろん、***.gradle ファイルを自分で再作成し、build.gradle で呼び出して ({'***.gradle'} を適用)、次のコードを追加することもできます。

apply plugin: 'maven-publish'
afterEvaluate {
    
    
    publishing {
    
    
        publications {
    
    
            debug(MavenPublication) {
    
    
                // Applies the component for the debug build variant.
                from components.debug
                groupId = 'com.gloomy'
                artifactId = 'myLibrary'
                version = '1.0.0'
            }
        }
        publishing {
    
    
            repositories {
    
    
                maven {
    
    
                    // change to point to your repo, e.g. http://my.org/repo
                    url = "file:///Users\\******\\Desktop\\AndroidStudy\\AAR"
                }
            }
        }
    }
}

上記のコードでは、maven-publishプラグインが使用されています。以前、インターネット上にMavenプラグインがたくさんあるのを見ましたが、AS の新しいバージョンでは使用できなくなりました。皆さんも注意してください。maven-publish のその他の使用法については、公式 Web サイト (https://developer.android.com/studio/build/maven-publish-plugin?hl=zh-cn#kts) にアクセスして確認してください。このうち、debug はリリース チャネルを意味し、任意の名前を選択できます。このクロージャ内の groupId、artifactId、version はそれぞれ会社のドメイン名、プロジェクト名、プロジェクトのバージョン番号を表します。生成された aar 名のこれらにそれぞれ対応します。
ここに画像の説明を挿入
次に、下に進み、リポジトリ クロージャが AAR ファイルを出力する場所を書き込みます。ここでは、最初に AAR ファイルをローカルに生成します。同期後、右側の Gradle フォルダーをクリックし、[公開] をダブルクリックして AAR ファイルの生成を開始します。

ここに画像の説明を挿入
Tasks ファイルがない場合は、[設定] に移動して Gradle を設定し、このチェックマークを削除する必要があります。
ここに画像の説明を挿入
最後に、指定したパスにパッケージ化した AAR ファイルが表示されます。リモート コード ウェアハウスにパッケージ化する必要がある場合は、git を使用してローカルで生成された AAR をプッシュするか、ファイルの出力場所を設定できます。リモート コード リポジトリの場所に直接設定します。

2.AARの利用

次に、AAR ファイルを他のプロジェクトで使用する方法を紹介します。AAR を使用するにはいくつかの方法があります。ここでは、より柔軟な方法を紹介します。まず、ルート ディレクトリの build.gradle に次のコードを追加します。ここでの URL は、ローカル コード ウェアハウスかリモート コード ウェアハウスかに関係なく、AAR ファイルを保存する場所です。

buildscript {
    
    
    repositories {
    
    
        google()
        mavenCentral()
        maven {
    
    url "file:///Users\\*****\\Desktop\\AndroidStudy\\AAR"}
    }
}

allprojects {
    
    
    repositories {
    
    
        google()
        mavenCentral()
        maven {
    
    url "file://Users\\*****\\Desktop\\AndroidStudy\\AAR"}
    }
}

この時点で同期が失敗した場合は、settings.gradle ファイルを調べて、両側のコード ウェアハウス設定が一貫していることを確認するように注意してください。さらに、repositoriesMode を RepositoriesMode.PREFER_SETTINGS に設定する必要があります (新しいバージョンのみのようです) AS にはこれらの問題がありますが、古いバージョンにはありません)。
この時点で、アプリ モジュールの build.gradle に移動して依存関係を宣言できます。ここで、依存関係名が以前に設定した groupId、artifactId、および version で構成されていることがわかります。以前のライブラリを変更する場合は、あなただけがパッケージ化されたバージョン番号を変更してから、ここで変更する必要があります。これは非常に便利です。

implementation 'com.gloomy:myLibrary:1.0.0'

依存関係を宣言した後、MainActivity に移動して次のコードを追加し、実行します。

class MainActivity : AppCompatActivity() {
    
    
    override fun onCreate(savedInstanceState: Bundle?) {
    
    
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val d = DoSomething()
        d.printSomething()
    }
}

最後に、関数呼び出しが成功したことが Logcat で確認できます。
ここに画像の説明を挿入


要約する

上記は、AAR ファイルをパッケージ化するプロセスとそれを使用するプロセスです。ここに記録して、皆さんが交換して一緒に学習することを歓迎します。

おすすめ

転載: blog.csdn.net/qq_42788340/article/details/125190519