안드로이드/안드로이드 프레임워크

Android framework StartActivity 호출 순서

냥냥냥냥냥냥 2022. 5. 9. 13:12

안녕하세요, 개발자 도도 입니다

 

먼저, 저는 현재 안드로이드 프레임워크 개발자로 재직 중 입니다

 

사실 안드로이드 앱 개발자 입장으로선 프레임워크 코드들은 당연히 되어야 하는 부분이기 때문에

굳이 안 알아도 되는 부분이기도 합니다

하지만 개발 중 동작 문제가 발생했을 때 logcat을 통해 로그를 보기 위해서라도,

혹은 좀 더 깊이 있는 안드로이드 개발자가 되기 위해서는 Android aosp 코드 부분에 대해서도

알고 있는 것이 좋을 것이라는 생각이 듭니다

 

따라서 처음 시작은 우리가 안드로이드 4대 component 중 하나인 activity를 실행할 때

앱 개발자로선 단순히startActivity를 호출해주면 되지만 그로 인해 동작이

어떤 순서로 어떻게 일어나는지에 대해 학습을 좀 해보고자 합니다

 

대충으로 나마 정리를 해봤는데 하나씩 좀 깊이 있게 좀 더 파고 들어서 포스팅 해볼 예정입니다

 

혹시나 따라해보시거나 학습을 해보실 분들의 경우

 

AOSP Framework base 코드를 받을 수 있는 주소는 아래에 있습니다

https://android.googlesource.com/platform/frameworks/base/ 

 

 

platform/frameworks/base - Git at Google

 

android.googlesource.com

 

위의 사이트에 들어가셔서,

git clone https://android.googlesource.com/platform/frameworks/base 를 입력하시면 됩니다

(저는 framework base 코드 전체를 받았는데 필요시에는 세부적으로 받으셔도 됩니다) 

window의 경우 git bash 창에 입력하시면 되고

linux의 경우 그냥 command 창에 입력하셔도 됩니다

 

입력하시고 enter 치면 아래와 같이 다운 받아집니다 (저는 윈도우 Downloads/AOSP 코드 폴더에 받았습니다)

 

yusen@DESKTOP-UIDKGCC MINGW64 ~/Downloads/AOSP 코드 (main)
$ git clone https://android.googlesource.com/platform/frameworks/base
Cloning into 'base'...
remote: Total 5115929 (delta 3454090), reused 5115929 (delta 3454090)
Receiving objects: 100% (5115929/5115929), 3.79 GiB | 26.29 MiB/s, done.
Resolving deltas: 100% (3454090/3454090), done.
Updating files: 100% (39844/39844), done.

yusen@DESKTOP-UIDKGCC MINGW64 ~/Downloads/AOSP 코드 (main)

 

 

 

 

일단 지금 시점으로는 3개의 포스팅으로 나눠져있고 순서는 아래와 같습니다

 

1) https://nyaang.tistory.com/16

 

StartActivity 호출 시 코드 진행 순서 1

더보기 같이 한 번 알아봅시다~ Activity.java ... @Override public void startActivity(Intent intent) { this.startActivity(intent, null); } ... @Override public void startActivity(Intent intent, @Nulla..

nyaang.tistory.com

 

2) https://nyaang.tistory.com/17

 

StartActivity 호출 시 코드 진행 순서 2

지난 번 포스팅에 이어서, executeRequest 메서드 안도 매우 복잡하지만 startActivity가 이루어지는 부분을 보려면 startActivityUnchecked 부분을 파보도록 하겠습니다 ActivityStarter.java #startActivityUnch..

nyaang.tistory.com

 

3) https://nyaang.tistory.com/18

 

StartActivity 호출 시 코드 진행 순서 2

지난 번 포스팅에 이어서, executeRequest 메서드 안도 매우 복잡하지만 startActivity가 이루어지는 부분을 보려면 startActivityUnchecked 부분을 파보도록 하겠습니다 ActivityStarter.java #startActivityUnch..

nyaang.tistory.com

 

앞으로도 우리가 당연하다고 여겨지는 android framework 코드를 좀 더 깊이 있게 다루어 볼 예정입니다

감사합니다