본문 바로가기

Android

[Android] 코드로 어플 데이터 삭제 하는 방법

안녕하세요.


딱히 필요하지는 않지만 그래도 필요한 경우가 있는 코드로 어플 데이터를 삭제하는 방법을 공유합니다.


어플 데이터를 삭제하는 방법



해당 앱 정보 -> 저장소 -> 데이터지우기


을 하면 됩니다.


위의 방법은 간단합니다.



그리고 코드로 삭제하는 방법도 있습니다.


위의 방법으로 데이터지우기를 하면, "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파일을 삭제하고 다시 깔아야 되는데요!

그냥 이거 삭제하지마세요~


만약 내부메모리에 저장된 파일이 여기에 저장이 된다면 이방법은 고려해주시면 됩니다.