2014-09-16 1 views
0

dalvikvm에서 간단한 Java 프로그램을 dex 파일로 변환하여 성공적으로 실행할 수 있습니다. 하지만 클래스 파일을 dex로 변환하여 android 응용 프로그램을 실행하려고하면 정적 메인 (String args [])이 없습니다.dalvikvm은 android 응용 프로그램의 시작점을 어떻게 이해합니까

Android 애플리케이션에 정적 main() 메소드가 없습니다.

그래서 dalvikvm은 안드로이드 응용 프로그램을 실행하기 시작합니까? 아니면 어떻게 안드로이드 응용 프로그램에서 정적 main() 메서드를 찾을 수 있습니까 ???

답변

1

Android는 앱과 함께 제공되는 AndroidManifest.xml을 기반으로 앱의 진입 점을 결정합니다. 구체적으로 말하면 안드로이드는 어떤 인 텐트가 앱으로 보내 졌는지 (실행을 위해) 결정하고 적절한 Activity를 인스턴스화하고 onCreate 메서드를 호출합니다. 이 생성 프로세스는 app_process이라는 래퍼 프로세스에 의해 감독되며 직접 dalvik을 호출하고 앱 실행 환경을 설정합니다.

Dalvik 자체는 일반적인 Java JVM과 매우 유사합니다. 따라서 Dalvik과 함께 jar 또는 dex을 실행하는 경우 일반 Java에서와 마찬가지로 main 메서드를 계속 사용할 것으로 예상됩니다.

+0

Dalvik은 JVM이 아니며 Java 바이트 코드를 실행하지 않습니다. – fadden

+0

@fadden : "정상적인 JVM처럼 작동합니다!"= "정상적인 JVM입니다" – karatedog

+0

@fadden : 죄송합니다. 나는 모바일 웹 버전을 사용하고 있습니다. – karatedog

관련 문제