0. 최초 앱 실행

Posted by ITPangPang
2017. 3. 15. 23:19 안드로이드 삽질메모/앱 실행





0. 최초 앱 실행






이 글의 내용은 틀릴 수도 있고


이 내용을 몰라도 평생

안드로이드 프로그래밍을 하는데

어려움이 없을 가능성이 높습니다.



이건 과연 도움이 될까?


매일매일 새로운것을

공부할때면 새 프로젝트를

생성해서 실행시키곤 한다.


프로젝트 생성시 보이는 첫 화면

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}



매일 매일 보던 코드였는데

어느 날 문뜩

내부적으로 onCreate에 들어오기전에는

어떤작업이 이루어 지는지 궁금해졌다.


그래서 안드로이드 빌드과정에

대해 검색도 해보고 많은 글도 읽어보았다.


뭐 aapt, Compiler, aidl, dex등등 많은

자료들이 나왔다.


그런데

하나하나씩 전부 보기에는

너무 과하다는 느낌이 들어서


그냥

Activity가 실행되어 코드가 읽히기

시작하는 부분부터 onCreate() 메서드를

타기전까지 어떤 과정이 이뤄지는지만

보기로 했다.


뭐 방법은 아주 간단했다.


단순무식하게

Activity에 존재하는 메서드들을

전부 오버라이드 했다.

 


그 다음 각 메서드마다

로그를 달았다.


그 다음 앱을 실행시켜서

로그가 찍힌 순서대로

나열하고, 메서드 하나하나

공부하기 시작했다.


가장 첫번째 호출되는 메서드는


public Object getSystemService(String name)

이다.


물론

이 메서드 전에 기본생성자인

public MainActivity(){

}

에 먼저 들어온다.