안드로이드 프로그래밍/[ Android Framework ]

[ Android ] 05. 안드로이드의 FileSystem

kim.svadoz 2020. 8. 12. 11:22
반응형

FileSystem

image-20200410134349447

  • 앱별로 내부저장소가 패키지별로 따로 관리가 되고 있고, 아무도 접근하지 못하는 공간.
  • 패키지가 지워지면 자동으로 지워진다~

image-20200410134638076

  • 외부저장소인데 패키지 이름과 똑같이만들면 삭제될 때 같이 저장된다.

image-20200410134731960

  • 똑같이 외부저장소

image-20200410134844549

  • 똑같이 외부저장소

내부저장소

  • 이 앱만 사용하기 때문에 권한체크 안해도 됨

외부저장소

  • 외부저장소는 다른 것들을 같이 건드리지 못하도록 권한체크 필수
  • 사용자로 하여금 권한을 줄건지 말건지 설정해야 함
  • 데이터를 지워도 외부저장소에는 데이터가 남아있다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> // 외부저장소 권한 설정

<application android:requestLegacyExternalStorage="true"> // 이전버전 저장소 권한 설정
// 외부저장소/임의의디렉토리 생성
//  => 앱을 삭제해도 데이터는 남아있다.
String dirPath = external.getAbsolutePath()+"/myApp";

// 외부저장소/android/data/앱의 패키지 명으로 디렉토리 생성
//  => 앱 삭제하면 데이터가 같이 삭제된다.
String dirPath = external.getAbsolutePath();

exam1

  • 권한 체크는 액티비티
  • 저장버튼을 눌렀을때
    • 권한 이 설정 된 경우 : Toast("권한설정 완료");
    • 권한 이 설정안된 경우 : Toast("권한설정하세요");

exam2

아래와 같이 단순한 형식의 메모장을 작성하세요.

레이아웃 - 버튼 세 개와 EditText(종류는 디자인 창에서 적절한 것을 찾아서 하세요)

  • 기능 1 : Write와 Read기능을 구현하세요.

    • 모두 외부저장소에서 액세스 하도록 구현하세요

    • BufferedReader와 FileWriter를 이용하세요

    • EditText에 입력한 파일을 외부 저장소 디렉토리에 /mynote라는 폴더를

      ​ 만들고 오늘날짜_memo.txt로 저장하세요

      ​ ex) 4월10일 -> 20200410_memo.txt

  • 기능 2 : 퍼미션에 대한 처리를 하세요

    • READ / WRITE에 대한 퍼미션을 모두 한 꺼번에 처리되도록 구현하세요.

image-20200410161644662


20-04-11 토

https://sqlite.browser.org

image-20200411113848472

안드로이드에서 데이터 저장하기

  • 내 앱에 저장하는 데이터는 앱을 지우면 데이터가 삭제 => 내부저장소 사용

1. Shared & Preference

설정용

2. Sqlite

- DBHelper

데이트베이스가 업데이트 되거나, DB를 처음 생성하거나

반응형