ADT 17以降、Android以外のライブラリは、プロジェクトの「libs」フォルダーに含めるか、ビルドパスの「OrderandExport」タブからエクスポートする必要があります。ライブラリを外部にインポートする場合の違いは何ですか(ある場合):
そして内部的に:
「Androidの依存関係」グループに含まれる方法でライブラリをインポートすることには利点がありますか?
Androidプロジェクトのビルドパスに外部のjar依存関係を(内部または外部で)どのように追加しても、実際のビルドプロセス(より具体的にはコンパイルおよびdexステップ)に違いはありません。ビルドプロセスに必要なものを探す場所を指示するだけです。コンパイルおよびdexステップでのjar。
ウィンドウに表示されるAndroid Dependencies
要素Java Build Path - Libraries
は、ADTプラグインがjarの依存関係を管理/グループ化するために使用したもう1つの抽象レイヤーです。そのウィンドウの外部jarファイル(この場合はandroid-support-v4.jar)が(内部または外部にAndroid Dependencies
)表示される場所に違いはありません。
r17以降、依存関係の管理が大幅に改善されました。libs/ディレクトリを使用してすべてのjar依存関係を保存することをお勧めします(内部的な方法を参照)。これは自動化アプローチと見なされます(ADTプラグインがよりスマートになるため)。リビジョンを参照してください。 ADT 17.0.0の場合:
新しいビルド機能
- JARの依存関係を自動的に設定する機能が追加されました。/ libsフォルダー内の.jarファイルはすべてビルド構成に追加されます(Antビルドシステムの動作と同様)。また、ライブラリプロジェクトに必要な.jarファイルも、それらのライブラリプロジェクトに依存するプロジェクトに自動的に追加されます。(より詳しい情報)
ただし、必要に応じて古い方法(外部の方法を参照)を使用することもできます。これは手動のアプローチと見なされます(ADTプラグインは以前は愚かだったため)。r17リリースの最近の変更を参照してください。
重要:jarライブラリをlibs /の下に置くのではなく、手動で参照している場合は、次の点に注意してください。
プロジェクトがライブラリプロジェクトの場合、これらのjarライブラリはアプリケーションプロジェクトに自動的に表示されません。これらを実際にlibs/に移動する必要があります
プロジェクトがアプリケーションの場合、これは機能しますが、jarファイルをエクスポート済みとしてマークする必要があります。
依存関係管理の観点からの自動化と手動の比較では、コンピューターサイエンスの世界では、自動化は常に手動よりもエラーが少ないと見なされています。
ナンバーワンのショーストップ、「彼らがこれをテストしなかったとは信じられない」、libsディレクトリに外部jarを配置することの欠点は、オプションが「なし」と表示されるように、それらのjavadocsの場所を設定できないことです。 (変更不可)'。
したがって、ビルドプロパティで引き続きエクスポートオプションを使用します
それはAndroidのライブラリ依存関係管理と関係があります。詳細については、http://tools.android.com/recent/dealingwithdependenciesinandroidprojectsを参照してください。
内部リソースはワークベンチ内のプロジェクトに存在するため、ワークベンチによって管理されます。他のリソースと同様に、これらのリソースはワークベンチでバージョン管理できます。外部リソースはワークベンチの一部ではなく、参照によってのみ使用できます。たとえば、JREは外部にあり、非常に大きいことが多く、VCMシステムに関連付ける必要はありません。
したがって、非常に簡単に言えば、JARをプロジェクトの一部として管理し、SCMなどに公開する場合は、内部リソースとして扱い、それ以外の場合は外部リソースとして扱います。最終的に作成されるAPKには何の違いもありません。それは、単なる日食です。
ライブラリを使用するたびにコピーを作成することを避けたい場合は、それを外部リソースとして扱います。しかし、 mavenとandroid mavenプラグインを調べることをお勧めします。mavenには少し学習曲線があります(特に、「作成」または「ant」スタイルのビルドスクリプトに慣れている場合)が、努力する価値は非常にあります。 。