안의 뷰들을 자유롭게 배치할 수 있는 레이아웃이다.여기서 framelayout의 레이아웃 width, height을 주면 가장 큰 파란 박스 안에서 요소들을 배치할 수 있다.사진에서 layout_gravity는 텍스트뷰가 차지하는 상자의 위치를 지정해준다.end|cen
📌 AdapterView 화면에서 보이지 않는 부분을 생성하지 않고 화면에서 사라진 뷰를 재사용 동적으로 동일한 뷰 들이 늘어나는 화면 구조 사용 Adapter에 따라 다양한 뷰들이 존재 Adapter에 등록된 데이터들을 보여주는 뷰가 AdapterView로 종류는
평소에는 따로 데이터 바인딩 기능을 사용하지 않았다. 데이터 바인딩은 xml 요소에 쉽게 접근하여 데이터를 변경하기 위하여 사용된다.일일이 FindViewbyId를 사용하지 않고 접근할 수 있다는 이점이 있다.build.gradle(Module)에 코틀린 익스텐션을 추
여러개의 프로젝트를 띄우고 작업할 때 가끔 그래들 버전을 정상적으로 업그레이드 해도 안되었다고 뜨는 경우가 있다.File->Invalidate Caches참고: https://oneday0012.tistory.com/263
스마트폰과 태블릿 컴퓨터에서 사용되는 오픈소스 운영체제휴머노이드 로봇플랫폼태블릿, 휴대폰, 웨어러블 시계..기타 등등에서 사용되는 소프트웨어기능적은 공통적음 존재하나, 호환되지 않는 별도의 운영체제전화, 인터넷, 카메라 등 동일기능은 존재하나 호환되지 않는다.동일한 기
일반적으로 화면 없이 동작하는 프로그램으로 백그라운드 프로세스액티비티 응용프로그램은 화면이 종료되면 동작하지 않지만 서비스는 백그라운드에서 실행 되어 화면과 상관없이 계속 동작한다.서비스 특징유저와 상호작용 불가액티비티의 생명주기에 비종속별도의 스레드에서 동작하지 않고
시스템이나 다른 앱에서 보내는 브로드 캐스트 메시지를 받아서 처리하는 것디자인 패턴 중 publish - subscribe 형태처럼 한쪽에서는 이벤트를 제공하기만 하고 한쪽에서는 이벤트를 받기만 함앱은 시스템이 부팅되거나, 기기가 충전을 시작했을 때 등 관련 Broad
간단한 데이터를 저장하기 위해 사용한다.복잡한 로직이 따로 없다UI객체 혹은 code에서 저장할 수 있다.getPreferences는 내부적으로 getSharedPreferences("액티비티 이름", mode)를 호출하는 것이라 getSharedPreferences(
NodeStreamProcessing Stream노드스트림, 프로세스 스트림을 사용하는 자바의 방식과 같음저장할 파일은 위와 같이 선언한다.filesDir은 context가 제공하는 것으로 data/data/패키지/files에 data.txt라는 이름으로 들어갈 것이다
로컬 데이터베이스를 생성하기 위해 사용관계형 데이터베이스 구조를 따름작은 규모의 안드로이드 앱에서 사용하기 적합한 데이터베이스android.database.sqlite 패키지 안에 API 명세되어있음클래스SQLiteDatabaseCRUD 담당SQLiteOpenHelpe
툴바는 UI 설계 요소로서 App bar(==Action bar)라고 부르며 버전에 따라 구현체가 상이하다.하지만 툴바는 ActionBar와 달리화면의 어떤 위치에도 배치 가능한 화면에 여러 개의 툴바 배치 가능크기에 대한 변경 가능
특정 뷰를 만들었는데 이것이 재사용성이 높은 경우 아예 custom view로 설정하여 사용하면 편리하다.기존 View 클래스를 상속받아 작성한다.Context와 AttributeSet을 매개변수로 하는 생성자를 구성한다. -> 안드로이드 스튜디오가 뷰와 상호 작용하기
Vibrator 객체를 이용하여 진동을 발생시킨다.주요 메서드로 vibrate(android.os.VibrationEffect)Vibration effect 클래스를 이용해 진동 발생VibrationEffect.createWaveform()반복하여 지동을 울릴 때 사용
사용자와의 상호작용을 위해 사용되고 크기는 전체화면이 아닌 일부 화면을 가리는 윈도우종류AlertDialogCustomDialogDatePickerDialogTimePickerDialogAlertDialog는 AlertDialog.Builder()로 다이얼로그를 생성한
사용자에게 UI 화면을 제공하는데 기본이 되는 앱 컴포넌트.하나의 앱은 앱 최초 실행시 보여지는 하나의 메인 액티비티를 가짐.반드시 모든 액티비티는 Manifest에 선언되어야 함
Install time permissions플레이스토어에 명시된 설치될 때 부여하는 권한Runtime Permissions실행시 획득해야 하는 권한코드상으로 구현Special Permissions플랫폼과 OEM만이 정의할 수 있는 권한API 마시멜로우 버전부터는 Man
관련된 실행 액티비티들을 순서대로 묶어 관리하는 것서로 다른 패키지의 액티비티가 실행되더라도 하나의 실행 흐름 안에 있도록 해준다.Task는 스택 형태로 구성된다.뒤로가기를 누르면 top activity가 destroy 되고 다음 activity가 top이 됨맨 마지막
다른 앱으로 데이터를 제공하고자 할 경우 사용한다.요청은 Content Resolver 클래스에 의해서 처리됨다양한 방법으로 데이터를 저장데이터 베이스, 파일 또는 네트워크를 통해 저장 가능ContentProvider 만드는 이유데이터 베이스 위헤 추상화 단계를 한 단
Activitiy와 마찬가지로 사용자에게 UI 화면을 제공하는데 사용하는 컴포넌트여러 개의 Fragment를 하나의 액티비티에 결합하여 다양한 화면 구성의 UI를제작할수 있음Fragment는 항상 Activity 내에서 호스팅되어야함. 액티비티 위에 올라가는 화면의 일