2016-05-11 16 views
5

私はAndroid Libraryプロジェクトで作業しており、Picassoをライブラリに追加したいと考えています。 私は別のライブラリがこれを行うために異なるアプローチを使用することに気付きました:第三者のライブラリ依存関係をAndroidライブラリに追加する

  • いくつかのライブラリはいくつかのライブラリのような(通常のダイナミックのGradleまたはPOMの依存関係を使用(Glide libでgif_encoderとgif_decoder図書館のような)静的ライブラリの依存関係
  • を使用PicassoはOKHttpを使用するか、WireはRetrofitとRxJavaを使用します)。私はいくつかのライブラリは、だから、(のようなRxAndroidがRxJavaを使用しています)ターゲットライブラリと一緒にいくつかのlibに

を明示的な依存関係を追加する必要が+記号(のような2.3.3+)でマークされ、ここでダイナミックなバージョン

  • を意味するものではありません。質問:Androidライブラリプロジェクトに第三者のライブラリを追加する最良の方法は何ですか?私は、エンドユーザーのライブラリ統合プロセスを簡素化し、バージョンの競合やその他の潜在的な問題を回避する方法を意味します。 特定のアプローチのメリットとデメリットは何ですか?

  • +0

    を私の視点から。これを行うことによって、目的を達成するために使用しているものをエンドユーザーに透明にします。ユーザーが依存関係を一緒にインポートするようにすると、ライブラリをインポートするプロセスや、ユーザーがインポートしない場合のエラーにも複雑さが加わります。しかし、ユーザーがモジュールが使用するライブラリの別のバージョンを使用している場合、その2つのモジュール間で競合が発生する可能性があるため、ユーザーはそれらをgradleファイルで解決する必要があります。 –

    答えて

    2

    ほとんどの場合、実際には選択肢がありません。ライブラリインストールの推奨事項に従わなければなりません。

    すべてのオプションが利用可能な場合は、GradleまたはMavenを使用する方がはるかに簡単だと思うのは、通常、設定ファイルに新しいライブラリを設定するために1行追加することだけです。

    アップデートが利用可能になったら、バージョンを変更すると、自動的にライブラリがダウンロードされ、アップデートされます。

    静的ライブラリを使用する必要がある場合は、すべてを自分でセットアップし、外部ライブラリをプロジェクトにリンクする必要があります。今では、静的ライブラリだけを保存しておきます。

    私はAndroidスタジオに移行して以来、Gradleは私に多くの時間を救ってくれました(以前はEclipse ADTを使用していましたが、Gradleを統合することはできませんでした)。

    また、直接使用してのGradleに外部jarファイルをコンパイルすることができます:ライブラリモジュールのGradleに依存関係を追加することが最善のアプローチである、

    compile fileTree(dir: 'libs', include: ['*.jar']) 
    
    関連する問題