minSdkVersion? targetSdkVersion?
minSdkVersion ?
애플리케이션이 실행하는 데 필요한 최소 API 레벨을 지정하는 정수입니다. Android 시스템은 시스템의 API 레벨이 지정된 값보다 낮은 경우 사용자 애플리케이션을 설치하는 것을 방지합니다.
만약, 이 값을 지정하지 않을 경우 시스템이 애플리케이션이 모든 Android 버전과 호환됨을 나타내는 기본값 '1'을 가정합니다. 애플리케이션이 모든 버전과 호환되지 않고 적절한 minSdkVersion을 선언하지 않은 경우, 지정된 API 레벨 미만의 시스템에 설치된 애플리케이션은 사용할 수 없는 API에 엑세스하려고 시도하면 동작이 중단됩니다.
targetSdkVeresion ?
애플리케이션 대상 API 레벨을 지정합니다. 설정하지 않을 경우 기본값은 minSdkVersion에 주어진 값과 동일합니다. 이 값은 개발자가 대상 버전을 테스트했고 시스템 향후 앱의 대상 버전과의 호환성을 유지하도록 호환성 동작을 활성화해서는 안됨을 시스템에 알립니다.
안드로이드는 신규 버전에 따라서 몇몇 동작과 심지어 UI까지 변경될 수 있습니다. 그러나 플랫폼의 API 레벨이 앱의 targetSdkVersion 이 선언한 버전보다 높은 경우 시스템은 앱이 예상대로 계속 작동하도록 호환성 동작을 활성화할 수 있습니다.
여기까지 안드로이드 SDK 홈페이지에 기술된 내용을 옮겨보았다.
minSdkVersion은 간단히 말하면, 개발자가 개발한 앱이 구동하기 위한 최소한의 안드로이드 플랫폼 버전이다. 즉, android:minSdkVersion = "19"로 기술되어 있다면, 개발자가 API 19 버전을 기반으로 개발했으므로, 그 이하의 단말에서는 설치할 수 없고 구동할 수도 없다는 것이다.
targetSdkVersion은 기술된 안드로이드 플랫폼 버전까지 해당 앱의 구동을 확인한 것이다. 즉, android:targetSdkVersion = "19"로 기술되어 있다면, 안드로이드 플랫폼 버전 19인 단말에서 정상적으로 구동되었다는 것을 확인하였고, 그 이상 플랫폼 단말에서는 오작동할 수 있으니 하위호환성을 동작하지 못하도록 한다.
개발자는 최신 안드로이드 버전을 확인하고 이후 신규 버전이 나왔을 때, 오작동하지 않도록 targetSdkVersion 값을 기술하여야 한다. 또한 신규 버전이 나왔을 때, 이상 동작 여부를 확인하여 targetSdkVersion 값을 변경해줘야 한다.
참고: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html?hl=ko
[우분투] 안드로이드기기 인식하도록 설정하기
우분투에서 안드로이드기기를 인식되지 않을 때 아래와 같은 방법으로 인식시킬 수 있다.
먼저, 인식시킬 안드로이드기기의 Vendor ID를 찾아보자.
http://developer.android.com/tools/device.html#VendorIds 웹페이지로 접속하여 인식시킬 안드로이드기기의 Vendor ID를 찾아서 기록합니다. 단말 제조사별 이름으로 ID를 검색하시면 됩니다.
예를 들어, 갤럭시 시리즈를 만들고 있는 삼성단말을 인식시키고자 한다면 04e8 를 기록(기억)해두시면 됩니다.
다음은 rules 파일을 생성하고 파일 권한을 변경합니다.
$ sudo cat <<EOF > /etc/udev/rules.d/51-android.rules
> SUBSYSTEM=="usb", ATTR{idVendor}=="Vendor ID", MODE="0666", GROUP="plugdev"
> EOF
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
※ Vendor ID는 처음에 확인한 안드로이드기기의 Vendor ID 값을 입력하시면 됩니다. 예를 들어, 04e8 입니다.
마지막으로 생성된 rules 파일을 시스템에 적용(?) 시킵니다.
$ sudo /etc/init.d/udev restart
이후 adb 명령어를 통해서 연결된 안드로이드기기 목록을 확인할 수 있습니다.
[참조] http://developer.android.com/tools/device.html
안드로이드 프로요 전체 소드 다운로드 및 빌드
1. 안드로이드 빌드를 위한 기본 설정
- 안드로이드 빌드 환경
OS : Ubuntu 8.04 또는 상위버전 (저는 10.04 / 10.10 에서 성공했습니다.)
JAVA Version : Java 5.0 (6.0으로 실행시 빌드가 안되네요)
자바 5.0 설치하는 방법
- 안드로이드 빌드하기 위한 apk 설치 (32bit 기준)
# sudo apt-get install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
- curl을 이용해서 repo 스크립트를 다운로드
$ mkdir ~/bin$ curl http://android.git.kernel.org/repo >~/bin/repo$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod 755 ~/bin/repo
$ cp ~/bin/repo /bin
- 안드로이드를 받기 위해 폴더를 만들고 버전을 갱신
$ mkdir ~/android_froyo
$ cd ~/android_froyo
$ repo init -u git://android.git.kernel.org/platform/manifest.git$ repo init -u https://android.googlesource.com/platform/manifest
- 안드로이드 2.2 프로요 소스 트리 다운로드
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
$ repo init -u https://android.googlesource.com/platform/manifest -b froyo
- 안드로이드 소스 다운로드
$ cd ~/android_froyo
$ repo sync
make 실행하여 전체 빌드하기
$ cd ~/android_froyo$ export ANDROID_JAVA_HOME=$JAVA_HOME (자바 경로 안잡힌 분들만)
$ make
- 전체 빌드 후 일부분을 수정하고 부분 빌드하는 방법
$ cd ~/android_froyo
$ source ./build/envsetup.sh
(터미널을 열고 한번만 실행해주면 됩니다.)
$ mmm packages/apps/Contacts
(소스의 Contacts 어플을 수정하였을 경우이며, 부분 빌드가 가능한 곳은 수정한 소스의 상위 폴더에 Android.mk 파일이 있는 위치를 예와 같이 실행하면 됩니다.)
$ make snod
(부분 빌드가 끝나면 위와 같이 실행하면 system.img 파일이 생성된다)