6

Androidプロジェクトを整理するための最良の方法(またはベストプラクティス)を理解するために少し助けが必要です。簡単にするために、Android用のEclipseワークスペースがであるとしましょうC:\Android\Projects\。そのフォルダー内で、アプリケーションをライブラリから分離するのが好きで、他に2つのフォルダーがC:\Android\Projects\ApplicationsありC:\Android\Projects\Componentsます。

1つのプロジェクトについて、GitHubからComponentsフォルダーにライブラリのクローンを作成しました。たとえば、 C:\Android\Projects\Componentes\SampleLib(そのフォルダー内に2つのフォルダーTheLibTheLibExample)があります。そして、私のアプリはに作成されC:\Android\Projects\Applications\MyTestAppます。次に、次の手順に従ってライブラリをアプリに含めました。

ここで、GitHubを使用してアプリをオープンソースコミュニティと共有したいとします。リポジトリを作成し、すべてをリポジトリにプッシュしC:\Android\Projects\Applications\MyTestAppます。

誰かが私のアプリをフォークしたり、私を助けたりしたい場合は、それをコンパイルして実行するためのライブラリが必要になりますが、これは私のプロジェクト自体には含まれていません。ファイルには次のdefault.propertiesようなものがandroid.library.reference.1=../Components/SampleLib/TheLibあり、誰かがそのライブラリも手動で複製する必要があり、同じ相対パスに配置する必要があります。そうしないと、アプリのソース管理が台無しになります。

この問題を解決するために考えることができる唯一の方法は、ワークスペースを次のように整理することです。

C:\Android\Projects\Applications\MyTestApp\TheApp
C:\Android\Projects\Applications\MyTestApp\TheLib
C:\Android\Projects\Componentes\SampleLib

そして、私のリポジトリはからのコンテンツで満たされているはずですC:\Android\Projects\Applications\MyTestApp\

しかし、ライブラリが更新されるとどうなりますか?新しい変更を単純にプルすることはできません。それらをTheLibフォルダーにコピーする必要があります。以前のフォルダ編成では、コピーではなく元の複製リポジトリを参照していたため、これは必要ありませんでした。

それならどうすればいいですか?オプション1を使用して、プロジェクトをフォークする人にライブラリの依存関係を適切と思われる方法で処理させるか、2番目のフォルダーを使用して、元のフォルダーから変更をプルするときに2つのフォルダーを同期させて、全員に作業を追加する必要があります。リポジトリ?

4

3 に答える 3

2

個人的には、Android のライブラリ プロジェクトは FAIL 設計だと思います。私が他のコードを参照/使用したい唯一の方法は、別のプロジェクト全体を取得し、IDE 構成レベルですべてをセットアップすることです。ライブラリとは何ですか?これは、アーカイブ形式でコンパイルおよびパッケージ化された再利用可能なコンポーネントである必要があります。彼らの重要なメモLibrary project storage locationによると、この関係を断ち切り、ライブラリを実際のライブラリとして管理できる簡単な回避策はないと思います。ライブラリがそれほどアンドロイド化されていない場合は、プレーンな jar ライブラリとして書き込み/ビルドし、jar ライブラリのビルド/リリースとプロジェクトの依存関係を管理する maven を使用してみてください。

うーん、Google がそれを Android Library Projectではなく Android Library Project と呼ぶのは理にかなっています。

于 2011-09-19T22:28:19.890 に答える