마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 API 버전에대한 의미

0 추천
이클립스로 개발할때 보면 빌드타겟을 지정해줘야하는데 이게 빌드할때말고 어떤의미가있나요?

매니페스트에서 minSDK 값이상이면 잘돌아가는데 굳이 빌드타겟을 하나지정해주는게 어떤의미인지 궁금합니다

예를들어 빌드타겟을 4.0으로 잡아줘도 minSDK=4로 설정해주면 1.6이상이면 실행이잘되는현상
레드오션 (1,310 포인트) 님이 2013년 2월 20일 질문

2개의 답변

+1 추천
 
채택된 답변

간단하게 설명하자면

 

빌드타켓은 내가 사용하는 API 들이 포함된 SDK 버전이죠.

만약 ActionBar를 사용해야 한다면, 빌드타겟은 11 이상이 되어야 합니다.

 

minSDK는 어플리케이션을 실행하고자 하는  SDK 버전입니다.

내가 앱을 4.2 버전으로 개발했지만 하위 호환을 생각하여 개발하였고

하위버전에서도 문제없이 돌아간다면 minSDK를 적용하여 해당 버전 이상의 기기에서는

실행되게 하는 것입니다.

반대로 생각하면 특정 버전보다 낮은 기기에서는 실행되게 하고 싶지 않다면 제약을 거는 용도로 사용가능합니다.

원조안드로이드 (58,190 포인트) 님이 2013년 2월 20일 답변
레드오션님이 2013년 3월 26일 채택됨
0 추천
예를 들어 AlertDialog.Builder를 제시해드릴께요

해당 AlertDialog는 생성자를

AlertDialog.Builder alert = new AlertDialog.Builder(Context context);

이게 가장 일반적입니다

 

하지만

 

안드로이드 3.0버전부터 새로운 생성자가 하나 추가되었죠

AlertDialog.Builder alert = new AlertDialog.Builder(Context context, int theme);

 

첫번째 생성자는 모든 버전에서 사용가능하고

두번째 생성자는 3.0이상부터만 사용가능합니다

만약 빌드타켓을 3.0으로 하고서 2.2,2.3버전에서

new AlertDialog.Builder(Context context) 하면 잘됩니다

2.2,2.3 API버전에 없는

new AlertDialog.Builder(Context context, int theme) 하면 바로 오류터지죠

오류내용으론 해당 메서드나 없는2.2, 2.3에는 없는 값을 사용햇기때문이죠

 

이래서 developer.android.com 가시면 버전별로 사용가능한 메서드가 다 있습니다.

몇버전 부터 사용해야되는지도 다 나오고요

이래서 결국 디벨로퍼 레퍼런스를 볼줄 알아야된다는 결론이 되겟습니다.
feelsagood (160 포인트) 님이 2013년 2월 20일 답변
...