2016-08-20 1 views
0

저는 앱을 만드는 초기 단계에 있으며, 나는 자주 데이터베이스와 상호 작용하는 코드를 변경하고 있습니다. 이 때문에 깨끗한 데이터베이스로 항상 테스트를 실행하고 싶습니다. (자동화는 아니며 에뮬레이터에 대한 오래된 수동 테스트입니다.)안드로이드 - 모든 빌드에서 데이터베이스를 정리하는 방법?

현재 내가 다른 테스트를 실행하기 전에 앱을 삭제했는지 확인하여이 방법을 사용하고 있습니다. 이것은 효과가 있지만 지루합니다. 이 방법을 자동화 할 수 있는지 궁금 해서요, 그래서 내가 응용 프로그램을 빌드 할 때마다 데이터베이스도 정리됩니다. 어떤 경우에는 이전 데이터를 데이터베이스에 보관하기를 원하기 때문에 이상적으로이 기능을 쉽게 켜고 끌 수 있어야합니다.

답변

0

앱을 업그레이드 할 때 DB를 삭제하는 BroadcastReceiver을 추가 할 수 있습니다. AndroidManifest.xml에 추가하여 시작

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

다음 AppUpdateReceiver라는 클래스를 생성 : 데이터베이스 사용자 응용 프로그램이 디버그 APK를 사용하여 업그레이드 할 때마다 닦아해야

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

.

0

Android Studio (또는 gradle을 사용하는 다른 IDE에 구축)를 사용할 경우, 매번 작업 할 때마다 gradle 작업을 사용하여 클린 데이터베이스를 에뮬레이터에 복사 할 수 있습니까? 아래처럼.

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

스위치를 추가하여 필요할 때 쉽게 끌 수 있습니다 (예 : 학년 스크립트에 정의 된 부울을 사용합니다. 또한 응용 프로그램에서 장치를 만들고 남은 경우 임시 파일을 삭제하려면 rm 셸 명령을 사용할 수도 있습니다.

관련 문제