2012-05-24 12 views
13

Jestem trochę zdezorientowany, sądziłem, że rozumiem znaczenie android:minSdkVersion, android:targetSdkVersion i target we właściwościach projektu.Relacje między Androidem: minSdkVersion, android: targetSdkVersion i "target"

Teraz mam te możliwości:

android:minSdkVersion="7" 
    android:targetSdkVersion="13" 

I:

target=android-15 

w project->properties->Android->Project Build Target.

Kiedy próbuję uruchomić tę aplikację aplikacji na urządzeniu z Androidem 2.3.3 zainstalowany, widzę czerwony krzyżyk obok nazwy urządzenia, ale aplikacja działa poprawnie na to nie mniej.

Czego mi brakuje? Jeśli buduję przeciwko 15, jak to działa na Androidzie-7? To zamieszanie stwierdził po tym, jak zintegrowane AdMob w mojej aplikacji, która stwierdza, że ​​wymagają minimalnego poziomu SDK 13.

Odpowiedz

22

Aby opisać jednym na raz:

  • android: minSdkVersion pomaga Google Play aplikacje filtrujące dla użytkownika w oparciu o ich urządzenia. Na przykład, z minSdkVersion = „7”, ktoś przegląda z urządzeniem, który obsługuje tylko 6 nie będzie widać aplikacja w Google Play, a więc nie będzie go pobrać, uważają, że nie działa, i zostawić złą opinię:)

  • android: targetSdkVersion jest to sygnał do urządzenia, która wersja API aplikacja badano przeciw. Nowe zachowania są często domyślnie dostępne nowe wersje platformy dla aplikacji, których celem przynajmniej że wersja platformy. Na przykład, ustawiając targetSdkVersion do 11 lub wyższej, masz rozszerzone menu w ActionBar (dla Honeycomb i się urządzeń) zamiast przycisku „menu spuściznę wstydu”.

  • project.properties cel jest sygnałem do lokalnego systemu kompilacji w odniesieniu do których wersją platformy powinno być kompilacji kodu przed. Ogólnie najlepiej jest po prostu ustawić to na wszystko, co ustawiłeś dla targetSdkVersion.

Czego mi brakuje? Jeśli buduję przeciwko 15, jak to działa na android-7?

Android zachowuje zgodność wstecz tylko z tego powodu. Gdy używasz interfejsów API dodanych w wersji 15 platformy, oczywiście nie będą one dostępne na urządzeniu działającym na starszym urządzeniu.

Możliwe jest jednak (i ​​zachęcamy) zaprojektowanie aplikacji w taki sposób, aby korzystać z funkcji dodanych na nowych platformach, ale "ulegać takiemu zepsuciu", że aplikacja będzie nadal działać na starszych. W tym temacie znajduje się lekcja na temat treningu Android o nazwie Supporting Different Platform Versions.

1

android: targetSdkVersion = "13" wskazuje, że wniosek ten został zbudowany przez utrzymywanie SDK 13 jako cel, aby wykorzystać swoją funkcję do pełnego potencjału

android: minSdkVersion = "7" oznacza działa na sdk 7 i nowszych, ale niektóre jego funkcje mogą zostać usunięte, jeśli pewne funkcje nie są dostępne w niższym SDK. czyli (mniej niż 13) SDK

+0

Przypuszczam, że moje zamieszanie wynika z faktu, że na powyższym zrzucie ekranu znajduje się czerwony krzyż z urządzeniem 2.3.3. Sądzę, że próbuje mi powiedzieć, że aplikacja nie będzie działać na tym urządzeniu, a mimo to działa. –

+0

Czy próbowałeś ponownie uruchomić zaćmienie i emulator ... obaj z nich. ? –

+0

Yup. Zawsze to samo. –

Powiązane problemy