
컴파일자바는 자바소스(.java)->자바 바이트코드(.class) -> JVM안드는 자바소스(.java) -> 자바 바이트코드(.class) -> DEX 바이트코드(.dex) -> 안드로이드런타임(ART)컴포넌트컴포넌트는 애플리케이션의 구성요소안드로이드에선 클래스로 컴
클래스는 생성자로 생성. 주생성자와 보조생성자 존재둘 중 하나만 작성할 수도 있고 둘 다 작성할 수도 있다.작성constructor 키워드로 작성. 클래스 선언부에 선언하며 필수는 아니다. - constructor 키워드 필수 아님. 개발자가 선언하지 않으면 컴파일러가
LinearLayoutRelativeLayoutFrameLayoutConstraintLayoutGridLayout
1. 클릭 이벤트 2. 키 이벤트 하드웨어 키보드의 키 이벤트 받음 하드웨어 키 : 네비게이션바(뒤로가기, 홈, 오버뷰), 전원, 볼륨 키 이벤트로 처리 가능한 이벤트 : 뒤로가기, 볼륨 onKeyDown, onKeyUp, onKeyLongClick 3. 뷰 이벤트
뷰에서 일어난 이벤트 처리이벤트 소스 : 이벤트가 발생한 객체이벤트 핸들러 : 이벤트 발생 시 실행할 로직이 구현된 객체리스너 : 이벤트 소스와 이벤트 핸들러를 연결해주는 함수이벤트 리스너는 이벤트 핸들러를 이벤트 소스와 연결해준다.대부분 이벤트 핸들러는 이름 형식이
여러 다이얼로그를 만들어보자클릭이벤트는 각 버튼마다 DialogInterface를 구현해서 만들거나, 따로 이벤트 핸들러를 구현해두고 사용할 수 있다. AlertDialog.Builder()빌더 안에서 타이틀, 내용, 버튼 등 설정각 버튼은 클릭 리스너를 연결할 수 있
알림 구성 Notification Manager : 알림을 시스템에 발생시키는 System Service Notification 객체 : 알림 구성 정보를 가지는 객체 Notification.Builder : 알림을 다양한 정보로 생성 Notification Chann
화면!!!!!!!!!!!액티비티, 브로드캐스트, 서비스, 콘텐츠프로바이더 컴포넌트들은 시스템이 생성해서 실행하는 클래스이기 때문에 개발자가 작성하는 코드로 생명주기를 관리할 수 없음!! 액티비티 클래스에서 다른 액티비티를 직접 호출해서 사용할 수도 없음.=> Inten
액티비티 상태 활성 액티비티 화면 출력, 사용자 사용 가능 일시정지 액티비티 화면 출력되고 있으나, 사용자가 이벤트 발생시킬 수 없음 액티비티 사용 중 다이얼로그 알림창이 뜨는 경우 등 비활성 액티비티 화면이 출력되고 있지 않은 상태 생명주기 생명주기를 사용하는 이유

뷰다. 텍스트 뷰나 버튼처럼 액티비티 화면을 구성하는 뷰.인데 그 자체만으로는 아무것도 아닌.. ,, 뷰다.다른 뷰와 다르게 액티비티처럼 작동함!! 액티비티에 작성 가능한 뷰는 프래그먼트에서도 가능탭처럼 하나의 액티비티에서 두개의 프래그먼트 클래스를 사용독립적으로 사용

리사이클러뷰.를 알아보자이름 그대로 재사용이 가능한 뷰.일반 리스트뷰는 필요한만큼 계속 재생성이 되는데 리사이클러뷰는 보여지는 부분만 생성되고 스크롤 등의 이벤트로 추가로 보여져야할 때는 이미 만들어진 뷰를 재사용한다.카카오톡 채팅 리스트 등 동일한 형태의 뷰를 반복해
화면을 스와이프해서 슉슉. 넘길 수 있는 기능을 가진 뷰이다기존에 ViewPager가 있었는데 지원 중단되고 이젠 2로만 사용사용하는 어답터에 따라 두 가지 구현이 가능하다. 리사이클러뷰와 같은 방식으로 작동. 다만 뷰가 리사이클러뷰가 아니라 뷰페이저 타입인 것!Lay
지난 포스팅에서 뷰페이저2를 RecyclerViewAdapter로 구현해보았다.RecyclerView에서는 하나의 item_list.xml을 가지고 재사용을 해서, 동일한 형태의 화면을 보여주는 것이었다면. 프래그먼트를 사용할 때는 보여줄 화면을 각각 프래그먼트로 만든

