Android OS의 구조 Android는 Linux 기반의 오픈소스 소프트웨어 스택이다. Android 플랫폼의 구성요소는 아래 그림과 같다. Android Platform Linux 커널 Android 플랫폼의 기반은 Linux 커널로, ART(Android 런타임)는 스레딩(Threading) 및 하위 수준의 메모리 관리와 같은 기본 기능에 Lin...
Android 앱 개발의 핵심은 컴포넌트이다. 컴포넌트를 이해해야 Android 앱 개발의 구조를 이해할 수 있다. 컴포넌트는 특별히 Android에서만 사용되는 개념은 절대 아니다. 다른 애플리케이션에도 당연히 적용되는 개념으로 애플리케이션의 구성 요소라고 볼 수
AndroidManifest
Life Cycle Callback을 잘 구현하지 않으면 앱에서 다음과 같은 문제가 발생할 수 있다.사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제사용자가 앱을 활발하게 사용하지 않는 경우 귀중한 시스템 리소스가 소비되는 문
build.gradle
View는 Control이나 Widget으로 불리는 UI 구성 요소이다. 쉽게 말해, 우리가 스마트폰을 사용할 때 화면에서 보이는 것들을 View라고 생각하면 된다. View를 여러 개 포함하고 있는 것을 ViewGroup이라고 부르며, 이 ViewGroup 또한 Vi
뷰 결합 View Binding findViewById() 메서드를 사용해 View의 ID가 주어졌을 때 해당 뷰에 대한 참조를 반환하는 작업을 통해 사용할 수 있지만 앱에 뷰가 많이 추가되면서 UI가 복잡해질 경우 번거로워질 수 있다. 이런 부분에서 편의를 위해 V
Android Jetpcak - Navigation 앱을 탐색한다는 것은 다른 화면으로 이동한다는 것을 말한다. 보통 인텐트나 프래그먼트 트랜잭션을 통해 간단한 작업을 구현했다. 좀 더 복잡한 구현을 만들어야될 때는 어떻게 해야될까? 예를 들어, 여러 화면 전환을 위
Fragment 생명주기에 대해 알아본다.
Android 앱을 배포할 때 사용되는 파일 형식
터치 이벤트 스마트 폰을 사용할 때 터치를 제일 많이 한다. 터치도 다양하게 한다. 한 번만 탭 몇 초간 누르거나 스와이프를 하거나 이런 동작들은 터치 이벤트 콜백 함수인 onTouchEvent() 를 선언해서 사용한다. > - 콜백 함수 : 어떤 이벤트가 발생하거나 시점에 도달했을 때 시스템에서 자동으로 호출하는 함수 액티비티에서 onTouchEv...
액티비티 화면은 수많은 뷰들로 구성되며 우리가 사용하는 앱 대부분이 뷰를 터치하는 방법으로 앱을 사용한다. 많은 종류의 뷰들이 있기 때문에 각 뷰마다 별도로 제공된다. 뷰 이벤트의 처리 구조 뷰 이벤트는 이벤트 콜백 함수만 선언해서 처리할 수 없다. 이런 점이 터치/키 이벤트의 처리 구조와의 차이점이다. 뷰 이벤트 처리는 3개의 역할로 나뉜다. Eve...
앱 리소스와 플랫폼 리소스
API 레벨 호환성 고려 build.gradle 파일에서 SDK 버전이 명시되는 것을 알았다. 만약 minSdk 가 21이고 targetSdk 가 31이면 21 버전 기기부터 설치 가능하고 31 버전으로 개발되지만 21 버전의 기기에서도 문제없이 작동해야 한다. 안드로이드 API 문서에서 클래스를 살펴보면 Added In API level ~ 로 해당 ...
다이얼로그 다이얼로그 : 사용자와 상호작용하는 대화상자. Toast, 날짜, 시간입력, 알림 창 등과 같은 커스텀 다이얼로그도 있다. Toast 메시지 Toast : 화면 하단에 잠시 보였다가 사라지는 메시지로 사용자에게 간단히 특정 상황을 알릴 때 사용 01 To
소리 알림 알림음 : 사용자에게 짧은 소리로 특정 상황을 알릴 때 사용되는 것 카톡 알림음 같은 경우는 해당 기업이 자체 음원을 사용한 것이고 기본적으로 안드로이드 시스템에 등록된 음원을 사용할 수도 있다. 3가지 알림음을 RintoneManager 를 통해 사용할
이번 포스트에서 다룰 내용으로 Android의 Splash Screen을 만드는 건 좋지 않은 방법이다. Android 12 이전까지는 SplashActivity같은 화면을 따로 만들어 구현했다면 Android 12가 나오면서 Splash API가 강제화되었다. And