Android 43

Android - SQLite 사용하기

Android 에서 Data를 저장하는 방식에 어려가지가 있다. 사실 PC라고 해서 딱히 다르지는 않다. file system에 file 로 저장하는 방법, Database에 저장하는 방법, Network Storage에 저장하는 방법 등 여러가지가 있다. 그 중 이 글에서는 database에 저장하는 방법에 대해 알아보고자 한다. database에 대해 기본적인 지식이 있는 사람들은 알고 있겠지만 Database의 종류에도 여러가지가 있다. oracle, mysql, mssql 등등등등.... 종류가 너무나도 많다. 그 중 android에 기본적으로 들어 있는 sqlite를 android app에서 접근해서 사용하는 방법에 대해 알아보자. sqlite는 기본적으로 android에 들어 있고, 우리가 흔..

Android 2016.01.12

Android - ListView and Adapter

android app을 시작하면서 adapter라는 개념이 잘 와닿지 않았다. list를 만들기 위해서 listview에 data를 넘겨주면 자동으로 보여주면 되지, data를 adapter에 연결하고, 이를 다시 listview에 연결하고, 대체 왜 이 adapter라는게 필요한지 잘 이해가 안갔다. 자료를 좀 찾아보니 data(Text, Image 등)별로 처리하는 방법이 다 다를테고, 그렇다고 view마다 해당 data에 대한 처리 routine을 구현해야 한다면 view마다 동일 내용을 일일이 넣어 줘야 하는 불상사가 생긴다. 즉, view에 넘겨주는 부분은 adapter라는 class로 일원화 시키고, data에 따른 구현은 해당 adapter class를 extend시켜 하나의 class로 구..

Android 2016.01.09

Android - Layout (레이아웃)

Android App에서 Layout (화면구성)을 구성/선언하는 방법은 두가지가 있다. 1. XML로 선언하여 표시-. UI를 표시하는 XML을 별도로 두어 Code 구현과 화면 Design을 구분하는 방법이다. UI를 분리하여 구현 가능하다는 장점이 있지만 사용자 반응에 따라 혹시 어떤 event에 따라 dynamic 하게 UI가 변경되지는 못한다는 단점이 있다. 2. Runtime시 Instance 로 선언(코드)하여 표시-. 위 XML로 선언하는 방식에 비해 코드와 Design의 분리가 불가능하다는 단점이 있지만, Runtime시 UI를 변경할 수 있다는 장점이 있다. 이에 따라 기본적인 UI는 XML로 표시하고, Runtime시 변경이 필요한 UI 부분에 대해서는 추가적으로 코드 구현을 하는 것..

Android 2016.01.08

Android - Content Providers (콘텐츠 제공자)

Content Provider는 한 Process의 Data에 다른 Process에서 연결가능하도록 하는 표준 interface 이다. [Application A_ContentResolver] [Application B_ContentProvider] [Application B_Data] 외부에서 Application B의 Data에 접근하기 위해서는 기본적으로 Application B에서 Content Provider의 구현이 필요하다. 즉, 외부에 Data 공유가 필요없다면 Content Provider를 제공하지 않아도 된다. 이렇게 외부에서 Data에 접근이 가능하도록 Content Provider가 제공된다면 접근하는 쪽에서는 Content Resolver 가 필요하다. 즉, Content Pro..

Android 2016.01.06

Android - Services (서비스)

Background에서 실행되는 구성요소로 Activity와 같이 사용자 UI를 제공하지 않는다.다른 구성 요소에서 Service를 시작할 수 있고, 해당 구성 요소를 소멸시키더라도 background에서 계속해서 실행하게 된다.추가로 실행되고 있는 Service에 다른 구성요소가 binding 하여 상호 작용을 할 수 있다. 다른 구성요소인 Activity와 같이 상태가 존재한다. StartedStarted 상태가 되기 위해서는 App 구성요소에서 startService()를 호출하면 된다.Service는 자신을 호출한 구성요소가 소멸하더라도 상관없이 남아 있고, 한번 시작되면 계속 실행될 수 있다. 다만 Service내 구현이 무기한 실행이 아니라 정해진 작업이 있고, 이가 완료되었다면 중단 될 수 ..

Android 2016.01.05

Android - Tasks (작업) 그리고 BackStack

