안드로이드 22

안드로이드에서 REST API 호출하기

REST API를 이용하여, 날씨를 조회하는 간단한 애플리케이션 만들기 조대협 (http://bcho.tistor 네트워크를 통한 REST API 호출 방법을 알아보기 위해서, 간단하게, 위도와 경도를 이용하여 온도를 조회해오는 간단한 애플리케이션을 만들어보자이 애플리케이션은 경도와 위도를 EditText 뷰를 통해서 입력 받아서 GETWEATHER라는 버튼을 누르면 네트워크를 통하여 REST API를 호출 하여, 날씨 정보를 받아오고, 해당 위치의 온도(화씨) 출력해주는 애플리케이션이다. 날씨 API 는 http://www.openweathermap.org/ 에서 제공하는데, 사용법이 매우 간단하고, 별도의 API인증 절차가 필요하지 않기 때문에 쉽게 사용할 수 있다. 사용 방법은 다음과 같이 쿼리 스..

안드로이드 주요 레이아웃

안드로이드 주요 레이아웃 (메모) 원본 : https://www.udacity.com/course/viewer#!/c-ud853/l-1395568821/m-1645248621 다른 종류의 레이아웃도 있으나 일반적으로 사용하는 레이아웃은 다음과 같다. FrameLayout : 보려는 항목이 하나만 있을 경우. (ListView 하나만 넣는 경우와 같은 케이스)LinearLayout : 수직 또는 수평으로 차례로 View를 출력할때RelativeLayout : 다른 View에 비한 상대적 위치를 표현하는 반응형 UI에 적합

안드로이드 기초 - 컴파일,설치,실행 (커맨드라인)

안드로이드에 애플리케이션 컴파일,설치해서 실행하기 (에뮬레이터 실행 포함) 조대협 (http://bcho.tistory.com) 다음은 개발된 애플리케이션을 단말이나 또는 에뮬레이터에서 실행하는 방법이다.이 방법은 안드로이드 스튜디오 1.2.2 을 맥북에 설치한 기준으로 설명한다.안드로이드 스튜디오 IDE가 좋아서, 필요는 없겠지만. 몰 하던간에 IDE 없이도 할 수 있는 방법이 있어야 하기에 테스트 해놓은 내용을 기록해놓는다. 1. 애플리케이션 컴파일 하기 디렉토리에서 ./gradlew assembleDebug명령을 실행하면, 디버깅 모드로 컴파일이 되고 apk 파일이 생성된다. 위와 같은 에러가 발생할 수 있는데, 이 경우는 ANDROID_HOME이 설정되지 않은 경우이다.~/bash_profile에..

안드로이드 리소스파일 (Resource)

안드로이드 리소스 파일 개요 조대협 (http://bcho.tistory.com) 안드로이드 프로젝트에서 소스 코드 이외에 이미지나 디자인 레이아웃등의 기타 리소스등을 코드와 분리해서 취급한다. 이렇게 리소스를 코드와 분리해서 사용하는 이유는, 조금 더 유연하게 애플리케이션을 개발하게 하기 위함이다. string과 같은 문자열을 별도의 리소스 파일에서 관리함으로써, 애플리케이션 수정 없이 string 리소스 파일에만 문자열을 추가함으로 간단하게 다국어를 지원할 수 있다. 리소스는 크게 7가지 타입의 리소스가 있고, “/res” 디렉토리에 저장된다. Layout Resource (뷰 리소스)애플리케이션 UI의 배치 에 대한 내용을 XML 형태로 정의하여 저장한다. res/layout 아래와 XML 형태로 ..

안드로이드 인텐트를 통해서 새로운 액티비트에 데이타 전달하기

안드로이드 인테트를 통해서 액티버티 생성하기 조대협(http://bcho.tistory.com) 요즘 일이 바쁘고 하는 역할도 바뀌어서 기술보다는 관리나 스크럼에 대한 글들을 읽고 공부하다보니, 반대적으로 기술에 대한 포스팅이 줄었다. 이래서는 안되겠다 싶어서, 어떤 부분을 봐야 할까 고민하다 보니 빅데이타와 앱 개발 기술쪽을 봐야겠다가 시작은 했는데, 막상 진도는 잘 안 나가고 있어서. 앱팀을 운영하고 있으니, 말이라도 통할려면 기본이라도 알아야 겠다 해서 안드로이드 앱쪽을 공부하고 있는데, 일단 해놓은 내용이라고 까먹지 않으려면 정리해놔야겠다는 생각에 간단하게 포스팅한다. 본 문서의 내용은 https://developer.android.com/training/index.html 를 기반으로 작성하였다..

안드로이드 기초-뷰와 뷰그룹의 개념

Android View와 ViewGroup의 개념 View와 ViewGroup 객체를 이용해서 만듬.View는 버튼이나 텍스트필드와 같은 UI Widget 이다. ViewGroup은 여러개의 View 또는 ViewGroup을 포함할 수 있는 컨테이너의 개념이며, ViewGroup을 상속하여 화면 배치 속성을 갖는 Layout을 가지고 있는 ViewGroup이 있다. ex)LinearLayout 등 출처 : https://developer.android.com/training/basics/firstapp/building-ui.html 이 ViewGroup은 res/layout/*.xml 에 XML 형태로 정의할 수 있다.다음은 LearLayout 을 선언한 예이다.View의 경우에는 보통 다음과 같은 형태..

안드로이드 액티버티 생명 주기와 BackStack

안드로이드 Activity Lifecycle (액티버티 생명주기)와, Back Stack & Task 조대협 (http://bcho.tistory.com) Back Stack Activity의 라이프 사이클 개념을 이해하기 전에, 먼저 BackStack이라는 개념을 이해해야 한다. 안드로이드 애플리케이션은 모바일 애플리케이션의 특성상 하나의 화면, 즉 Activity만 화면에 활성화가 되게 된다. 활성화 된 화면에서 작업하다가, Back 버튼등을 눌러서 이전화면으로 돌아갈 수 있는데, 이런 돌아가는 구조를 지원하기 위해서, 내부적으로 화면이 전환이 되더라도 기존의 화면을 없애는것이 아니라 메모리에 저장해놨다가, 돌아갈때 저장된 화면을 띄워 주는 구조가 된다 이런 구조를 구현하기 위해서 내부적으로 Back..

안드로이드 프로그래밍 구조의 기본

안드로이드 프로그래밍 구조의 기본 조대협 (http://bcho.tistory.com) 해당 포스팅은 https://class.coursera.org/androidpart1-005/lecture/13 의 내용을 바탕으로 정리하였습니다 안드로이드 애플리케이션의 주요 구성 요소안드로이드 애플리케이션을 이루는 주요 구성 요소는 크게 다음 4가지이다. Activity : 가장 메인이 되는 컴포넌트로, 모바일 앱의 특성상, 모바일앱은 하나의 UI가 떠서 사용자로 부터 입력을 받고, 출력을 담당한다. 즉 하나의 화면 인터페이스에 해당한다고 보면된다.Service : 백그라운드에서 도는 컴포넌트로 UI가 없이 동작한다. 가장 쉬운 예로 음악 플레이 처럼 화면이 없는 상태에서 백그라운드로 도는 케이스가 가장 대표적인 ..

안드로이드 플랫폼 기본 아키텍쳐

안드로이드 플랫폼 기본 아키텍쳐 조대협 (http://bcho.tistory.com) 안드로이드 플랫폼의 기반 아키텍쳐를 살펴보면 다음 그림과 같다. 원본 : https://en.wikipedia.org/wiki/Android_(operating_system)#/media/File:Android-System-Architecture.svg 리눅스 커널 일단 가장 아랫단에, Linux 커널 이 올라가 있다. 일반적인 Linux 커널과 크게 다르지는 않지만, 모바일 디바이스에 최적화된 전력 관리 기능이나 안드로이드에 최적화된 Binder IPC (프로세스간 커뮤니케이션) 부분등이 포함되어 있다. 시스템 라이브러리 리눅스 커널위에는 C로 구현된 몇가지 네이티브 라이이브러리들이 올라가 있다. 3차원 그래픽을 위한..

안드로이드 프로그래밍 시작하기

안드로이드 프로그래밍 시작하기 (둘러보기) 조대협 (http://bcho.tistory.com) 요즘 서버쪽 기술은 다소 시들해진것도 같고, 하는 일이 모바일 서비스인지라 (얼마전에도 그랬지만..) 알아야할것 같아서, 안드로이드 프로그래밍을 보기 시작했다. 아무래도 서버 개발자 출신이다 보니 안드로이드 개발이라는 생소한 분야를 이 나이에 공부하면서 정리하는 내용이니 혹여나 내용이 허접하더라도.. 이해해주시기를.. (초보자 시각에서 정리한 내용입니다. ) 구글에서 안드로이드 IDE인 안드로이드 스튜디오를 다운받아서 설치하면, 통합 개발 환경을 사용할 수 있다. 이 IDE는 보니, JetBrain의 IntelliJ를 기반으로 만들어진 환경이다. (구글이 이런 투자는 잘한듯..) 그러다 보니 이클립스를 쓰면서..