1

私のシナリオは次のとおりです。Messenger を介して任意のアプリケーションと通信できるリモート サービスがあります。アプリケーションは、私が定義したカスタム イベントを送信します。各イベントは、実行する「アクション」を定義します (Android の に似ていますIntent)。サービスによるイベントの送信と処理をテストするために、新しいイベント アクション (例: ) をセットアップしたいEventAction.DEBUGのですが、このアクションとそれを処理するコードをリリースに含めたくありません。

これは私が考えたことです:

  • final static boolean変数を使用して条件付きでコードを実行します。ハードコードされた変数のため、これは好きではありません。
  • 構成ファイルからデバッグ状態を読み取ります。これは遅く、コンパイラはデバッグを処理するコードを生成するため、無駄な比較が行われます。
  • 起動時にアプリケーションにデバッグ フラグを渡します。Androidでこれを行う方法、またはこれが可能であっても無視します。また、これにより、コンパイラがデバッグ コードを生成することにもなると思います。

この動作を実装するための最良のアプローチは何だと思いますか?

4

2 に答える 2

4

A. final static_ ProGuard は未使用のコードを削除します。

構成ファイルの値に関しては、実行時に変更できない場合にのみ「役に立たない」だけであり、アプリの他の部分と比較すると、比較はそれほど遅くはありません。

于 2012-07-13T14:34:02.170 に答える
2

Android の ADT バージョン 17 以降には、(リリース用に) 署名済み APK をエクスポートするときに false に設定される BuildConfig.DEBUG 変数が既に含まれています。

于 2012-07-13T14:44:08.023 に答える