2013-11-14 2 views
0

이것은 현재까지는 프로그래밍 문제 또는 문제가 아닙니다 (최소한 현재로서는 저에게는 적합하지 않습니다). 그러나이 문제를 논의하는 데 도움이 될 수있는 다른 문제를 방지하는 데 도움이 될 것이라고 생각했습니다.ART Virtual Machine이 기존 응용 프로그램에 어떻게 영향을 미치나요?

Dalvik에서 ART로 Nexus 5의 가상 머신을 변경 한 이후 현재 내 기기에있는 Apps로 인해 충돌이 발생했습니다. 나는 WhatsApp 어플리케이션으로 그것을 처음으로 깨달았습니다. 그것은 작동을 멈췄다.

저는 ART와의 호환성을 위해 모든 응용 프로그램을 테스트하기 시작했습니다. 지금까지 어떤 충돌도 없었지만 궁금합니다. 우리의 응용 프로그램을 ART와 더 호환되도록 만들고 더 효율적인 작업을하려면 뭔가해야 할 일이 있다면? 기존 애플리케이션에 어떤 영향을 미치나요?

+1

다운 투표를하면 그 이유를 설명해야합니다! – osayilgan

답변

3

Robert Love는 Quora 대답에 some details을 제공했습니다.

내가 본 것을 바탕으로, ART가 지원하지 않는다면 ART 비 호환성의 주요 원인은 즉석 DEX 생성이라고 생각합니다. ART가 JIT 대신 AOT (Ahead-Of-Time) 컴파일 모델로 전환하면 ART가 DEX 명령어를 생성하는 응용 프로그램을 지원하지 않을 수도 있습니다. 이것은 또한 진행중인 ART의 제한 사항 일 수 있으며, 최신 ART는 이후 업데이트에서 수정 될 것입니다.

인용 된 "개선 된 가비지 수집"이 비 호환성을 초래할 수 있다고 생각되지만 그것은 놀랄 것입니다. GC 동작을 변경하면 이전 GC 방식으로 가려진 기존 응용 프로그램 논리 결함이 노출 될 가능성이 다소 높습니다.

그리고 당연히 다른 ART 관련 문제가있을 수 있습니다.

모두 언급했듯이 ART는 진행중인 작업입니다. 내 생각 엔 Google은 WhatsApp 및 이와 유사한 파트너에게 ART 기반 런타임 환경을 제공하기 위해 대부분이를 공개했습니다. 앱 실행을 시도하고 앱이 ART에서 깨진다면 조사의 가치가있을 것입니다. 그러나 ART에서 앱이 정상적이라면 괜찮을 것입니다.

1

앱을 현재 호환 가능하게 만드는 것과 관련해서는 아무 것도 없습니다. ART는 개발중인 작품이며 일부 앱에는 문제가 있으므로 ART가 표준화되면 '간단히 작동합니다' 그 사실에 모순이 있으면 Google은 이에 대한 수정에 대한 문서를 발표 할 것입니다.