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

Support Library 와 Build Target 문의

+1 추천

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

안녕하세요. 안드로이드 어플을 개발하고 있는 학생입니다.

Build Target 선정과 Support Library(Compatibility Package : 호환성패키지) 에 대한 내용이 이해가 가지 않아서 질문 드립니다.

질문 내용이 많은데, 실제 내용에 비해서 간단히 (예/아니오) 정도로 답변할 수 있는 것들이 대부분이니 ㅠ_ㅜ

제발좀 답변 부탁드립니다. 무한 검색해 보아도 쉽게 이해가 가질 않아서요.

 

먼저 그동안 개발을 하면서 Widget, HttpURLConnection 등 안드로이드 자체의 버그로 인해서 어쩔 수 없이,

프로젝트 Build Target 을 위의 스크린샷 처럼 Android 2.2 - API 8 에 맞추어 놓고 개발하였습니다.

이는 (최소 2.2 까지라도) 하위버전을 지원 하고 싶어서 이기도 했습니다.

덕분에 그동안 상위버전 기능을 쓰고 싶으면, 상위버전 소스를 자체적으로 (복사)수정해 사용하거나 했는데요 ㅠ_ㅜ

그로 인한 문제인지 모르겠는데, 상위버전의 XML속성과 홀로테마 등은 못쓴다던지 하는 해결 힘든 문제들이 많았습니다.

Android 4.4.2 버전의 상위 기기에서 설치 후 테스트해 보면, 하위 버전의 Build Target 이어서 그런지,

위의 이미지 처럼 TimePickerDialog 등의 배경이;; 흰색이 아닌 하위 API 8 버전 대로 검정색으로 보이는 등의...

 

부끄럽지만 최근에서야 Support Library 에 대해서 알게 되었고, 

프로젝트에 사용하려고 검토중인 오픈소스,

Android 4.3+ 이상 지원의 DateTimePicker (https://github.com/flavienlaurent/datetimepicker) 가

android-support-v4 and NineOldAndroids 가 필요하다고 하여 ㅠ_ㅜ 문의 드립니다.

 

질문1) 일반적으로 안드로이드는 하위 버전의 Project Build Target 으로 개발된 어플(.apk)의 경우,

상위버전의 기기에서 설치하여 이용하여도 대부분 하위 호환성을 지원하나요?? 어찌보면 당연한 것인데 문의 드립니다.

=>

 

질문2) Support Library(Compatibility Package : 호환성패키지)

전자 : 상위버전 Build Target 으로 프로젝트 코딩 및 (.apk)생성을 했을 경우, 하위버전 기기에서도 상위버전의 해당 특정 기능을 지원하기 위해서 사용하는 것인가요?

후자 : 아니면 하위버전의 Build Target 으로 프로젝트 코딩을 하는 경우, 상위버전의 해당 특정기능을 프로젝트에 사용하기 위해서 이용하는 것인가요?

질문이유 : Build Target 을 예를 들어 Android 4.4.2 - API 19 로 해 놓고, Support Library v4 나 v7 쓰면, Android 2.2 - API 8 기기도 지원 가능한 건지 궁금해서 여쭈어 봅니다.

=>

 

질문3)  후자라면 Support Library 사용시 상위버전의 API 를 거의 모두 사용할 수 있는것 인가요??

아니면 단순히 하위 Build Target 프로젝트에서도 상위의 일부 기능을 사용할 수 있게, 일부만 지원해 주는 것인가요?

예를 들어... 진동을 울리기 위한 Vibrator 객체는 하드웨어 진동기가 있는지 여부를 확인하는 메서드 hasVibrator() 를 Android - API level 11 부터 지원하는데요, 이런 일반적인 상위 API 들도 하위 Build Target 프로젝트에서 사용 가능해 지는건지 궁금해요...

=>

 

질문4)  레퍼런스 문서를 보면 Support Library 종류가 v4 v7 v8 v13 v17 등 종류가 많습니다.

v4 의 경우 예를 들면 Android 1.6 - API 4 기기에서도 상위 API 의 기능을 사용할 수 있도록 하는 것이 맞나요?

그렇다면 v4 가 가장 방대할테고, v7는 하위버전 지원 내용이 조금 적어지니 조금 덜 할텐데...

Android 2.2 - API 8 기기 정도까지만 하위 지원하려고 한다면, v7 만 적용하면 되는것인가요??

아니면 v4, v7 둘다 적용해야 하는 것인가요??

=>

 

질문5)  앞서 안드로이드 자체의 버그 때문에 Build Target 을  Android 2.2 - API 8 에 맞추어 놓고 개발을 하였다고 했는데요... Support Library 를 사용시 하위 버전 기기에서도 특정 일부 버그들이 해결된 코드가 들어가 있는 것 인가요??

=>

 

질문6) Support Library 사용을 위해서는 예를 들어 Added in API level 11 - PopupMenu 같은 경우,

기존의 android.widget.PopupMenu 를 import 하는게 아니라,

v7 의 경우 android.support.v7.widget.PopupMenu 를 import 해서 사용해야 하는 것이죠??

 

 

마지막 질문7)

최종적으로 제 프로젝트는  Android 2.2 - API 8 까지의 하위 기기를 지원하고 싶고요,

상위 홀로 테마나... 상위의 Android 4.3.1 - API  18 버전에서 지원하는 특정 기능을 사용하려고 합니다.

이 경우  Project Build Target / Support Library / AndroidManifest 의 uses-sdk 의  minSDKVersion, targetSdkVersion, maxSdkVersion 은 뭘로 잡아야 하는 것인가요 ^ㅡ^??

전자 : Build Target 4.3.1  - API  18 Support Library v4 혹은 v7AndroidManifest 의 uses-sdk 는 minSDKVersion=8, targetSdkVersion=18, maxSdkVersion=(미지정) 이렇게 인가요??

후자 : Build Target 2.2  - API  8 Support Library v4 (최신 22.2.1) / AndroidManifest 의 uses-sdk 는 minSDKVersion=8, targetSdkVersion=8, maxSdkVersion=(미지정 혹은 적당히 4.3.1) 이렇게 인가요??

 

질문이 많았는데요 ㅠ_ㅜ

Support Library 와 Build Target 그리고 AndroidManifest 의 uses-sdk 관계가 아무리 검색해 보아도,

이해가 쉽지 않아서 이렇게 부탁드립니다.

아무쪼록 잠시만 시간을 내어 답변 좀 부탁드립니다 ㅠ_ㅜ

 

으흥 (130 포인트) 님이 2015년 8월 8일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...