1. 데이터베이스에 보관하기 안드로이드폰에서 이용하는 데이터베이스 관리 시스템은 오픈소스로 만들어진 SQLite 입니다. SQLite 는 테이블의 데이터를 앱의 저장소에 파일로 저장하며 외부 앱에서는 접근할 수 없습니다. 코드에서는 SQL 질의문만 작성하면 되고 실제 데이터는 SQLite 가 관리해 줍니다. 질의문 작성하기SQLite를 사용하려면 SQLiteDatabase 라는 API를 이용해야 합니다. SQLiteDatebase 객체는 openOrCreateDatabase() 함수를 호출해서 얻습니다.val db = openOrCreateDatabase("testdb", Context.MODE_PRIVATE, null) openOrCreateDatabase() 함수는 첫 번째 매개변수로 전달한 DB 파..
전체 글
공부한 내용을 나의 언어로 정리하자1. 콘텐츠 프로바이더 이해하기 콘텐츠 프로바이더는 앱끼리 데이터를 연동하는 컴포넌트입니다. 예를 들어 앱을 개발하면서 다른 앱의 데이터를 사용할 때 콘텐츠 프로바이더를 이용합니다. 이때 데이터는 대상 앱의 데이터베이스나 파일 또는 앱에 할당된 메모리에 있습니다. 콘텐츠 프로바이더를 이용하면 이런 저장소에 있는 데이터를 가져오거나 수정할 수 있습니다. 앱의 데이터는 그 앱의 구성 요소에서 이용할 때는 문제가 없지만 외부 앱에서는 기본적으로 접근하지 못합니다. 외부 앱에서 마음대로 접근하면 보안 문제가 발생하기 때문입니다. 그렇지만 앱을 만들다 보면 공유해야 하는 데이터도 있기 마련입니다. 예를 들어 휴대폰에 저장된 주소록은 주소록 앱의 데이터고, 카메라로 촬영한 사진은 갤러리 앱에 저장돼 있지만 모두 다..
1. 서비스 이해하기 서비스는 오래 걸리는 작업을 백그라운드에서 처리할 수 있게 해주는 컴포넌트입니다. 따라서 서비스에 화면을 구현하지는 않습니다. 그리고 서비스 역시 안드로이드의 컴포넌트이므로 생명주기를 시스템에서 관리합니다.서비스 생성과 실행서비스 컴포넌트는 Service 클래스를 상속받아서 작성합니다. 서비스에는 다양한 생명주기 함수를 재정의할 수 있지만 onBind()는 필수적입니다.class MyService : Service() { override fun onBind(intent: Intent): IBinder? { return null }} 서비스도 컴포넌트이므로 매니페스트에 등록해야 합니다. 서비스를 실행하려면 시스템에 인텐트를 전달해야 하는데 이때 사용하는 함수는 ..