Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Android: minSdkVersion in Delphi 10.4 (https://www.delphipraxis.net/205083-android-minsdkversion-delphi-10-4-a.html)

philipp.hofmann 29. Jul 2020 20:38


Android: minSdkVersion in Delphi 10.4
 
Hi,

ich publiziere meine App auch im Amazon-Store. Eine mit Delphi 10.4 hat dabei dann eine deutlich höhere minSdkVersion als die mit Delphi 10.3.3 erstellte Version.
Es entfallen dann fast alle Amazon-Tablets, welche leider zur Zielgruppe gehören. Daher habe ich die Version jetzt wieder mit Delphi 10.3.3 erstellt.
In beiden Delphi-Versionen erzeuge ich eine 32-Bit-Version mit einem Android SDK 25.2.5. Nur der API-Level ist mit 29 in Delphi 10.4 höher.

Ich habe es jetzt noch nicht ausprobiert, wenn ich jetzt das SDK/NDK auf die in Delphi 10.3.3 genutzten Pfade umstelle, komme ich dann wieder zum alten minSdkVersion zurück oder geht dies gar nicht?

Grüße, Philipp

himitsu 29. Jul 2020 21:00

AW: Android: minSkdVersion in Delphi 10.4
 
API Level 29 = ab Android 10

https://source.android.com/setup/start/build-numbers

Michael II 29. Jul 2020 23:53

AW: Android: minSkdVersion in Delphi 10.4
 
In deinem Projektverzeichnis findest du eine Datei
AndroidManifest.template.xml

Falls durch das Hin und Her Delphi 10.3. <-> 10.4 irgendwas nicht mehr geht, dann müsstest du diese Datei (AndroidManifest.template.xml) für die von dir verwendeten Delphis sichern/anpassen...

Wenn du zum Beispiel minSdkVersion auf 26 setzen möchtest, dann könntest du die Zeile
<uses-sdk android:minSdkVersion="%minSdkVersion%">
auch hart codieren:
<uses-sdk android:minSdkVersion="26">

D 10.4. setzt momentan (10.4.P1-3) die Werte android:minSdkVersion=23, android.targetSdkVersion=29.

[ Den Wert minSdkVersion einfach nach unten zu korrigieren ist natürlich nicht sinnvoll, da D10.4. u.U. Code erzeugt, welcher von den Geräten mit SDK<23 nicht verstanden wird. ]

Die aus AndroidManifest.template.xml erstellte Manifestdatei AndroidManifest.xml findest du im Debug/Release Verzeichnis.

(Es wäre natürlich cool wenn man in Delphi 10.4 ähnlich wie in Android Studio wählen könnte, welche Android Versionen unterstützt werden sollen. Ist mir klar, dass dies aufwändig [aber wichtig] wäre...)

Im Android Studio wird dir angezeigt, wie viel % aller Menschen du erreichst. 6/Marshmallow (SDK23) (Delphi 10.4. minSdkVersion=23) bis Android 10 (SDK29) nutzen momentan 84.9% aller Menschen. Es bleiben also 15.1% aller NutzerInnen aussen vor, wenn du deine App nur mit Delphi 10.4. erstellst. (U.a. auch ich mit meinem Nexus 10 mit Android 5.1.1...). Das sind natürlich DsWerte und du kennst die Geräte deiner Kundinnen und Kunden sicher besser...

Ob die Androiden überhaupt wollen, dass du für ältere Versionen noch Programme veröffentlichst weiss ich nicht (?).

philipp.hofmann 30. Jul 2020 06:45

AW: Android: minSkdVersion in Delphi 10.4
 
Hi,

danke Michael. Das ich über das Template den Pfad hart setzen kann, war mir an der Stelle klar, aber genauso, dass ich dies natürlich nicht tun werde.
Im Template setze ich nur Permissions, die sich über die Delphi-IDE nicht setzen lassen (z.B. <uses-permission android:name="android.permission.ACCESS_BACKGROUND _LOCATION" />, welche ab Android 10 und BLE-Nutzung notwendig ist). Und v.a. nutze ich ja in beiden Delphi-Versionen über das Projekt die gleiche Template-Datei, das muss immer auf- wie abwärts kompatibel bleiben.

Deine Antwort und auch die anderen Infos im großen, weiten Web sagen alle, dass minSdkVersion von der Delphi-Version "hart" gesetzt wird.
Mir geht es hier bewusst um Amazon Fire-OS-Devices (Amazon Store). Da ist der Anteil an Geräten mit älteren Android-Versionen deutlich höher (dürfte bei rund 90% liegen),
weil Amazon nicht ganz so häufig das Fire-OS aktualisiert. Daher werde ich dann weiterhin für den Amazon-Store bei meiner Delphi 10.3.3-Version bleiben, um dort lauffähig zu bleiben.

Grüße, Philipp

Rollo62 30. Jul 2020 08:25

AW: Android: minSdkVersion in Delphi 10.4
 
Doch, die minSDK und Anderes kann man im Template ohne Probleme setzen, da spräche nichts dagegen.
Das war in früheren Versionen schonmal zwingend notwendig, weil die nächste IDE-Version noch nicht fertig war.
Man muss nur darauf achten wenn man ein Projekt für Rx10.3.3 und Rx10.4 hat, dass diese Daten entsprechend gesetzt sind.

Im Template muss das ja nur einmal gemacht werden, die bleiben normalerweise erhalten.
Wenn das Template gelöscht wird, erst dann wird das File mit den IDE-Standards wieder rückgesetzt und neu erzeugt.

Bei mir im Rx10.3.3 sind die Standards folgendermaßen gesetzt, das könnte man normalwerweise bei 19 belassen.
Code:
   
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
Zitat:

Zitat von Michael II (Beitrag 1470767)
Im Android Studio wird dir angezeigt, wie viel % aller Menschen du erreichst. 6/Marshmallow (SDK23) (Delphi 10.4. minSdkVersion=23) bis Android 10 (SDK29) nutzen momentan 84.9% aller Menschen. Es bleiben also 15.1% aller NutzerInnen aussen vor, wenn du deine App nur mit Delphi 10.4. erstellst.

Richtig, nur zwingt uns Android ja ab morgen auf die API-Level 29 mit AAB zu gehen.
Ich habe zwar schon gelesen das auch immer noch APK im Store akzeptiert würden, habe das aber nie ausprobiert.
Es könnte ja sein das es da noch zwei Wege gibt, AAB-Api-29 für neuere Phones und APK-Api-19 für ältere Phones.
Eine direkte Einstellung dafür habe ich aber nicht gefunden, ich wollte immer mal ausprobieren was der Store dazu sagt
wenn man einfach ein altes APK hochlädt.
Vielleicht meckert er das damit nur alte Geräte erreicht werden, macht es aber womöglich dann doch (man weiss ja nie ...).

philipp.hofmann 30. Jul 2020 10:16

AW: Android: minSdkVersion in Delphi 10.4
 
Ja, aber ich denke, wenn ich minSdkVersion manuell ändere, kann es sein, dass eine Funktion auf dem jeweiligen Device dann doch nicht läuft, beim Setzen der Property wird sich EMBT ja etwas gedacht haben. Daher ist für mich (bis auf Weiteres) der sichere Weg in den Amazon-Store via Delphi 10.3.3.

Rollo62 30. Jul 2020 11:15

AW: Android: minSdkVersion in Delphi 10.4
 
Kommt drauf an was Du nutzt, denke ich.
Z.B. mit Bluetooth habe ich keine Probleme bemerkt.
Die Permissons könnten schon Schwierigkeiten machen, ansonsten denke ich das es unkrritisch ist.
Ausgiebig Testen muss man sowieso.

philipp.hofmann 30. Jul 2020 12:07

AW: Android: minSdkVersion in Delphi 10.4
 
Testen ja, aber wenn ich die minSdkVersion herabsetze muss ich zusätzlich auf den Devices testen, die ich damit zusätzlich zulasse. Die hat man aber nicht immer zur Hand und das ist ein nicht unbeträchtlicher Aufwand.

Rollo62 30. Jul 2020 13:00

AW: Android: minSdkVersion in Delphi 10.4
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1470803)
Testen ja, aber wenn ich die minSdkVersion herabsetze muss ich zusätzlich auf den Devices testen, die ich damit zusätzlich zulasse. Die hat man aber nicht immer zur Hand und das ist ein nicht unbeträchtlicher Aufwand.

