2016-08-20 8 views
0

私はアプリケーションの作成の初期段階にあります。私は頻繁にそれを扱うデータベースやコードに変更を加えています。このため、クリーンなデータベースを使用して、常にテストを実行したい(自動化ではなく、エミュレータでの簡単な古い手動テスト)。Android - どのビルドでもデータベースをきれいにするには?

現在、別のテストを実行する前にアプリを削除したことを確認して、これを達成しています。これは機能しますが、面倒です。私はこれを自動化する方法があるのだろうかと思っていたので、アプリをビルドするたびにデータベースも消去されるようになった。理想的には、これをオン/オフに切り替えるのは簡単です。これは、古いデータをデータベースに保存したい場合があるためです。

答えて

0

あなたのアプリをアップグレードするときにDBをワイプするBroadcastReceiverを追加できます。 AndroidManifest.xmlに追加することで起動します。

<receiver android:name=".AppUpdateReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> 
    </intent-filter> 
</receiver> 

その後、AppUpdateReceiverというクラスを作成:

public class AppUpdateReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    if (BuildConfig.DEBUG) { 
     // Wipe database 
    } 
    } 
} 

データベースにあなたのアプリケーションをデバッグAPKを使用してアップグレードされるたびに拭く必要があります。

0

Android Studioを使用している場合(またはgradleを使用して別のIDEに構築している場合)、たぶんgradleタスクを使用して、きれいなデータベースをエミュレータにコピーすることができます。以下のようなもの。

task pushCleanSb(type: Exec, dependsOn: 'installDebug') { 
    android.adbExe, 'shell', 'push', '<local-clean-database-filepath>, '<remote--database-path' 
} 

例えば、必要なときにこれをオフにするスイッチを追加するのは簡単だろうあなたの学年のスクリプトで定義されたブール値を使用します。また、アプリケーションが作成してデバイス上に残っている場合は、rmシェルコマンドを使用して一時ファイルを削除することもできます。

関連する問題