Anfängerfrage zu DK Plattform Version und ARM system image für AMD CPU

  • Hallo zusammen,



    ich habe mir vor ein paar Tagen Android Studio herunter geladen und habe mich darauf gefreut, die ersten Tutorials bearbeiten zu können. Leider musste ich schnell feststellen, dass die Installation der Entwicklungsumgebung bereits sehr viele Möglichkeiten offen lässt, in denen man sich als Neuling erst einmal zurecht finden muss.



    Hier meine Systemdaten und installierten SDK Manager Komponenten:


    • PC:

      • Betriebssystem: Microsoft Windows 7 Home Premium, Version6.1.7601 Service Pack 1 Build 7601
      • Prozessor: AMD Phenom(tm) II X4 965 Processor, 3400 MHz, 4 Kern(e), 4 logische(r) Prozessor(en)
      • 4 GB RAM
    • SDK Manager Komponenten (Auszug)

      • SDK Plattform: Android 7.0, API Level 24, Revision 2
      • SDK Plattform: Android 6.0, API Level 23, Revision 3
      • Siehe angehängter Screenshot zu den Packages
    • Auszug aus der build.gradle hinsichtlich Ziel- und Mindestversion (angelehnt an Tutorial aus http://www.programmierenlernenhq.de/)

      • compileSdkVersion 23
      • buildToolsVersion "25.0.0"
      • minSdkVersion 19
      • targetSdkVersion 23


    Hier die Punkte, die mich verwirren:


    Da ich einen AMD Prozessor nutze und nicht jedes mal mein Androidgerät zum testen meiner App anschließen will, will ich ein Android Virtual Device (AVD) auf einem ARM system image nutzen.


    Jetzt habe ich gleich mehrere Fragen:


    • Gibt es Konstellationen, in denen es Sinn macht, die SDK Plattform Androdi 7.0 UND Android 6.0 installiert zu haben? Ist dies ggf. schädlich? Ich bin jetzt davon ausgegangen, dass ich eigentlich nur eine SDK Plattform benötige, um für alle Android Versionen Apps zu schreiben. Oder benötige ich für Android 7.0 Apps die SDK Plattform Andorid 7.0, für für Android 6.0 Apps die SDK Plattform Andorid 6.0 etc?.....
    • Was ist bei Andorid 7.0 der Unterschied zwischen „ARM 64 v8a System Image“ und „ARM EABI v7a System Image“?
    • Und hier meine wichtigste Frage: Wenn ich den AVD Manager starte, wird mir immer die Meldung „Your CPU does not support required features (VT-x or SVM)“ angezeigt. Soweit mir bekannt ist, kommt das daher, dass ich einen AMD Prozessor verwende. Daher habe ich auch für Android 6.0 und 7.0 das Package „ARM EABI v7a System Image“ installiert. Trotzdem wird mir die Meldung weiterhin angezeigt. Ist dies korrekt? Oder dürfte die Meldung nicht mehr angezeigt werden?

    Viiiielen Dank schon einmal!! =) =) =)

  • Hallo FristStrike,


    Zu deiner ersten Frage:
    Die SDK ist die Bibilothek, auf die du bei der jeweiligen Anroid-Version zugreifen kannst. Dabei sollte man sich überlegen welche kleinste Android-Version man unterstützen möchte und diese sich holen (meiner Erfahrung nach ist Android 4.4 KitKat noch stark genug verbreitet um als minSDK gewählt zu werden). Als zweite Android-Version ist immer die neuste zu empfehlen, falls man nachträglich noch neue Desing-Trents implemntieren zu können.
    Als wichtiges sind dann noch die Support-Bibilotheken (momentan v4 und v7) um Vereinfachungen aus neueren Android-Versionen auch für deine minSDK verwenden zu können.


    Ich persönlich bin so faul und lasse immer alle Aktuell halten ;)


    Bei deiner zweiten Frage kann ich dir leider nicht helfen. Auf meinem PC läuft die Erste schneller, ansonsten sind mir bisher noch keine Unterschiede auf gefallen.


    Zu deiner letzten Frage:
    Diese Meldung besagt das dein CPU Virtuelle Maschinen für den Typ Intel oder AMD von irgend einem System Image in deiner heruntergeladenen Liste nicht unterstützt wird.
    Wenn der Emulator den du zum Testen verwenden willst ohne Probleme startet kannst du diesen Fehler getrost vernachlässigen.
    Andernfalls musst du in deinen Bios (oder UEFI) Einstellungen die Unterstützung für Virtuelle Maschinen aktivieren oder dir einen Intel kaufen :P

  • Zitat von FirstStrike

    Gibt es Konstellationen, in denen es Sinn macht, die SDK Plattform Androdi 7.0 UND Android 6.0 installiert zu haben? Ist dies ggf. schädlich? Ich bin jetzt davon ausgegangen, dass ich eigentlich nur eine SDK Plattform benötige, um für alle Android Versionen Apps zu schreiben. Oder benötige ich für Android 7.0 Apps die SDK Plattform Andorid 7.0, für für Android 6.0 Apps die SDK Plattform Andorid 6.0 etc?.....

    Wie mein vorredner schon sagte, jenachdem für welches android deine app geeignet sein soll, musst du das höhste wählen. Heißt, willst du für Android 7 entwickeln dann lade das SDK dafür, dass ist dann das Target SDK. Meistens willst du aber natürlich auch abwärtskompatibel entwickeln, daher musst du noch ein minSDK angeben und auch dafür eine AVD zum testen anlegen. Ich verwende als MinSDK meistens noch Android 4.0.3 also SDK version 15. Also jede Android Version hat eine sdk nummer die hier dokumentiert ist: https://developer.android.com/…/Build.VERSION_CODES.html.


    Um in Android 4 viele Framework features aus Android 7 verwenden zu können gibts die support libraries, die mein vorredner schon näher erklärt hat.


    Zitat von FirstStrike

    Was ist bei Andorid 7.0 der Unterschied zwischen „ARM 64 v8a System Image“ und „ARM EABI v7a System Image“?

    Der unterschied ist die Arm Prozessor revision. Wenn du normale android apps entwickelst ist das egal und ich empfehle dir die X86 images zu verwenden einfach weil die viel schneller auf deinem system laufen und nicht erst ARM emuliert werden muss. Wenn du aber das Android NDK verwendest, musst du wissen ob deine verwendeten Libraries für Arm v7 oder Arm v8 geeignet sind und dementsprechend dann „ARM EABI v7a System Image“ oder „ARM 64 v8a System Image“ als AVD Image wählen. Ich bin nicht sicher aber möglicherweise kann auch sein das es fälle gibt wo beim NDK die Arm version irrelevant ist. Dafür kenn ich mich aber mit dem NDK zu wenig aus.


    Zitat von FirstStrike

    Und hier meine wichtigste Frage: Wenn ich den AVD Manager starte, wird mir immer die Meldung „Your CPU does not support required features (VT-x or SVM)“ angezeigt. Soweit mir bekannt ist, kommt das daher, dass ich einen AMD Prozessor verwende. Daher habe ich auch für Android 6.0 und 7.0 das Package „ARM EABI v7a System Image“ installiert. Trotzdem wird mir die Meldung weiterhin angezeigt. Ist dies korrekt? Oder dürfte die Meldung nicht mehr angezeigt werden?

    Auch hier kenn ich mich nicht sehr gut aus, aber ich vermute es ist egal welches Android Image du verwendest. Wenn dein AMD Prozessor bestimmte features zum ARM emulieren nicht unterstützt, unterstützt er sie nicht. Solang dein AVD aber startet, kannst du das getrost ignorieren denke ich. Wenn die emulation von Android funktioniert, kannst du auch deine Apps testen. Zur not mach es wie ich oben gesagt habe, stell einfach kein ARM Android Image als AVD Image ein sondern ein X86 Image. Denn x86 braucht nicht emuliert werden und das AVD sollte ohne fehlermeldung starten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!