Das mache ich in der Regel sowieso, und mittlerweile habe ich auch ein ganzes Sammelsurium älterer und neuerer Geräte :-D

Für die Tests mache ich dann auch oft nur Stichproben, mal an dem, mal an dem anderen Gerät, ob sich was verändert hat.

Wirklich alle 100% zu Testen ist müssig, aber auch dafür versuche ich noch Lösungen per Logging o.ä. zu finden.
Es gibt ja auch Testfarmen, die aber leider nicht genau die speziellen Tests machen die ich bräuchte.
Wir arbeiten hier auch fürs Testen mit ein paar Testern zusammen, die dann eine Test-Version bekommen,
und wo ich dann eine Rückmeldung bekomme
Ansonsten wäre (und ist) das wirklich ein Wahnsinnsaufwand.

TurboMagic 30. Jul 2020 16:39

AW: Android: minSkdVersion in Delphi 10.4
 
Zitat:

Zitat von Michael II (Beitrag 1470767)
Im Android Studio wird dir angezeigt, wie viel % aller Menschen du erreichst. 6/Marshmallow (SDK23) (Delphi 10.4. minSdkVersion=23) bis Android 10 (SDK29) nutzen momentan 84.9% aller Menschen. Es bleiben also 15.1% aller NutzerInnen aussen vor, wenn du deine App nur mit Delphi 10.4. erstellst. (U.a. auch ich mit meinem Nexus 10 mit Android 5.1.1...). Das sind natürlich DsWerte und du kennst die Geräte deiner Kundinnen und Kunden sicher besser...

Ob die Androiden überhaupt wollen, dass du für ältere Versionen noch Programme veröffentlichst weiss ich nicht (?).

1. Diese Anzeige basiert vermutlich auf der Google Play Statistik. Wahrscheinlich gibt's irgend ein API zu deren Abruf

2. Naja, die wollen schon, dass die Leute auf neuere Versionen gehen. Nicht direkt hard aber durch die sich regelmäßig
ändernden Minimal Versionsanforderungen in Google Play scholl schon ein wenig Druck entstehen...
Zumal es häufig keine Sicherheitspatches für ältere OS Versionen gibt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz