어플리케이션을 만들때 빠질 수 없는 부분이 바로 데이터의 저장방법 입니다.
안드로이드는 이를 위해 4가지 메커니즘(프레퍼런스, 파일, 데이터베이스, 네트워크)을 제공합니다. 

4가지 메거니즘 (프레퍼런스, 파일, 데이터베이스, 네트워크)

[ 프레퍼런스 (Preference) ]
이는 기본적인 데이터 타입에 대한 key-value pair을 저장하고 가져오는 메커니즘 입니다. 이것은 전형적으로 어플리케이션이 시작될 때마다 로드 되어야 하는 기본적인 환영 인사말이나 텍스트 폰트와 같은 어플리케이션의 환경설정 정보를 저장하기 위해 사용 됩니다. 
- 이 곳에 값을 읽고 쓰기 위해서는 Context.getSharedPreferences( ) 메소드를 호출하면 됩니다.
- 동일 어플리케이션 내에 다른 컴포넌트와 공유를 한다면, 프레퍼런스 잡합에 이름을 할당 합니다.
- 호출하는 액티비티의 private 영역을 유지하기 위해서는, 이름없이 Activity.getPreferences( ) 메소드를 사용하면 됩니다. 

[ 파  일 ]
모바일 디바이스, 분리될 수 있는 저장매체(e.g SDcard)에 직접적으로 파일들을 저장할 수 있습니다. 
- 파일로부터 데이터를 읽기 위해서는 Context.openFileInput( ) 메소드를 호출하고, 파일의 로컬 이름과 경로를 전잘하면 됩니다. 이는 표준 JavaFileInputStream 오브젝트를 리턴합니다. 
- 파일에 데이터를 쓰기 위해서는 이름과 경로를 가지고 Context.openFileOutput( ) 메소드를 호출 합니다. 이것 역시 JavaFileInputStream 오브젝트를 리턴합니다. 

컴파일 시점에 어플리케이션과 함께 패키지 할 static 파일이 있다면, 프로젝트의 res/raw/myDataFile/ 로 그 파일을 저장할 수 있으며, Resources.openRawResource(R.raw.myDataFile) 메소드로 오픈할 수 있습니다. 그것은 파일로부터 읽기 위해 사용할 수 있는 InputStream 오브젝트를 리턴 합니다.

[ 데이터베이스 ]
안드로이드 API는 SQLite 데이터베이스를 생성하여 사용하고, 데이터베이스 관리 기능을 지원합니다. 
각각의 어플리케이션마다 각자의 데이터베이스가 생성 됩니다. 즉, 데이터베이스는 어플리케이션에 private 합니다.

SQLiteDatabase 오브젝트는 데이터베이스를 나타내고, 쿼리를 하고 데이터를 관리하는 메소드를 가지고 있습니다. 데이터베이스 생성을 위해서는, SQLiteDatabase.create( ) 메소드를 호출하면 되고, 서브 클래스인 SQLiteOpenHelper를 호출합니다.

모든 데이터베이스(SQLite.. 등등)는 디바이스 상의 /data/data/package_name/databases 안에 저장 됩니다. 

[ 네트워크 ] 
네트워크의 사용이 가능하다면 데이터를 가져오고 저장하기 위해 네트워크를 사용할 수 있습니다. 네트워크 오퍼레이션을 하기 위해서는 java.net.* , android.net.* 패키지에 있는 클래스를 사용하면 됩니다.