2012-10-25 6 views
7

안드로이드 응용 프로그램에서 우아한 성능 저하 접근법을 사용할 수 있는지 궁금합니다. 예, API 15의 일부 기능을 사용하지만 지원되지 않는 경우 API 10을 대신 사용하십시오.안드로이드 응용 프로그램을 "우아하게 성능 저하"시킬 수 있습니까?

특히 안드로이드 4에서 안드로이드 2.x에서 "스 와이프 탭"을 사용하고 있지만 안드로이드 2.x에서이 기능을 지원하지 않으므로 (일반 탭 사용) 염두에 두었습니다. 그러나 질문은 다소 일반적입니다.

지원되는 장치에서 고급 기능을 사용하고 싶지만 지원되지 않는 경우 대체 기능을 사용하고 싶습니다. 필자는 안드로이드 2 프로젝트에서 안드로이드 4 라이브러리를 사용할 수있는 것 같지 않지만 안드로이드 4 프로젝트는 안드로이드 2 장치에서 실행 가능할 것입니다.

모든 솔루션? 또는 적어도이 순간에 Android 2에서 '탭 스 와이프'에 대한 모든 솔루션을 사용할 수 있습니까?

답변

5

1 부 : 최신 API의 기능을 사용하려면 매니페스트가 android : minSdkVersion을 가장 낮은 버전 (귀하의 경우 10)으로 선언하지만 android : targetSdkVersion을 API가 포함 된 최신 버전으로 설정해야합니다. 당신은 (15)를 사용하고 싶다. 코드에서 다음과 같이 할 수 있습니다.

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) { 
    // Use the new APIs 
} else { 
    // Use the old APIs 
} 

새 API 사용을 나타 내기 위해 주석을 추가해야합니다.

2 부 : 탭 스 와이프 - 나는 스 와이프 탭을 얻기 위해 Jake Wharton의 ViewPagerIndicator와 Android Support Library의 ViewPager 기능을 사용했습니다. 꽤 간단합니다. ViewPagerIndicator 페이지에서 자세한 정보가 있습니다

희망이 도움이 되었습니까?

+0

감사합니다. 그것을 확인합니다. 응용 프로그램이 Android 2에서 효과가 있다는 것을 알고 있지만 어떻게했는지 전혀 알지 못합니다. – Malis

1

이 최신 버전의 API에서만 작동하는 클래스 또는 함수 위에 @TargetApi 지시문을 사용해야합니다. 예를

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) 
void foo() { 

    /* function called only on ice cream sandwich (API level 14) and greater */ 

} 
1

를 들어 당신이 이미 답을 표시 알고 있지만, maby this 당신이 그것의 안드로이드 라이브러리를 2.x 또는 3.0에 4.x의의 functanlities을 백 포트했다 셜록 액션 바라고 도움을 줄 수 호출기, 탭 및 3.0에 도입 된 Actionbar를 포함하여