2011-05-06 4 views

답변

4

주소 공간 레이아웃은 동일한 장치에서 실행간에 일관성이 있습니다. 주요 시스템 라이브러리는 zygote에 의해 미리로드되어 있으므로 하위 클래스가 공유 매핑으로 상속하므로 애플리케이션으로 차별화됩니다. 나는 가상 메모리 레벨에서 그것들을 다시 매핑하는 것이 가능할 것이라고 생각하지만 일종의 역동적 인 재 연결 페널티를 초래할 것이고 구현하는 것이 매우 까다 롭다.

+1

zygote가 가상 메모리에서 실행되지 않습니까? 새 프로세스가 분기 된 경우 동일한 주소 여야합니다. (공유 라이브러리가 애플리케이션의 메모리 공간에로드되었다고 가정하고 있습니까?) Android 아키텍처에 대한 자세한 정보는 어디에서 찾을 수 있습니까? – Dpp

+1

많은 주요 공유 라이브러리가 zygote에 의해 한 번로드 된 다음 응용 프로그램은 쓰기가 아닌 쓰기 페이지 (일반적으로 사용하지 않음)로 가져옵니다. 따라서 회계 이외의 다른 물리적 메모리는 들지 않습니다. 무작위 주소에 넣으려면로드 된 라이브러리 사이의 모든 깨진 연결을 수정해야합니다. 결과적으로 시간 비용뿐만 아니라 프로 시저 연결 테이블의 개인 복사본을 할당해야합니다. 새 주소로 변경합니다. –

관련 문제