Ich verstehe, warum es für eine Bibliothek nützlich ist, die minSdkVersion zu definieren, aber fügt eine Bibliothek mit der definierten targetSdkVersion einen beliebigen Wert hinzu?
Ich bin nicht sicher, ob es irgendwelche Probleme mit Bibliotheken geben würde, die niedrigere und höhere targetSdkVersions als das Hauptprojekt haben. Werden sie einfach ignoriert, wenn das Hauptprojekt es definiert? Oder nimm die niedrigere / höhere? Android-Apps können bei verschiedenen targetSdkVersion anders funktionieren (z. B. Marshmallow-Laufzeitberechtigungen).
Die Android-Webseite @ uses-sdk sagt, dass targetSdkVersion
Gibt die API-Ebene an, auf der die Anwendung ausgeführt werden soll.
In Bezug auf Ihre Frage gibt die Bibliothek die targetSdkVersion an, um die Android-API zu beanspruchen, unter der sie getestet wurde. Wenn die tatsächliche API auf dem Android-Gerät höher ist, bietet Android die Vorwärtskompatibilität. Sie können nach dem Text "Vorwärtskompatibilität" auf dieser Webseite für Details suchen.
Hoffentlich beantwortet das alle Ihre Fragen. Viel Spaß ...
Dokumentation bezüglich targetSDKVersion:
Eine Ganzzahl, die die API-Ebene bezeichnet, auf die die Anwendung abzielt. Wenn nicht festgelegt, entspricht der Standardwert der Angabe für minSdkVersion. Dieses Attribut informiert das System, dass Sie mit der Zielversion getestet haben, und das System sollte kein Kompatibilitätsverhalten aktivieren, um die Vorwärtskompatibilität Ihrer App mit der Zielversion aufrechtzuerhalten. Die Anwendung kann immer noch auf älteren Versionen laufen (bis zu minSdkVersion).
Eine Android-Bibliothek targetSdkVersion teilt der Host-Anwendung mit, wie sich Ihre Bibliothek verhalten soll. Der Manifest-Merger hat bestimmte Regeln zum Zusammenführen von targetSdkVersion:
Attribute im Element verwenden immer den Wert aus dem Manifest mit der höheren Priorität, außer in den folgenden Situationen:
- Wenn das Manifest mit der niedrigeren Priorität einen Wert für 'minSdkVersion' hat höher, tritt ein Fehler auf, es sei denn, Sie wenden die overrideLibrary-Zusammenführung an Regel.
- Wenn das Manifest mit der niedrigeren Priorität über einen targetSdkVersion-Wert verfügt niedriger verwendet das Merger-Tool den Wert aus der höheren Priorität Manifest, aber es fügt auch alle Systemberechtigungen hinzu, die erforderlich sind um sicherzustellen, dass die importierte Bibliothek weiterhin ordnungsgemäß funktioniert (für Fälle, in denen die höhere Android-Version zugenommen hat Berechtigungseinschränkungen). Weitere Informationen zu diesem Verhalten siehe Abschnitt über implizite Systemberechtigungen.
Tags und Links android android-library