이전 글인 구성요소, Activity 에서 확인했듯이,기본적으로 하나의 APP은 여러개의 Activity로 구성되어 있으며, 각 Activity는 서로 다른 Activity를 호출할 수 있다. 같은 APP내의 Activity 뿐만 아니라 다른 APP내의 Activity까지 호출이 가능하다. 예를 들어 카메라 앱에서 사진은 찍은 후, 갤러리 앱으로 넘어가 찍은 사진을 확인한다거나Web browser 내에서 관심있는 APP을 검색 중 APP market으로 바로 넘어가 다운로드 받는 등의 경우이다. 이렇게 다른 APP의 Activity 를 자유롭게 호출하여 넘어갈 수 있다보니 APP간에 경계가 없다고 볼수 있는데,이로인해 Activity는 Application 단위보다는 Task라는 개념의 단위로 이해하는 ..

Android 2016.01.05

Android - Fragment (플래그먼트)

Fragments Fragment는 사용자 UI를 나타낼수 있는 하나의 Activity내의 모듈을 의미한다. 여러 Fragment가 모여 하나의 Activity를 구성하기도 하고, 하나의 Fragment가 여러 Activity에 사용되기도 한다. Activity내에 포함되는 모듈이다 보니 기본적으로 Activity의 Lifecycle을 따르게 되는데, 예를 들어, Activity가 pause되면 fragment 또한 pause되고, Activity가 소멸되면 fragment 또한 소멸 된다. 단지, Activity가 resumed 된 상태에서는 fragment 나름의 lifecycle을 가지게 된다. Fragment 추가 방법 in Activity Activity에 fragment 삽입하는 방법은 lay..

Android 2016.01.04

Android - Activity (액티비티) - Activity 이해 및 Lifecycle

. 일종의 App의 구성요소 . 사용자와 상호작용을 하기 위한 하나의 화면 (가득 채울 수도 있고, 다른 창 위에 작게 띄울 수도 있음) App은 여러개의 Activity가 묶여 있는 형태로 Main Activity가 있고, 이 Activity 가 App 실행시 기본적으로 표시되게 된다. App내의 각 Activity는 다른 Activity를 호출할 수 있고, 새로운 Activity가 호출될 때 마다 이전 Activity는 Stack에 보관하게 된다. 사용자가 Back key를 누르게 되면 이전 Stack에 보관된 Activity가 하나씩 resume 되게 된다. Activity Lifecycle 의 이해 우선 Activity는 기본적으로 3가지의 상태로 존재한다. Activity 상태 종류. Resum..

Android 2016.01.02

Android - App. apk 구성 요소 - (Activity, Service, Contents Provider, Broadcast receiver)

Java를 이용해서 Android app을 만들어 본 적은 있었지만 만들었다기 보다 인터넷에 돌아다니는 코드들을 내가 원하는 형태로 조합해서 엮어놓았다고나 할까. 전반적인 Android app에 대한 이해가 부족하여서 인지 간단한 프로그램은 작성이 가능했어도조금만 어려워지면 헤매는 시간이 많아졌다. developer.android를 보면서 정리를 좀 해 보았다. App. apk 기본 구성 요소Android app에는 4가지 기본 구성 요소가 존재한다.Activity, Service, Contents Provider, Broadcast receiver Activity-. 사용자 인터페이스가 있는 하나의 화면을 의미. Activity Class를 상속해서 구현. Service-. Background에서 동작..

Android 2015.12.30

Google Play는 디버그 인증서로 서명된 APK를 허용하지 않습니다. 최소 50년 동안 유효한 새 인증서를 만드세요.

Google Play는 디버그 인증서로 서명된 APK를 허용하지 않습니다. 최소 50년 동안 유효한 새 인증서를 만드세요. google play에 apk를 올리려면 서명된 apk를 생성해서 올려야 한다.그냥 빌드한 apk를 올리려 하면 위와 같은 에러가 발생한다. 서명된 apk를 만드는 방법은 다음과 같다. Package Explorer에서 자신의 project위에서 마우스 오른 버튼을 눌러 menu를 띄운다.Android Tools > Export Signed Application Package 메뉴를 선택한다. 이후 칸들을 쭉 입력하면 Signed apk를 생성할 수 있다.

Android 2015.05.23

error generating final archive debug certificate expired on android packaging problem

error generating final archive debug certificate expired on android packaging problem 처음으로 eclipse, android sdk 깔아서 빌드를 시도했는데 위 에러가 나와 당황스럽다. Debug Cerification이 만료되어서인데 해당 certification이 설치된지 1년이 지나면 발생한다. debug certification의 위치는 Window > Preferences > Android > Build 에서 확인이 가능하다 나의 경우에는 C:\Users\AAA\.android\debug.keystore 에 위치. 해당 파일을 지우고 다시 build하면 성공!!

Android 2015.05.23