Androidアプリの標準ビルドシステムとしてGradleを新たに採用した記事をいくつか読んでいます。まあ、標準的なJava開発から来ているので、プロジェクトをビルドするためにjarファイルに依存しています。ただし、Androidにはaarパッケージもあるようです。これは、ここで説明するように、Windows OSのdllファイルに相当します。
まず、Androidプラットフォームはアプリケーションレベルの「共有ライブラリ」を許可しないことを理解する必要があります。「従来の」プログラミング言語プラットフォームであるC、C ++、Javaに名前を付けると、ランタイムライブラリを共有するこのメカニズムがあります。(たとえば、WindowsのDLL、UnixのDSO、JVMのJARなど)。ただし、Googleまたは携帯電話メーカーでない限り、Androidではこれを行うことはできません(下の脚注1を参照)。アプリケーション開発者にとって、これは基本的な制限となる可能性があります。ビルド時と実行時の両方での「共有」または「再利用」コードは、ソフトウェアエンジニアリング業務の非常に重要な部分です。前述の制限があるため、Androidではこれはかなり困難です(不可能ではなく、さらに困難です)。
しかし、私はこの概念についていくつかの疑問を持っています。つまり、アプリケーションにaar依存関係を含めることに開発者はいつ関心を持つべきですか?この依存関係は、いくつかのSDK最小バージョンに強化されていますか?
たとえば、あるプロジェクトでCOMポートにアクセスします。このポートには、NDKのプリコンパイルされた .soライブラリを使用します。このユーティリティを共有する場合、aarを作成する必要がありますか?