web-dev-qa-db-ja.com

デバッグAPKとリリースAPKの違い

私はAndroidだけでなくAndroidstudio。VisualStudioでの経験から、別のマシンで.exeをテストするとき、リリースフォルダーをコピーします。および.exe。

しかし、Android studioでは、同僚がUSBドライブを使用して他のシステムにコピーしてデプロイすることでデバッグapkをテストしているのがわかります。そのバージョンをデプロイした結果はどうですか? Playストアの目的にのみ関連するリリースバージョンですか?

デバッグバージョンにデバッグ情報が含まれていること以外の技術的な違い/結果は何ですか?

22
user2454516

重要な違いの1つは、リリースAPKで通常ProGuard(コード圧縮)が実行されていることです。これにより、未使用コードが検出および削除され、APKサイズが削減されます。

から コードとリソースを縮小

コードの縮小によりビルド時間が遅くなることに注意してください。可能な場合は、デバッグビルドで使用しないでください。ただし、保持するコードを十分にカスタマイズしないとバグが発生する可能性があるため、テストに使用する最終APKでコードの縮小を有効にすることが重要です。

同僚はおそらくデバッグビルドタイプでテストして時間を節約しています。これは、デバッグAPKではなくリリースAPKをビルドするのにかなり時間がかかる可能性があるためです。

11
prfarlow

主な違いは、デバッグフラグと署名キーです。

  • デバッグビルドの場合、apkはデバッグフラグが有効なデフォルトのデバッグ署名キーで署名されます。

  • リリースキーの場合、署名するキーを明示的に指定する必要があり、デバッグフラグはオフになり、デバッグできなくなります。

  • Proguardは、リリースビルドに対して有効にできます。 (デバッグビルドにも使用できますが、推奨されません)。このステップは明示的に行う必要があり、デフォルトではfalseです。

注:これらはbuild.configで変更でき、希望する順列と組み合わせを選択できます。

デバッグビルドとリリースビルドの主な違い(build.gradleで他に指定されている場合)は、それらが署名される鍵です。ほとんどのアプリ配布チャネルでは、開発者を認証するためにリリースキーで署名されたアプリのみが必要です。それ以外の場合、違いはありません。

リリースビルドは、コードの難読化や分割などの他のオプションもトリガーする可能性があるため、これらに注意してください。

ただし、これら2つのバージョンの間にもたらすことができる多くの変更があります。これらは、build.gradleがある場合は指定する必要があります。だから、そこから目を離さないでください。

0
Shaishav