[android] Dalvik과 dalvik-cache는 무엇입니까?

이것이 Android의 기본적인 질문 일 수 있다는 것을 알고 있습니다. 그러나 Dalvik과 dalvik-cache는 무엇입니까?



답변

Dalvik은 Android에서 사용하는 가상 머신입니다. 정확하지는 않지만 일반적으로 Java 가상 머신으로 간주됩니다. Java와 동일한 객체 모델을 사용하며 메모리 모델도 거의 동일합니다. 그러나 dalvik VM은 스택 기반 인 Java VM과 달리 레지스터 기반 VM입니다.

따라서 Java와는 완전히 다른 바이트 코드를 사용합니다. 그러나 Android SDK에는 Java 바이트 코드를 dalvik 바이트 코드로 변환 하는 dx 도구 가 포함되어 있으므로 Java로 Android 애플리케이션을 작성할 수 있습니다.

dalvik-cache ” 라고 말하면 일반적인 Android 기기에서 찾을 수있는 / data / dalvik-cache 디렉토리를 의미한다고 가정합니다 . Android에 애플리케이션을 설치하면 해당 애플리케이션의 dex 파일 (애플리케이션에 대한 모든 dalvik 바이트 코드를 포함하는 파일)에 대해 몇 가지 수정 및 최적화를 수행합니다. 그런 다음 결과 odex ( 최적화 된 dex ) 파일을 / data / dalvik-cache 디렉토리에 캐시 하므로 애플리케이션을로드 할 때마다 최적화 프로세스를 수행 할 필요가 없습니다.

좋은 참조


답변

Dalvik은 Android에서 Android 앱을 실행하는 Java 기반 가상 머신입니다. Dalvik-cache는 Dalvik VM의 캐시 영역이며 Dalvik VM이 앱 실행을 최적화 할 때 생성됩니다.

원하는 경우 Dalvik VM 작업 코드와 “일반”Java VM 작업 코드의 차이점에 대해 인터넷에서 더 많이 찾아 볼 수 있습니다.


답변

Dalvik 캐시는 실행 파일로 저장되는 응용 프로그램 코드의 임시 컴파일에 불과합니다. Dalvik 캐시 외부에있는 원래 애플리케이션 코드에서 동적으로 컴파일 할 수 있으므로 실제 패널티없이 Dalvik 캐시를 지울 수 있습니다.


답변

Dalvik 캐시는 더 이상 최신 Android 버전의 일부가 아닙니다. Android 4.4 KitKat이이 구성을 마지막으로 사용했습니다. 자세한 내용은 https://en.wikipedia.org/wiki/Dalvik_(software) 를 참조하십시오.


답변