2011-06-01 4 views
1

私はコアプロジェクトとして使用する小さなAndroidプロジェクトを持っています。このコアプロジェクトから、私はカスタム化を行うことができます。同じプロジェクトですが、カスタマイズしてインストールできます。

標準のアイコンやボタンなどを使ってフレームワーク形式でアプリを持っています...アイコンとボタンが異なるさまざまなバージョンを作成したいと考えています。

これは私が行う方法を知っています。 (同じコードでもリソースは異なる2つの別々のapkファイルがあります)

しかし、コアプロジェクトとカスタマイズを同時に同じデバイスにインストールしたいと考えています。現在、一方は他方を上書きします。

マニフェストでパッケージを変更しようとしましたが、これはJavaファイルでR.javaのインポートをすべて変更する必要があることを意味します。これは避けたいものです。

同じJavaファイルを使用していてもリソースが異なる2つのプロジェクトを持つことができるxmlの何かを変更することはできますか?

答えて

2

Androidライブラリを使用する必要があります。

すべてのアプリケーションコードを1つのAndroidライブラリに入れてから、カスタムアイコンと異なるパッケージ名を持つ2つのAndroidアプリケーションを作成します。最終的なAndroidアプリケーションで定義されたリソースは、Androidライブラリの既存のすべてのリソースを上書きします。

1つの欠点:あなたのAndroidアプリケーションにはAndroidManifest.xml個のファイルのコピーがほとんど同じである必要があります(ただし、パッケージ名は異なる必要があります)。詳細情報については

  1. Androidのドキュメント:Settings up Android Library project
  2. マイポスト:Android Application, Android Libraries and Jar Libraries.この1つはどのようにAndroidのライブラリ作業について説明します。
+0

これは唯一のオプションですか?私が欲しいものを少し残酷に思っている、私はすでに2つのプロジェクトを簡単に作成することができますVSSで分割を設定している、私の唯一の問題は、インストール時にお互いを上書き実行することです。ライブラリが私の唯一のオプションであれば、それを見て全体を再び分割することになります。しかし、私はすべてのRのインポートを変更するよりも良いと思っています –

+1

あなたはAndroidManifestで定義されたパッケージから独立したパッケージにRクラスを置くことができます。しかし、これにはかなりのコーディングが必要です(antスクリプトとantのためのカスタムJavaタスクの両方)。一方、Androidライブラリはそれほど問題にはなりません。あなたがそれに慣れると、実際にはとても簡単で直感的です。また、AndroidライブラリはAndroidアプリケーションに変換できます(逆も同様)。 – inazaruk

2

すべてのソースコードを含むライブラリプロジェクトを作成し、ライブラリプロジェクトを参照するインストール可能なパッケージごとにプロジェクトを作成する必要があります。インストール可能なプロジェクトで任意のリソース定義を定義/上書きできます