Programming

    Emulator(AVD) & Physical Device

    Emulator(AVD) & Physical Device

    Emulator(AVD) & Physical Device AVD : Android Virtual Device AVD 을 사용하면, 자주 겪는 문제가 있다. 무슨 이유인지 애뮬레이터가 멈추거나, 앱을 Run 해도 뭔가 부드럽게 진행이 안되고 원인불명으로 핸드폰이 약간 망가진거 같아 보인다. 이러한 경우, 그냥 애뮬레이터를 지웠다가 재설치하는게 가장 좋다. 그러나 AVD를 지우는게 또 문제가 된 경우가 많다. 제거가 안되는 것이다. 이런 경우 어떻게 해야할까? 여러 방법을 사용해봤지만, 그냥 이 방법이 가장 빠르게 다시 원하는 작업을 할 수 있는 것 같다. 1. AVD를 직접 찾아서 지워본다. 폴더 위치를 찾아가서 지우는 것이다. 2. AVD의 창을 꺼주는 것이다. 3. 최종적으로 android , wind..

    RecyclerView

    RecyclerView

    RecyclerView RecyclerView 이해하기 재순환(재활용)뷰는 뷰 그룹의 서브 클래스 이다. 항목 뷰(item view) 라고 하는 자식 View 객체들의 리스트를 보여준다. 각 항목 View는 재순환(재활용)뷰의 행으로 나타나며 데이터 저장소에서 가져온 하나의 객체를 나타낸다. 그렇다고 재순환뷰가 많은 양의 데이터를 물고서 보여주는 것이 아니다. 한 화면에 충분히 채워질 만큼의 데이터 카드(아이템)만 보여주고, 사용자가 스크롤을 하면 그 제스처 이벤트에 맞춰서 해당되는 부분의 데이터를 끌어와서 보여준다. 이렇게 하면 화면 흐름이 부드럽게 보여지는 것이다. 즉 View라는 아이템 바구니를 그대로 두고, 데이터만 싹 바꾸는 원리라고 보면 된다. 이렇게 하면, 아래에 나오는 ViewHolder ..

    Fragment

    Fragment

    Fragment 프래그먼트에대해 알아보기전 알면 도움이 되는 것들 인스턴스란 (헷갈려? 이거봐) 싱글톤이란 (뭐지 정확히? 이거봐) Fragment 란 사전적으로는 파편이라는 뜻을 가진 단어이다. 즉, 활동에서의 파편들을 의미한다 대충 이해하고 들어가보자.안드로이드 개발자에서 공식 정의는 아래와 같다. Fragment는 앱 UI의 재사용 가능한 부분을 나타냅니다. 프래그먼트는 자체 레이아웃을 정의 및 관리하고 자체 수명 주기를 보유하며 자체 입력 이벤트를 처리할 수 있습니다. 프래그먼트는 독립적으로 존재할 수 없고 활동이나 다른 프래그먼트에서 호스팅 되어야 합니다. 프래그먼트의 뷰 계층 구조는 호스트 뷰 계층 구조의 일부가 되거나 여기에 연결됩니다. [공식문서보기] 프래그먼트를 사용하는 앱은 올바른 방법..

    JetPack

    JetPack

    Jetpack Jetpack 라이브러리는 새로운 기능과 함께 이에 대한 하휘 호환성(backward compatibility)도 제공한다. Jetpack 라이브러리를 사용하면 조건문을 사용한 API레벨 확인 코드를 작성안해도 된다. . Jetpack에 있는 많은 AndroidX 라이브러리는 이전의 지원 라이브러리를 개선한 것이다. 그래서 Jetpack을 사용하는 것이 더 좋다. 하지만 맹목적으로 무조건 Jetpack을 사용하라는 것은 아니다. 자주 사용하는 기능을 포함하긴 했으나, 모든 것을 포함하진 않기 때문이다.(더블체크가 필요하다...) AAC Android Architecture Component [공식문서 바로가기] 안드로이드 아키텍쳐 구성요소 Room [보러가기] LiveData [보러가기] ..

    app: build.gradle

    app: build.gradle

    App : Build Gradle compileSdkVersion 컴파일 SDK 버전 컴파일 SDK 버전은 코드를 빌드할 때 사용하는 버전이다. 매니페스트 파일에는 사용되지 않는다. 안드로이드의 기능들은 SDK의 클래스와 함수 형태로 사용된다. 안드로이드 스튜디오가 import문으로 참조하는 클래스나 함수가 바로 이 부분이다. 가장 최신에 가까우면서 안정된 API레벨을 선택하는 것이 좋다. minSdkVersion 최소 SDK 버전 앱을 설치하는 기준으로 삼는 최소한의 안드로이드 버전이다. 예를들어, 21버전 롤리 팝을 기준으로 한다면, 롤리팝 또는 그 이상의 버전 안드로이드 장치에서 해당 앱을 설치하고 실행할 수 있다는 의미이다. 이 보다 낮은 버전에 있는 안드로이드라면 이 앱을 설치 못한다. 보통 해..

    XML options

    XML options

    XML 상단: xmlns:tools = "http://schemas.android.com/tools" ▶ 미리보기 화면으로는 해당 텍스트가 뜨지만, Run 을 하면, 해당 글자는 뜨지 않는다.

    Life cycle 생명 주기

    Life cycle 생명 주기

    Activity Lifecycle 활동(activity)의 모든 인스턴스는 생명주기를 갖는다. 생명주기 동안의 활동의 상태는 총 4가지이다. 실행 재개 일시 중지 중단 존재하지 않음 = 소멸 resumed paused stopped nonexistent = destroyed 상태 메모리 있음? 사용자에게 보임? Foreground에서 실행? nonexistent no no no stopped yes no no paused yes yes(partialy) no resumed yes yes yes 존재하지 않음 Nonexistent onCreate() ⏬ onDestroy() ⏫ 중단 Stopped onStart() ⏬ onStop() ⏫ 일시 중지 Paused onResume() ⏬ onPause() ⏫ ..

    View

    View

    View ImageView TextView ViewGroup ImageButton Button EditText Adapter View View Pager Tool bar Relative Layout Linear Layout Grid Layout Frame Layout Constraint Layout Button 버튼 안에 이미지를 넣고 싶은 경우 android:drawable(원하는위치) = "@drawable/원하는 이미지" 이렇게 옵션을 추가하면 된다. android:drawablePadding = "Ndp" 이렇게 하여 약간의 간격을 준다. ImageButton 이미지 버튼은 버튼의 text, drawable... 등의 옵션이 필요없다. android:src = "@drawable/원하는 이미지" ..