2012-12-17 73 views
5

私のAndroidアプリケーションでは、プロパティファイルを少し変更するだけです。例えばAndroid APKファイルのリソースを再構築せずに変更できますか?

私のプロパティファイルでは、特定のクライアントのための歓迎のメッセージがあります。 私のアプリケーションではクライアント名のみを変更する必要があります。

しかし、問題は、私はソースでそれを行う必要があり、すべてのクライアントごとに毎回ビルドする必要があるということです。

.apkファイルで直接変更する方法はありませんか。再度ビルドを作成しないでください。&

+0

すべてのクライアントがアプリケーション内で独自の名前を必要としているので、 – Prateek

+4

私はそれを知っています。なぜあなたは再構築を避けたいのですか?あなたはスカイネットなどを編集していますか? –

+1

シングルテキストを除いて変更はありません........クライアント側のシステムチームが私を待たなければなりません。私は彼らが私の依存なしで変更を加えることができますようにします。 – Prateek

答えて

8

これを行うには、パッケージ化されたAPKを解凍し、変更する文字列を見つける必要があります。文字列は、バイトコード(Java String)またはバイナリ形式(XML String)にエンコードまたは変換されている可能性があります。これが完了したかどうか、新しいStringがどのように見えるかを把握する必要があります。次に、置き換えたい文字列を取り込み、同じ方法でそれを置き換える前にエンコードする必要があります。

これをすべて実行したら、アプリケーションを再圧縮し、署名ツールとzipを手動で実行してからapk形式で再度使用できるようにする必要があります。

まあまあ、これを行うには、アプリを再コンパイルするよりも時間がかかるでしょう。

+3

+1は、バイナリをめちゃくちゃにする。 – asgs

+0

とは別に、再構築から他の簡単な方法もありません。 – Prateek

0

Android APK Toolを使用してください。

それは、リバースエンジニアリングのサードパーティのためのツールである説明

を引用するには、バイナリのAndroid のアプリを閉じました。リソースをほぼ元の形にデコードし、修正した後で を再構築することができます。

1

ソースコードを所有しているので、APKの開梱と再構築は時間の無駄です。元のビルドプロセスでこの問題を解決する必要があります。

EclipseでAPKパッケージを手作業でビルドする場合は、自動ビルドシステム(Ant、Mavenなど)を設定し、クライアント名をビルドスクリプトのパラメータとして指定する必要があります。

すでにAntまたはMavenを使用している場合、これらのツールは、テキストファイルのタグをプロパティ値で置き換えてからコンパイルする方法を提供しています。より正確な回答を得るために、ビルド環境について詳しく教えてください。

+0

現在、私はeclipseで手作業による方法を使用しています。 「.apkファイルを作成するためのantの使い方」の詳細をご提供しています – Prateek

+2

StackOverflowのルールごとに、対象に関する基本的な知識を持っていれば、具体的な新しい質問を作成して作成する必要があります。Googleのキーワードは "android ant build"です。 – Torben

関連する問題