Layout - 엡 > 액티비티>(프래그먼트)> 뷰그룹>뷰 - 즉 , Layout은 ViewGroup에 속함 1. Constraint Layout - 안드로이드 기본 Layout - 위젯들 사이 간단한 Constrain 조건만으로 전체화면 쉽게 구성 2. LinearLayout - 위젯을 가로 또는 세로 한줄로 배치하기 위한 레이아웃 - 레이아웃 속성 중에 orientation의 가로, 세로만 변경해주면 기존에 배치되어 있떤 위젯들도 방향 바꾸기 가능 * orientation 3. FrameLayout - 입력되는 위젯의 위치를 결정하기 보다는 위젯을 중첩해서 사용하기 위한 레이아웃 - 주로 게임화면처럼 게임과 플레이어가 서로 다른 레이어에서 겹쳐 움직여야할 때 사용하면 좋음 - 레이어중 처리속도가 가장..
Fragment - Activity는 화면을 표현하기 위한 기본 단위, 하지만 많이 구성하다 보면 화면이 너무 복잡하거나 코드의 양이 너무 많아짐 - 프레그먼트? 각각의 화면을 분할해서 독립적인 코드로 구성할 수 있도록 도와주는 것, 즉 sub-activity - 프레그먼트를 사용하면 하나의 액티비티로 조건에 따라 서로 다른 화면 구성을 만들 수 있음 Fragment Start(생성주기 메소드) onAttach():- The fragment instance is associated with an activity instance.The fragment and the activity is not fully initialized. Typically you get in this method a reference..
View란? 화면을 구성하는 최소 단위의 컴포넌트 안드로이드에서는 액티비티 위에 뷰(View)들이 배치됨 View? Application에서 눈에 가시적으로 표현되는 모든 것을 가리킨다. Button, Image, Table, Label 등을 의미한다. View의 상속관계는 다음과 같은데 View 계열의 클래스는 가시적으로 보이는 것을 나타내고 ViewGroup에서는 View들을 잘 배치할 수 있는 역할을 할 수 있는 클래스를 나타낸다. Container의 역할을 한다고한 할까? View -> TextView, ImageView, SurfaceView, ProgressBar ... ViewGroup -> FrameLayout, RelativeLayout, LinearLayout, GridLayout ....
들어가기전에 View - 사용자의 인터페이스를 구성하는 클래스들의 최상위 클래스 -> View - 사용자 인터페이스 구성을 위해 사용할 수 있는 클래스들의 대표이름 (TextView, EditText, Spinner, Button ...) -> ViewGroup - ViewGroup은 다른 View를 포함하거나 구성하는 클래스들의 상위 클래스 -> View Container - 다른 View를 포함할 수 있는 컨테이너 (ListView, ExpandableView, GridView, ScrollView...) -> Layout - 다른 View를 배치할 수 있는 배치 관리자 (LinearLayout, FrameLayout, RelativeLayout ... ) View Container ScrollVie..
0. Android의 Thread 작업 - 백그라운드 작업을 위해서는 작업시점에 따라서 달라짐 - 작업을 언제 실행해야 할까 .. 1. Workmanager - WorkManager은 실행이 보장 - 장치의 상태 존중 - 구글 서비스 유무에 상관없이 동작 - 실행중? 대기중? 상태 조회 가능 - 앱의 종료 여부와 상관없이 앱의 프로세스 수명과 별도의 작업에 추천 ex) 이미지를 서버에 업로드 하거나, 데이버베이스 정보 저장 등에 사용 2. Workmanager 클래스 특징 WorkManager : 인수 / 제약조건을 가진 작업을 받아서, 큐에 추가합니다. Worker : 백그라운드 스레드에서 동작하는 doWork() 메서드 하나만 가지고 있습니다. 모든 백그라운드 태스크들은 이 메서드 안에서 수행되어야 ..
#1 버전 1 1. ViewModel을 상속받을 수 있도록 다른 class 생성하기 - 생성자? 값을 초기화할 수 있도록 도와주는것 - MutableLiveData -> livedata 박스 - counter.setValue() & counter.getValue() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package com.example.myapplication2; import android.view.View; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; public class CounterViewModel extends Vie..
1. Androuid Navigation이란?? - Fragment와 Activity간 구현을 간단하고 안정적이게 이동할 수 있도록 도와주는 Component - Navigation은 Single Activity & Multiple Fragments 구조 -> Activity를 주로 다룰때 장점이 적음 - Kotlin을 사용할것을 권장함 * Navigation의 장점 (1) Fragment Transaction 직접 다루지 않아도 됨 (2) Back/Up 동작을 기본 지원 (3) 화면 전환에 Type이 지정된 데이터 전달 가능 (4) 안드로이드 리소스로 Animation/Transition 설정가능 (5) 딥링크 지원 (6) Navigation drawer, Bottom Navigation -> Navi..
* 안드로이드 아키텍쳐 컴포넌트( Android Architecture Components) - Android Architecture Components , AAC - 앱 구조를 튼튼하고 테스트에 용이하고 유지보수성에 뛰어나게 만들어주는 라이브러리 모음 - 모듈화된 코딩을 위해 Databinding, LiveData, ViewModel 등의 라이브러리 제공 - 안드로이드 기술 스펙 관련 정보 깃허브 1. MVVM 패턴이란? - 안드로이드 개발을 시작한 사람은 처음부터 데이터를 Activity에 넣음, 하지만 시간이 지나갈수록 Activity가 점점 무거워지기 때문에 수정이나 유지 보수가 필요함 -> 그렇기 때문에 MVVM 패턴의 필요성이 대두된다. - MVVM 패턴이란? View - ViewModel -..
Thread? - 프로세서 내에서 실행되는 세부 작업 단위 - 같은 프로세스의 다른 thread에서 코드와 데이터를 공유하게 됨 - multi-threading 메인 쓰레드 (=ui 쓰레드) - 앱 실행시 기본적으로 생성되는 쓰레드 - 각종 생명주기 함수 처리 , 이벤트 처리 수행 - 보통 메인 스레드에서 5초 이상 블록되어 있으면 ANR(Application Not Responding) 발생으로 프로그램 중지여부를 결정해야 함 - 즉, 메인 쓰레드는 블록되어서는 안됨 작업 쓰레드 - 긴 처리 기산을 필요로 하는 작업 수행을 위해서 별도의 쓰레드 추가하여 사용하는것 - 안드로이드에서는 앱의 원활한 동작을 위해 메인 쓰레드에서 처리할 수 없는 일을 정의하고 있음, 예외 발생을 강제로 하여 정책을 지키도록 ..