전체 글256 [Android] 태스크 (Task)와 백 스택(Back Stack) 태스크 (Task)태스크는 액티비티 스택에 대한 메타 데이터와 여러 정보의 콜렉션이다. 앱의 런처 아이콘을 클릭하면 안드로이드 시스템에서 실제로 수행하는 일은 재개(resume)할 이전의 기존 작업을 찾는 것이다. 만약 어느 태스크도 찾디 못했다면 새로 시작된 액티비티를 태스크의 백스택 루트 액티비티로 설정하여 새로운 태스크가 생성된다. 백 스택 (Back Stack)먼저 안드로이드에서 Stack은 액티비티가 순서대로 저장되어 관리되는 공간을 의미한다.뒤로가기를 누를 경우 최상단의 액티비티를 제거(pop)한다.혹은 startActivity()를 통해 새로운 Activity를 최상단에 추가하여 새 Activity가 기존의 최상단 Acitivity를 가릴 경우 기존 액티비티는 일시 중지된다. 태스크 (Tas.. 2024. 12. 18. [Android] 직렬화와 Serializable, Parcelable 직렬화, 역직렬화직렬화(Serialization) : 객체를 바이트 단위의 연속적 데이터(바이트 스트림)로 변경하는 작업역직렬화(Deserialization) : 바이트 스트림을 원래 객체로 변환하는 작업 왜 직렬화가 필요한가 ?데이터를 서버 등으로부터 받아올 때 보통 JSON, XML 등의 형태가 전달되곤 합니다.이 때, 이를 역직렬화하여 바로 기존 객체처럼 쓸 수 있게하거나, JVM 메모리에만 상주되어있던 그런 객체들을 영속화 (Persistence)시켜 시스템이 종료되더라도 없어지지 않게끔 처리해야할 때(Shared Prefrence / DB 등) 직렬화를 사용합니다. + Android Intent 통신 과정에서 직렬화안드로이드의 경우 Intent를 통해 객체를 주고 받습니다.Intent는 프로세.. 2024. 12. 17. [Java] Weak Refrence란? WeakRefrence에 대한 이해를 돕기 위해 GC 동작에 대해 간략히 알아보자 GC(Garbage Collection) 동작GC(Garbase Collection)는 프로그래머가 명시적으로 메모리를 할당하거나 해제하지 않아도 자동으로 메모리 관리를 제공해주는 편의성을 가지게 해준다. GC의 동작은 매우 다양하지만 아래 핵심 동작은 모든 GC 알고리즘에서 공통적으로 이뤄지고 있는 내용이다.(1) Heap 내의 객체 중 사용되지 않는 객체를 찾는다 (2) 사용되지 않는 객체의 Memory를 회수한다.이에 좀 더 나아가면 GC는 객체가 가비지인지 아닌지를 판별하기 위해서 rechability라는 개념을 사용한다.어떤 객체가 참조되고 있는 곳이 한곳이라도 있을 경우 rechable로 구별되며, 반대로 참조되.. 2024. 12. 17. [Android] SAA(Single Activity Architecture)란? SAA(Single Activity Architecture)SAA는 Google I/O 2018 에서 언급된 내용으로,하나의 또는 적은 Activity만을 사용하고 나머지 화면을 Fragment로 구성한 구조로, Jetpack Navigation과 함께 사용되는 구조이다. Jetpack Navigation에 대해 자세한 내용을 알고싶다면 아래 링크를 참고하자https://jtm0609.tistory.com/114 [Android] Jetpack Navigation Component 딥 다이브Navigation ComponentNavigation Component는 안드로이드 JetPack 라이브러리 중 하나로 사용자의 상호작용에 따라 화면간의 이동을 구현하는데 도움을 준다.이를 사용하면 개발자를 대신해.. 2024. 12. 17. [Android] 왜 Activity 대신 Fragment를 사용해야할까? 유연한 UX/UI 구현태블릿과 같은 큰화면에서 UX/UI를 역동적이고 유연하게 구현할 수 있다.따라서 복잡한 화면 구성에 있어 Fragment를 자주 사용한다. 재사용성 증가View 또는 비즈니스 로직을 Fragment 단위로 분리할 수 있다.아키텍처 원칙에서 가장 중요한 원칙인 관심사 분리를 통해 의존성을 분리하고 독립성을 키우게 되는 것이다.이러한 부분을 잘 이용하면 Fragment로 구현한 내용을 다른 Activity 또는 Fragment에서 재사용할 수 있다. 퍼포먼스Acivitiy는 무겁다. 왜 무거운 것일까? Actiivity의 경우 항상 시스템이 개입하며, 새로운 Acitivity의 생성, 전환, 소멸 등의 과정은 상호작용하는 Acitivity를 직접적으로 참조하지 않고 Intent와 Sys.. 2024. 12. 16. [Android] Fragment Manager Fragment 이동 처리 관련해서는 Jetpack의 Navigation Component를 쓰고 있지만, FragmentMananger의 동작 과정에 대해서 잘 이해하고 있지 못한 것 같아 포스팅을 해본다. FragmentManagerFragmentManager는 앱 프래그먼트에서 프래그먼트를 추가, 삭제, 교체하고 백스택에 추가하는 작업을 실행하는 클래스이다.Activity 또는 Fragment에서 엑세스 할 수 있으며, FragmentActivity 및 서브 클래스에서 접근이 가능하다.getSupportFragmentManager(), childFragmentManager(), parentFragmentManager() FragmentManager 접근Activity에서 접근 방법FragmentaA.. 2024. 12. 16. 이전 1 ··· 3 4 5 6 7 8 9 ··· 43 다음