안녕하세요.
딱히 필요하지는 않지만 그래도 필요한 경우가 있는 코드로 어플 데이터를 삭제하는 방법을 공유합니다.
어플 데이터를 삭제하는 방법은
해당 앱 정보 -> 저장소 -> 데이터지우기
을 하면 됩니다.
위의 방법은 간단합니다.
그리고 코드로 삭제하는 방법도 있습니다.
위의 방법으로 데이터지우기를 하면, "data/data/(패키지명)"에 있는 파일들이 다 삭제가 됩니다.
그렇습니다! 아래 코드와 같이 삭제하면 됩니다. 그냥 삭제하면 됩니다.
public void clearApplicationData() { File cache = getCacheDir(); File appDir = new File(cache.getParent()); if(appDir.exists()){ String[] children = appDir.list(); for(String s : children){ if(!s.equals("lib") && !s.equals("files")){ deleteDir(new File(appDir, s)); } } } }
여기서 중요한점은 "data/data/(패키지명)/lib" 폴더와 "data/data/(패키지명)/files" 폴더를 삭제하지 않는 것인데요
lib폴더는 외부라이브러리나 .so파일이 저장되고 있는 곳입니다. (다른 블로그에서 삭제 하지 말라고 하더라구요. 아직 잘 모르겠지만 삭제는 하지 않습니다.)
files폴더는 데이터를 삭제하고 나서 코드를 수정하고 빌드를 하니 정상적으로 수정이 안되어 있는 것을 확인 했습니다.
그래서 무슨 일 인가했는데 빌드되면 APK파일이 생성되지만 수정을 하고 APK파일이 다시 만들어지는 것이 아닌,
캐시 class파일을 만들어 사용하는 것 같았습니다. 그것이 files에 들어있구요! 그래서 이 폴더를 삭제하면! 그냥 APK파일을 삭제하고 다시 깔아야 되는데요!
그냥 이거 삭제하지마세요~
만약 내부메모리에 저장된 파일이 여기에 저장이 된다면 이방법은 고려해주시면 됩니다.
'Android' 카테고리의 다른 글
[안드로이드] 화면전환을 못하게 하는방법 (0) | 2012.06.13 |
---|---|
SurfaceView(Thread)가 drawing중일때 Hold키 입력후, 복귀 문제 (0) | 2012.06.13 |
[안드로이드]BroadcastReceiver (0) | 2011.02.18 |
[안드로이드]Shape만들기!! (0) | 2010.10.12 |
[안드로이드]Preference만들기!!! (0) | 2010.10.11 |