6

標準の Android メール アプリケーションに単純な機能がないことに悩まされています。このアプリケーションはオープン ソースとしてリリースされているため、これは非常に簡単に修正できます。

質問: この変更をリリースして、自分と他のユーザーが変更された電子メール アプリケーションを (ルート アクセスなしで) インストールできるようにするにはどうすればよいですか? 私は次のことを試しました:

  1. 多くのコピーを使用して、標準の Eclipse/ant ツールチェーンを使用し、メイク スクリプトを使用する ASOP ツールチェーンを使用せずに、EMail アプリケーションを構築することができました。
  2. このアプリケーションをインストールすると、パッケージが既にインストールされているため、エラーが発生します (明らかに、更新する歌のキーがありません)。
  3. デバイスでメール アプリを無効にしても問題は解決しません。まだ新しいアプリケーションをインストールできません。

マニフェストでアプリケーションのパッケージ名を変更することについて考えましたが、それほど単純ではありません。すべてのクラスを新しいパッケージに移動する必要もあります。さらに、 AndroidManifestでわかるように、アプリケーションは新しいパーミッション ( com.android.email.permission.READ_ATTACHMENT) や、変更されたパッケージをインストールするときに重複エラーを引き起こすその他のものを定義します。これらのアクセス許可は、ソース内の文字列として参照されます。

すべてのファイルを手動で変更してから、すべてのエラーをデバッグすることが、私の問題に対する唯一の解決策ですか? これらの変更は、すべてのファイルを変更して移動したため、EMail アプリケーションの新しいバージョンを取り込むことも非常に困難になります。

4

2 に答える 2

3

マニフェストでアプリケーションのパッケージ名を変更することについては

それが必要になります。

また、すべてのクラスを新しいパッケージに移動する必要があります

必ずしも。マニフェストで宣言されたパッケージに生成されるため、そのクラスRをインポートするように調整する必要があります。Rまた、マニフェスト自体を更新して、該当する場合は、ベアクラス名ではなく完全修飾クラス名を使用する必要があります。

さらに、AndroidManifestで確認できるように、アプリケーションは新しい権限(com.android.email.permission.READ_ATTACHMENT)や、変更されたパッケージのインストール時に複製エラーを引き起こすその他のことを定義します。

既存の権限を定義することは完全に可能です。「複製エラー」がどこでどのように発生しているのかわかりません。

すべてのファイルを手動で変更してから、すべてのエラーをデバッグすることが、本当に私の問題の唯一の解決策ですか?

多かれ少なかれ。上記の「必ずしも」の段落を参照してください。

これらの変更により、すべてのファイルを変更して移動したため、新しいバージョンのEメールアプリケーションを取り込むことも非常に困難になります。

K-9 Mail(数年前にAOSP Emailアプリもフォークした)やAOSP Emailアプリなどの既存のオープンソースメールアプリに変更を加えるのではなく、このクエストに着手することを決めたのはあなたです。それ自体(AOSPコントリビューションプロセスを介して)。

于 2013-02-07T19:46:12.067 に答える
2

このトピックは陳腐かもしれませんが、後世のために私が行ったことを共有したいと思いました. 上記の情報を使用してブラウザ ソースを変更し、独自のバージョンのアプリを作成することができました (ストック アプリと並行してインストールできます)。私がしたこと:

  • マニフェストで、パッケージ名を変更します
  • res->values->strings で、アプリケーション ラベルを変更します (これは便宜上、同じ名前の 2 つのアプリが存在しないようにするためです)。
  • マニフェストで、「original-package」属性を削除します (必須ではない場合があります)。
  • マニフェストで、プロバイダー権限を変更します (新しいパッケージ名と一致するように)
  • マニフェスト内のすべてのクラス名が完全修飾されていることを確認してください。

最後のステップにはいくつかの試行が必要でしたが、LogCat をビルド、インストール、起動、および誤った参照がないかどうかを確認するだけでした。

于 2013-04-24T23:36:33.860 に答える