태스크 : 안드로이드는 앱의 경계가 없다 . 이것만 이해하면 태스크를 이해 했다고 볼수 있다는데 말보다 그림을 보는것이 이해가 쉽다
#1번 오타 개발자 입장에서 하나의 앱
위 그림에서 보이듯 우리는 패키지 하나로 하나의 앱을 만들지만
사용자의 입장에서는 개발자와다르게 여러어플간 이동이 있어도 하나의 앱으로 인식을 하게 된다
그럼 태스크의 생성과 소멸을 어떻게 이루어 질가? 아래의 그름처럼 먼저 들어간 것들이 루트 액티비티라 불리며
아래의 그림 순서대로 생성과 소멸이 이루어 진다
이해를 돕기위해 우리가 사용하는 핸드폰 화면이다 아래의 화면을 보면 홈버튼? 메뉴버튼? 어쨋든 눌럿을 떄 나오는 화면이다 지금 보면 각각의 앱들이 실행된 순서에 따라 나열 된것을 볼수 있는데 이것들도 태스크라 볼수 있다.
자 그럼 태스크를 확인 하기위해서 어떻게 해야할까??
adb명령어를 cmd 에서 사용하여 태스크를 확인 할 수 있지만 adb의 위치를 매일 찾아가 사용해야 하는 번거로움이 있기때문에 adb의 위치를 패스에 기억해주면 좋다!
위의 주소 위치값을 복사사여 > 내컴퓨터 > 속성 > 고급시스템설정 > 환경변수 > 아래그림 참조
이런식으로 패스 설정을 해준뒤에 cdm에서 실행을 해주면 된다
이렇게 실행을 하게 되면 아래의 이미지처럼 메모장(텍스트파일)파일이 생겨난것을 볼수 있는데
이 텍스트 문서로 태스크를 확인해볼수 있다!!
막상보면 영어랑 못알아 먹는 말들이 많이 써있는걸 볼수 있는데 전부다 이해는 할 수 없지만 개발자로서 확인해야 할것들은 아래 그림을 보면서 이해를 하면 될거 같다
태스크를 확인 하는 방법을 알았으니 본격적으로 태스크에 대해서 공부해보자
안드로이드는 태스크 마다 이름이 존재한다. 만일 홈에서 앱을 실행하면 해당 액티비티의 패키지명으로 태스크성생되고 액티비티는 생성된 테스크에 배치된다 .
하지만 특정앱은 특성이 너무 강해 반드시 자신의 태스크에 모여 있어야 하는 경우에는
FLAG_ACTIVITY_NEW_TASK 이걸 통해서 할수도 있다.
인텐트 플래그를 추가하고 액티비티를 실행 하게 되면 , 실행되는 액티비티는 자신의 패키지 명의 태스크에 배치 된다 만일 패키지명의 태스크가 존재 하지 않는다면 패키지명으로 새로운 태스크를 생성하고 배치한다
그리고 안드로이드는 태스크 명을 친화력(Affinity)명 이라 부른다 .
액티비티의 태스크 친화력명은 변경도 가능하다. (매니패스트에서 설정)
쉽게 이해 할려면 친화력은 집주소이다! 이렇게 집 주소를 따로 지정해줄수도 있고 집주소를 따로 정해주지 않는다면 너희 집은 패키지 이름이 너의 집주소야~!
매니패스트에 이렇게 설정을 해준뒤에 플래그를 설정해주면 친화력명으로 배치가 되는걸 볼수 있다 .
액티비티 1 과 3은 A태스크에 , 액티비티2는 B태스크에 생성이 된다
또 그것 말고도 FLAG_ACTIVITY_MULTIPLE_TASK 사용하여 레이아웃을 각각의 태스크에 담아 줄수도 있다.
(두개 같이 써야함 !! )
이런식으로 여려각각의 태스크에 저장된것을 볼수 있다 .
오늘은 여기까지 정리를 했고 마지막에 액티비티 실행모드에 잠깐 배웠는데 그건 내일 정리 하도록 하겠다~!
'아옳옳의 코딩공부 > 아옳옳의 안드로이드스튜디오' 카테고리의 다른 글
2021-03-17 안드로이드 스튜디오( 태스크3 , 사용자 이벤트 처리와 리소스 활용 ) (0) | 2021.03.17 |
---|---|
2021-03-16 안드로이드 스튜디오( 태스크2) (0) | 2021.03.16 |
2021-03-11 안드로이드 스튜디오(액티비티 생명주기) (0) | 2021.03.11 |
2021-03-10 안드로이드 스튜디오 (매니패스트에 대하여) (0) | 2021.03.10 |
2021-03-10 안드로이드 스튜디오 (액티비티 생명주기1) (0) | 2021.03.10 |