안드로이드
안드로이드 단말기에서 데이터를 저장할 수 있는 여러가지 방법이 있다. 그 중에서도 데이터베이스는 많은 양의 데이터를 체계적으로 관리하기 위해 사용한다. 이 글에선 안드로이드에서 기본적으로 지원하는 데이터베이스인 SQLite에 대해 정리하고자 한다. 이 글에서 SQL문 작성법에 대한 설명은 생략한다. SQLite란? SQLite는 안드로이드에서 사용할 수 있는 경량급(Light-weight) 관계형 데이터베이스로, 표준 SQL문을 이용해 데이터를 조회할 수 있다. 임베디드 데이터베이스로 만들어진 SQLite는 파일 기반으로 동작 하면서도 데이터베이스의 기능을 그대로 사용할 수 있다. 안드로이드 운영체제에 자체적으로 탑재되어있기 때문에 MySQL, Oracle 등 서버단에서 주로 사용되는 관계형 데이터베이스..
스마트폰의 통신은 크게 와이파이와 연결된 상태와 3G/LTE로 연결된 상태로 나누어볼 수 있다. 이번 글에서는 네트워크 상태에 따라 적절한 처리를 할 수 있도록 인터넷 연결 여부와 연결의 종류를 확인하는 방법을 정리하려 한다. 사용자 권한 요청 먼저 단말기의 인터넷 연결 상태에 접근할 수 있도록 권한을 요청해야한다. manifest에 아래의 코드를 추가한다. 인터넷 연결 여부 확인 연결 상태를 확인하기 위해 ConnectivityManager 객체가 필요하다. ConnectivityManager를 사용하면 인터넷에 실제로 연결되어 있는지, 연결되어 있다면 어떤 유형의 연결인지 확인할 수 있다. 시스템 서비스 객체를 가져오기 위해서 getSystemService() 메서드를 사용한다. getActiveNe..
안드로이드 스튜디오에서 빈 프로젝트를 하나 만들어보면 MainActivity가 자동으로 추가되어 있다. 안드로이드 앱은 반드시 하나 이상의 액티비티를 가지고 있어야 한다. 액티비티와 같이 안드로이드 앱을 구성하는 4가지 구성 요소는 아래와 같다. Activity (액티비티) Service (서비스) Broadcast Receiver (브로드캐스트 수신자) Content Provider (콘텐츠 제공자) 안드로이드 앱이 설치될 때, 안드로이드 시스템은 이 각각의 구성요소에 대한 정보를 요구한다. 이 구성요소들에 대한 정보를 모아놓는 파일이 바로 AndroidManifest.xml이다. 안드로이드의 구성 요소 네가지는 새로 만들 때 반드시 그에 대한 정보를 manifest에 추가해야 한다. 예를들어, 새로운..
일반적으로 안드로이드 앱의 레이아웃을 정의하기 위해 XML 레이아웃을 사용한다. XML 레이아웃은 단순히 XML로 정의된 파일이다. 이 파일엔 뷰의 배치 방식과 속성이 정의되어 있다. 따라서 XML 코드를 작성했다고 바로 화면을 띄우고 앱을 실행할 수는 없다. 화면의 구성을 XML로, 기능을 소스 코드로 각각 분리해서 정의했다고 가정해보자. 복수의 파일 중 적절한 XML을 소스 코드에서 어떻게 선택해서 인식할 수 있을까? 소스 코드에 어떤 XML이 지정되어야 하는지 매치하는 과정은 반드시 필요하다. 이 때 등장하는 개념이 레이아웃 인플레이션(Layout Inflation)이다. XML 레이아웃과 Java 코드를 연결하기 안드로이드 스튜디오에서 새로운 프로젝트를 만들면 MainActivity.java가 자..
안드로이드 앱에서 화면을 터치하거나 키보드로 글자로 입력을 하게되면 그에 따라 정해진 반응이 일어난다. 이번 글에서는 이러한 이벤트를 처리하는 방법을 정리하고자 한다. 대표적인 이벤트의 유형 터치 이벤트 : 화면을 손가락으로 누를 때 발생 키 이벤트 : 키패드나 하드웨어 버튼을 누를 때 발생 제스처 이벤트 : 터치 이벤트 중에서도 스크롤과 같이 일정 패턴으로 구분되는 이벤트 포커스 : 뷰에 순서대로 주어지는 포커스 화면 방향 변경 : 화면 방향이 가로와 세로로 바뀜에 따라 발생 Touch Event 안드로이드에서는 터치 이벤트를 처리할 수 있도록 클릭 이벤트(Click Event)를 별도로 제공한다. 버튼 위젯의 경우 대부분 클릭 이벤트가 필요하기 때문에 안드로이드에서 보다 간단하게 이벤트 처리를 할 수..