클릭 실행부터 화면 표시까지 겪은 일들.

1367 단어
그냥 중점 과정을 소개하는 거예요.
  • 프리 컴파일러
  • 기호화
  • 매크로 정의 확장
  • import의 전개
  • 컴파일러
  • 문법과 의미 분석
  • 기호화된 내용을 해석 트리로 전환
  • 해석 트리의 의미 분석
  • 추상 문법 트리 출력
  • 코드 생성 및 최적화
  • AST를 더 낮은 레벨의 중간 코드(LLVM 바이트)로 변환
  • 생성된 중간 코드에 최적화
  • 특정 대상 코드 생성
  • 출력 어셈블리 코드

  • 어셈블러
  • 어셈블리 코드를 기계 코드로 변환한다.일반적으로 개체 파일로 약칭되는 대상 개체 파일을 만듭니다.o 끝
  • 링크
  • 여러 대상 파일을 실행 가능한 파일로 병합(.out)
  • 실행
  • dyld실행 파일 초기화 시작
  • runtime 모든 불러오는 Class를 두루 훑어보고 상속 등급에 따라 Class+load 방법과 그Category+load 방법을 순서대로 호출한다.이로써 실행 가능한 파일과 동적 라이브러리의 모든 기호(Class,Protocol,Selector,IMP,…)는 포맷에 따라 메모리에 성공적으로 불러왔고 runtime에 의해 관리되었다. 그 다음에 runtime의 방법(동적 추가 Class, swizle 등이 적용될 수 있다)
  • dyld 호출main 함수
  • 생성UIApplication
  • 창설UIApplicationdelegate 대상
  • 켜기runloop
  • 프로그램 시작 완료, 에이전트 호출application:didFinishLaunchingWithOptions:
  • application:didFinishLaunchingWithOptions:에서 window
  • 루트 컨트롤러window 설정
  • 화면 표시

  • 참조 링크: iOS 프로그램main 함수 이전에 발생한 Mach-O 실행 파일

    좋은 웹페이지 즐겨찾기