액티비티를 이동할 때 데이터를 저장하는 방법은 크게 3가지가 있다.ViewModel, savedInsanceState, storage그 중 먼저 savedInstance에 대해 알아보자.... 이전 글에 썼지만 사실 아리까리하여 따로 정리해본다.액티비티 생명주기의 어

을 공부하기 전에 room에 대해 알아야할 것 같아서 그거 먼저 정리하고 오겠다

난 그저 intent를 사용한 화면 이동을 실습해보고 싶었을 뿐인데.. 그래서 구글링하며 예제를 찾았을 뿐인데.. 그 예제에서 ViewModel, room 등의 심화 기능을 쓰셔서 얼떨결에 같이 공부를 하고 있다. room을 통해 DB에 접근하는 법을 공부해보자!우선

안드로이드 4대 컴포넌트 중 하나인 브로드캐스트 리시버에 대해 알아보자안드로이드 시스템에서는 시스템에서 일어나는 이벤트를 마치 방송국처럼 방송한다. 그 중에 원하는 시스템 이벤트를 받아서 처리하고 싶을 때 사용하는 컴포넌트이다.시스템 이벤트라 함은 다음과 같은 것들이

드디어~. 서비스 컴포넌트까지 왔다.백그라운드에서 오래 걸리는 작업을 처리할 수 있게 해주는 컴포넌트.화면을 구현하지 않는다. 안드로이드 컴포넌트이므로 생명주기를 시스템에서 관리한다.(매니페스트에 등록해야한다. 암시적/명시적 인텐트 모두 가능)다른 앱의 서비스를 호출할

오늘은 웹뷰와 앱 간의 통신을 가능하게 해주는 JavascriptInterface에 대해 공부해보겠다. 안드로이드 컴포넌트 공부 중이다가 갑자기. 하는 이유는 이번에 맡은 업무에서 사용하게 되어서;; 주말에 벼락치기를 해야 다음주에 업체에 메일을 보낼 수 있다,,

전전글에 이은 실습 글이다. bindService() 실습을 위해 챗지피티가 알려준 음악 재생 앱을 만들어보자. 플레이 버튼을 누르면 백그라운드에서 음악이 재생되고, 스탑을 누르면 멈추는 간단한 기능을 구현해볼 것이다.import android.media.MediaPl
Inter-Process-Commutication두 개 이상의 프로세스 간 데이터 교환 및 통신 다양한 컴포넌트 간 효율적으로 데이터를 주고 받는 여러 방법이 있음binder, messenger, intent, content provider 등프로세스 간 통신 시(IP

4대 컴포넌트 중 마지막 순서로 콘텐츠 프로바이더를 알아보자.앱끼리 데이터를 연동하는 컴포넌트컴포넌트이기 때문에 매니페스트에 등록해야한다. Content Provider 사용하는 두가지 경우내 애플리케이션에서 다른 애플리케이션의 Content Provider에 접근해서

서비스 컴포넌트 연습을 하다가, 바인더를 넘어,, 메신저, AIDL을 통해 컴포넌트 간 통신하는 것을 실습해보았다. 책에서 빠르게 넘어갔던 개념들을 하나하나 파헤져보자.메시지 클래스는 다양한 컴포넌트, 프로세스 간 통신을 위해 쓰인다.주요 메소드는 아래와 같다.obta
개인프로젝트를 진행하며 가장 문제가 많았던 것이 데이터를 불러오는 시점이었다. 코루틴을 사용해서 비동기로~ 이런 말이 많았는데 정작 제대로 모르고 사용한 것 같아 파헤쳐보려한다. 스레드 코루틴을 알기 전 안드로이드 프로그램이 어떻게 실행되는지를 먼저 알아보자. UI
회사에서... PIP모드를 제공하는 웹뷰 화면을 띄워야할 일이 생겼다. 근데 iOS는 OS에서 지원이 되는데 안드로이드는 안돼서 PIP 가 가능하게 셋팅을 따로 해줘야한다. 심지어 이것도 Oreo 버전 이상부터 지원한다.한참 헤매다가 알아낸 사실 정리...우리 웹뷰는