9

最近、Android アプリ開発について学び始めました。また、Java 言語も初めての経験です。

Java パッケージの依存関係の形でアプリ開発に組み込みたいデバッグ ツールがいくつかあります。明らかな理由から、デバッグ ビルドにのみ含めたいと思います。

iOS では、ビルド構成を使用してデバッグ ビルド専用のデバッグ ライブラリとリンクし、マクロを使用してデバッグを処理するコードの一部を削除できます。これにより、デバッグ ビルドとプロダクション ビルドを簡単に切り替えることができます。とにかくAndroidでも同じことを達成するには?

これまでのところ、Maven プロファイルを使用してアプリケーションによって読み込まれるプロパティ ファイルを上書きする方法が最も近い方法ですが、これにはデバッグ ライブラリをインポートする必要があります。


私の質問を明確にするために、私がやりたいことは次のとおりです。ブラウザで SQLite データベースを参照できるようにするライブラリを構築しました。これはデバッグ目的には非常に便利ですが、アプリにライブラリを同梱したくありません。

もう 1 つの目的は、HockeyApp を使用することです。HockeyApp には、更新通知とクラッシュ レポートの 2 つの機能があります。これが機能するには、3 つの異なるビルドが必要です。

  • 製品: クラッシュ レポート オン、更新通知オフ
  • ベータ: 両方オン
  • デバッグ: 両方オフ
4

4 に答える 4

4

マニフェストの<application>で、属性を設定できdebuggableます。この属性を省略した場合、Eclipse が自動的にこれを行います。デバッグ ビルドには がありdebuggable=true、適切にエクスポートされたビルドには がありdebuggable=falseます。

これは Log.d に影響し、次を使用してコードを条件付きでチェックインできます。

boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
于 2013-03-29T02:37:40.310 に答える
1

Maven に加えて、1 つの方法は、Daggerのような依存性インジェクターを使用することです

標準の javax.inject アノテーション (JSR-330) に基づいて構築することにより、各クラスを簡単にテストできます。RpcCreditCardService を FakeCreditCardService に交換するためだけに、大量のボイラープレートは必要ありません。

依存性注入は、テストのためだけのものではありません。また、再利用可能で交換可能なモジュールを簡単に作成できます。すべてのアプリで同じ AuthenticationModule を共有できます。また、開発中に DevLoggingModule を実行し、本番環境で ProdLoggingModule を実行して、それぞれの状況で適切な動作を得ることができます。

于 2013-03-29T02:36:07.557 に答える
0

BuildConfig.DEBUG を使用していますか。これは Android adt ツールによって作成されます

/gen/BuildConfig

于 2013-03-29T02:52:29.167 に答える