안드로이드 전체 9

Android / 작업 및 백 스택 이해

작업은 사용자가 특정 작업을 할 때 상호작용하는 활동의 컬렉션이고, 활동은 스택(백 스택)에 각 활동이 열린 순서대로 정렬된다. 예를 들어 이메일 앱에는 새 메시지 목록을 표시하는 활동이 하나 있을 수 있다. 사용자가 메시지를 선택하면 메시지를 볼 수 있도록 새 활동이 열린다. 새로운 활동은 백 스택에 추가되며, 사용자가 뒤로 버튼을 누르면 새로운 활동이 완료되고 스택에서 팝된다. 사용자가 앱 런처의 아이콘(또는 홈 화면의 바로가기)을 터치하면 앱의 작업이 포그라운드로 나온다. 앱의 작업이 없으면(앱이 최근에 사용된 적이 없으면) 새 작업이 생성되고 이 앱의 '기본'활동이 스택의 루트 활동으로 열린다. 멀티태스킹 현재 활동이 또 다른 활동을 시작하면 새 활동이 스택의 맨 위에 푸시되고 포커스를 갖게 된다..

Android 스튜디오 소개 - 1

Android Studio는 통합개발환경(IDE,Integrated Development Environment)이다. IDE는 도구가 가득 들어있는 작업장이라고 해보자. 이 도구들을 사용해 코드를 작성하고 앱이 화면에 어떻게 표시될지 그려볼 수 있다. IDE는 각 화면을 만들 때마다 디자인이 어떻게 표시될지 실시간으로 미리 보여준다. 프로젝트 템플릿 Android 스튜디오에서 프로젝트 템플릿이란 필요한 모든 부분을 가지고 있지만 실행하는 작업이 많지 않은 Android앱이다. Name은 앱의 이름이다. Package name은 Android 시스템에서 앱을 고유하게 식별하기 위해 사용하는 이름이다. Save location은 프로젝트와 관련된 모든 파일이 저장되는 위치이다. Minimum SDK는 앱을 ..

2.Intent

아래 모든 내용은 https://developer.android.com/guide/components/intents-filters?hl=ko에서 가져왔으며, 이해를 하기위해 적어놓은 것이다. Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있다. 인텐트가 구성 요소 사이의 통신을 촉진하는 데는 여러 가지 방식이 있지만 기본적인 사용 사례는 크게 세 가지로 나눌 수 있다. 액티비티 시작 Activity는 앱 안의 단일 화면을 나타낸다. Activity의 새 인스턴스를 시작하려면 Intent를 startActivity()로 전달하면 된다. Intent는 시작할 액티비티를 설명하고 모든 필수 데이터를 담는다. 액티비티가 완료되었을 때 결과를 수신하려면, startActiv..

안드로이드 컴포넌트

모든 정보는 https://mommoo.tistory.com/55에서 가져왔으며, 이해를 돕기위해 적었다. 컴포넌트의 유래 컴퓨터와 같은 하드웨어 제품들은 각각의 독립된 기능을 가진 부품으로 만들어진다. 이 제품들은 회사와 상관없이 서로 조합하여 하나의 제품을 만들고, 만약 부품에 문제가 있을 시 다른 부품으로 바꾸어 사용해도 문제가 없다.이렇게 하드웨어 제품들은 각 부품들의 호환을 생각하며 만든다. 반면에 소프트웨어에서는 모듈(부품)들이 독립적으로 개발되지 않은 경우가 많을 뿐더러, 독립적으로 개발되어도 다른 모듈과의 호환을 생각하지 않고 개발한다. 이는 결국 소프트웨어의 재사용을 어렵게 하고 유지보수 비용이 크게 증가하는 원인이 되어 이러한 문제점을 해결하기 위해 나온 기술이 컴포넌트 기술이다. 컴포..

1.안드로이드 컴포넌트 4가지

1. Activity 안드로이드 프로그래밍을 하면 만나는 가장 기초적인 컴포넌트로서, 사용자 인터페이스의 기본 단위. 앱의 한 화면을 자체를 Activity 라 하고, 일반적으로 앱은 여러개의 Activity로 이뤄지며, 또 하나의 Activity는 여러개의 Activity 또는 View(ex: textview, imageview ...) 로 이뤄져 있다. 2. Service Activity가 화면에 보이고 사용자에게 입출력을 제공한다면, Service의 경우 그와 반대로 화면에 출력되는 UI가 없으며, 백그라운드에서 길고 반복적인 작업을 하는데 사용된다. 예를 들자면, 일반적인 음악재생 앱의 경우, 노래 재생은 계속하되 다른 앱을 실행한다던가 다른 작업을 할수 있다. 즉, 여기서는 노래가 Service..

코루틴 개념

코루틴은 코틀린만의 것이 아니다. 이름이 비슷해서 코틀린의 것이라고 생각할 수 있지만 파이썬, C#, Go, Javascript 등 여러 언어에서 지원하고 있는 개념이다. Javascript를 사용하고 있으면서 async await를 사용하고 있다면 이미 코루틴을 사용해본 경험이 있는것이다. 아무튼 코루틴은 새로운 개념, 새로운 기술이 아니라 프로그래밍이 세상에 나온 초창기 부터 존재하던 개념이다. 앱이든 웹이든 비동기 처리가 핵심인 클라이언트 프로그래밍에서 지금까지 가장 핫한 키워드는 rx programming일 것이다. 그러나 구글이 안드로이드 공식 언어를 자바에서 코틀린으로 변경한 이후, 최근 들어 대표적인 샘플 예제들인 bluprint와 sunflower 앱의 비동기처리(Asynchronous)를..

.2 레이아웃

안드로이드 UI 컴포넌트의 종류와 특성, 사용법을 정확히 이해하고 사용하는 것은 중요한 일이다. 특시, 뷰 위젯을 화면에 배치하기 위해 사용하는 레이아웃은 화면 구성이 복잡할수록, 또 사용되는 뷰 위젯의 개수가 많을수록, 어떤 종류의 레이아웃을 선택하는지가 화면 구성 시간, 동작 성능, 유지보수 등에 영향을 줄 수 있다. 과거에는 여러 종류의 레이아웃을 중첩하여 UI를 구성하는 경우가 많았지만 그 경우 성능과 유지보수 측면에서 효율적이지 못해 현재는 중첩하지 않고 유연한 방법으로 뷰 위젯들을 배치할 ㅜㅅ 있는 레이아웃이 만들어지게 되었다. RelativeLayout의 "상대적 위치 관계에 따른 배치"특성에 LinearLayout의 "가중치(Weight)가 가진 장점"을 적용하고, 체인(Chain) 사용으..

안드로이드 컴포넌트 - Service

아래 모든 내용은 https://velog.io/@hwi_chance/Kotlin-9%EC%9E%A5.-%EC%95%B1-%EA%B0%9C%EB%B0%9C-Service-Content-Provider에서 갖고온 것이며, 이해를 위해 적어놓았다. service는 안드로이드의 4가지 컴포넌트 중 하나로 백그라운드 작업을 위한 컴포넌트이다. 여기서 4가지 컴포넌트란 Activity,service,Broadcast Receiver,Content Provider를 뜻한다. 다만 서비스는 워커 쓰레드가 아닌 메인 쓰레드에서 실행되며 따라서 워커 쓰레드(멀티스레드기능중 하나)를 통해 백그라운드 작업을 처리하는 것과는 다른 동작 방식을 가진다. service 실행 방식 서비스는 Started Service와 Bound..