2012-12-11 2 views
0

저는 iOS 개발자이고 Android 개발을 고려 중입니다.Android 플랫폼 용 코드를 어떻게 최적화합니까?

Objective-C에서는 inline 지시어와 하위 수준 코드를 사용하여 특정 핫스팟 (예 : 이미지 처리)을 최적화하고 조정할 수있게되었습니다.

Android에서 어떻게 동일한 작업을 수행 할 수 있습니까? 대답은 Renderscript입니까? Renderscript는 모든 Android 기기와 호환됩니까?

최소한 극도로 긴밀한 루프에서 프로 시저 호출을 저장하기 위해 특정 메서드를 인라인해야한다고 지정할 수 있습니까?

답변

2

안드로이드에서 어떻게합니까?

"같은 뜻"으로 "인라인 지시문 및 저수준 코드 사용"을 의미하는 경우 일반적으로 "동일하게"하지 않습니다. Java에는 "inline 지시문"이 없습니다. NDK를 사용하여 Android 앱에 원시 코드를 추가 할 수 있습니다.

답변은 Renderscript입니까?

Renderscript Compute는 Renderscript Compute의 성능을 향상시키고 이미지 처리가 하나의 경향이있는 경향이 있습니다 (필터와 같은 일부 처리 유형의 경우).

Renderscript는 모든 Android 기기와 호환됩니까?

AFAIK은 API 레벨 11 이상 (a.k.a., Android 3.0 이상)을 실행하는 모든 Android 기기에서 사용할 수 있어야합니다.

나는 어떤 방법이 절차는 매우, 매우 꽉 루프에서 호출에 저장하는 인라인되도록 지정할 수 있습니까?

아니오. Dalvik JIT는 자체 내부 휴리스틱에 기반하여 이러한 코드를 탐지하고 최적화합니다.

+1

Renderscript Compute는 (forEach를 사용하여 커널을 통해) 병렬 작업 부하를보고있는 경우에 적합합니다. 특정 수준의 특수화/최적화가 필요한 단일 스레드 코드가있는 경우 호출 메커니즘을 통해 발생하지만 RS Compute를 사용할 수도 있습니다. 이 경우 JNI 대신 RS Compute를 사용하면 애플리케이션이 완벽하게 이식성이 유지되며 여러 대상 아키텍처에 대해 여러 개의 컴파일/재 컴파일이 필요하지 않다는 점에서 가장 큰 이점이 있습니다. –