안녕하세요 일기장을 만들고 있는데요
백업,초기화,복원 기능을 넣었어요.

백업 할때는 sqliteDB 파일 복사
초기화할때는 sqliteDB 파일 삭제
복원할때는  복사된 db파일을 이용해서 원래 db위치에다가 복사 합니다.
---------------------------------------------------------------------------------
어찌어찌 하다 보니까 DB접근을 contentProvider로 구현을 해버렸습니다. ㅠㅠ

테스트 방법입니다.
// 1. 글쓰기 
// 2. 목록에서 글이 쓰여졌는지 확인합니다.
// 3. 초기화 버튼을 클릭합니다. sqliteDB파일을 삭제 합니다.
// 4. adb shell에서 /data/data/어플리케이션/databases/디비 파일명 <-- 지워진것 을 확인합니다.
// 5. 글목록으로 돌아가서 글이 지워졌는지 확인 합니다. <----- 글이 남아있습니다.ㅠㅠ
// 6. 안드로이드 설정>어플리케이션>어플리케이션 관리> 일기장 프로젝트 이름 선택
// 7. 강제 종료 실행
// 8. 일기장 목록가서 확인해보면 <-- 글이 지워져 있었습니다.
---------------------------------------------------------------------------------
ContentProvider를 상속 받은 DiaryProvider의  onCreate부분에
LogCat으로"mOpenHelper onCreate" 라는 로그를 찍어 보았습니다.
이부분에  mOpenHelper = new DatabaseHelper(getContext()); <-- SQLiteOpenHelper이것을 상속받아서
구현한 DatabaseHelper 이것이 있어서 이부분에 호출이 될때 Database개체를 얻어 온다고 생각했습니다.
그리고 프로그램을 실행해 보았더니. 처음 DiaryProvider가 불리는 시점에서 (목록에서 조회 할때) 한번 찍히고
읽기나 쓰기에서는 안찍히더군요. 
그래서 생각했습니다. 처음에 Database개체가 생성되면 DB파일에 접근해서 다시 불러오지 않는구나.라구요.
그래서 목록 페이지 cursor 얻어올때 부분을 contentProvider가 아닌 다른 방법으로 SqliteOpenHelper를 구현한 다른 
클래스의 객체를 생성해서 activity에서 얻어오도록 수정해 보았습니다. 잘되더라구요
-------------------------------------------------------------------------------------
그래서 DiaryProvider가 다시 생성 될수 있도록 해주면 되겠다라는 결론을 내렸는데요..
 [
안드로이드 설정>어플리케이션>어플리케이션 관리> 일기장 프로젝트 이름  || 강제 종료 하고
나면 목록이 잘 표시되는 것을 생각하면서. 이렇게 강제 종료 안하면 여전히 DB파일이 지워졌음에도
일기 목록에는 글이 표시됩니다.  --- 장시간 두고 기다려 보지는 않았습니다.
ContentProvider의 생명주기는 다른것 같다고 추측해봅니다.
]
contentProvider를 종료한다던가. 다시 적제하는 방법을 원합니다. ㅠㅠ
그 방법을 찾을수가 없더라구요. ㅠㅠ
도와주십쇼.. 

 -------------------------------------------------------------
--백업하는 다른 방법으로 하다가 포기한것들 .
1. 백업의 다른 방법으로. XML로 덤프떴다가 복원하는것 
----- 데이터 많을시 아웃오브 메모리 발생 포기..
2. echo ".dump" | sqlite3 디비명 > 파일명   
----- 생성되지 않음 포기 adb shell에서는 되는데 프로그램에서 exec()실행시 잘안되더라구요
-----------------------------------------------------------------