私は、ほとんどの理論コードを共有する 2 つの Android アプリを開発しています (Basic 版と Pro 版のようなものです)。
Pro エディションから始めて、com.example.proapp のようなパッケージ名を付けました。
Basic エディションの場合、git で Pro エディションのブランチを作成し、Eclipse ワークスペースのコピーを作成しました。Basic ブランチをアクティブにして、Eclipse で Basic ワークスペースを開きました。
- に変更
app_name
されましたstrings.xml
。 - のパッケージ名を変更しました
AndroidManifest.xml
。(android:title
アプリケーションとそのメイン アクティビティの両方の属性が を指し@string/app_name
ます。) - Refactor を使用して、Java パッケージ名を から
com.example.pro
に変更しましたcom.example.basic
。 - アプリのアイコンを置き換えました。
これで、アプリを起動すると、すべて問題なく表示されます。新しいタイトルとアイコンがあります。
ただし、Android で [アプリの管理] に移動すると、Basic アプリが Pro アプリのアイコンとタイトル文字列と共に表示されます。(両方をインストールすると、Pro アプリの 2 つのエントリが表示されます。そのうちの 1 つをタップした後でのみ、パッケージ名を見てどちらがどれであるかがわかります。)
ここで何が問題なのですか?Basic アプリを適切な名前と適切なアイコンで表示するにはどうすればよいですか?
更新:「基本」ブランチから 2 つ目の git リポジトリを作成して、コードを新しい Eclipse ワークスペースにインポートしてみました。アプリの両方のフレーバーを携帯電話からアンインストールし、新しいビルドをドロップしました。動作は同じです。ランチャーとアクション バーには正しいアイコンとアプリのタイトルが表示されますが、アプリの管理には「Pro」アイコンとタイトルが表示されます。
この「アンデッド」のアイコンとタイトルはどこから来たのですか? これで、Eclipse ワークスペースを除外でき、作業コピー内のビルドの破片を除外できます。
Android は、インストールされたアプリ データのキャッシュをアンインストール後も保持し、そこからアプリ データを復活させているようです。しかし、それは単なる推測です...誰かがこれに光を当てることができますか?
また、なぜ Android は 2 つの apk が同じアプリであると認識しているのでしょうか? パッケージ名以外に、APK に内部識別子はありますか?
更新 2:今日、Manage Apps で Basic バージョン (Pro バージョンはインストールされていません) の正しい名前とアイコンを取得しましたが、最後に確認してから何も変更していません。唯一のことは、その間にアプリの管理アクティビティが強制終了され、再起動された可能性があることです。アプリの管理でバグが発生しているようですが、何が原因でしょうか?