2017-09-24 37 views
1

최근 안드로이드의 자원 관리에 대해 배울 때 흥미로운 문제가 발생했습니다.앱을 시작할 때 안드로이드가 수행하는 프로세스는 무엇이며 런타임에 R 클래스와 상호 작용하는 방법은 무엇입니까?

1) 안드로이드 런타임의 내부적 관점에서, 안드로이드 OS가 설치된 애플리케이션을 시작하기 위해 취한 조치는 무엇입니까?

2) R 클래스 -R 클래스는 리소스에 대한 정적 숫자 값의 컨테이너입니다. 그러나 결국 엔 정수 집합입니다. 어떻게 안드로이드가 내부적으로 이러한 정수를 리소스에 매핑합니까?

setContentView(R.layout.activity_main); 

여기에서 무엇 setContentView()이 전달됩니다. 그러나 이것은 activity_main.xml 파일에 매핑됩니다.

같은 코드는 문자열 등의 리소스와 함께 사용됩니다. 런타임에 리소스 파일, 코드 및 R 클래스 간의 연결이 다소 혼란스러워 보입니다.

답변

0

R 클래스는 컴파일 타임에 빌드 된 리소스와 리소스 ID를 매핑하며, 여기서 xml의 리소스 ID는 모두 유지됩니다.

Android API는 런타임에서 id를 사용하여 리소스 자체를 찾습니다.