So installieren Sie eine Android-Anwendung unter Linux. Starten eines vollwertigen Betriebssystems auf Android. Wie sich Anbox von Shashlik unterscheidet

Es gibt viele Android-Emulatoren für alle möglichen Betriebssysteme. Die schlechtesten von ihnen ziehen kaum, die besten arbeiten schnell und lassen Sie manchmal sogar spielen. Letztere sind normalerweise nur für Windows verfügbar und funktionieren unter Linux so lala. Aber heute ist ein Feiertag auf der Linux-Straße: Wir haben eine Möglichkeit, Android-Anwendungen direkt unter Linux auszuführen, ohne Emulation, Bremsen, jeweils in einem separaten Fenster mit der Möglichkeit, die Größe zu ändern. Meet Anbox ist der beste Weg, um Android-Apps auf dem Desktop auszuführen.

Wie sich Anbox von Shashlik unterscheidet

Die Anbox-Entwickler brauchten anderthalb Jahre, um das Projekt fertigzustellen. Sie konnten die Integration von Android-Anwendungen in den Linux-Desktop erreichen, eine nahezu vollständige Kompatibilität gewährleisten und vor allem alles schnell, fehlerfrei und ohne viele Konfigurationsschritte zum Laufen bringen.

Die Android-Umgebung selbst (übrigens auf Basis des neuesten Android 7.1.1) ist hier in einer Sandbox geschlossen, gesteuert über die Namespace-Technologie, die auch Docker zugrunde liegt. Namespaces trennen die Umgebung vollständig von der Umgebung der Linux-Distribution, und alle Arbeiten mit der Hardware laufen über den anboxd-Daemon. Um Bilder von 3D-Anwendungen anzuzeigen, wird ein spezieller Übersetzer OpenGL ES → OpenGL verwendet, der vom offiziellen Android-Emulator ausgeliehen wurde.

Auch der Linux-Kernel musste modifiziert werden bzw. dem Anbox-Baukasten wurden Module mit der Implementierung von Binder und Ashmem hinzugefügt, mit deren Hilfe Systemkomponenten (IPC) in Android interagieren. Vor dem Start lädt Anbox Module in den Kernel und fügt eine udev-Regel hinzu, um die richtigen Berechtigungen auf den Geräten /dev/binder und /dev/ashmem festzulegen.

Anbox hostet jede Anwendung in einem eigenen Fenster mit einem modifizierten Hwcomposer-Compositing-Manager, den Android zum Überlagern von Grafikebenen verwendet. Hwcomposer fordert alle Schichten jeder Anwendung an und übergibt sie an Anbox, die dann einzelne Fenster für einzelne Anwendungen bildet.

All diese technischen Lösungen machen Anbox zu einem wirklich schnellen, einfach zu bedienenden und ressourceneffizienten „Emulator“. Inklusive 3D-Anwendungen.

Anbox besteht aus zwei Komponenten: Container Manager und Session Manager.

Container-Manager verwaltet Sandboxen, in denen die Android-Umgebung ausgeführt wird. Seine Aufgabe ist es, das Android-System korrekt zu starten, am Laufen zu halten und korrekt herunterzufahren.

Sitzungsmanager ist wiederum für die Android-Kommunikation innerhalb der Sandbox und mit dem Haupt-Linux-System verantwortlich. Seine Aufgabe besteht darin, auf Anfragen zum Starten von Anwendungen zu reagieren und sie an verschiedene Fenster zu verteilen.

Im Allgemeinen sieht das Starten einer Android-App mit Anbox so aus:

  1. Die Module binder und ashmem werden in den Kernel geladen.
  2. Der Container-Manager wird gestartet, der eine Sandbox mit Android bereitstellt.
  3. Der Sitzungsmanager startet, er startet die Android-Umgebung.
  4. Der Benutzer gibt einen Befehl zum Starten der Anwendung, der vom Sitzungsmanager empfangen und verarbeitet wird.
  5. Der Sitzungsmanager wartet auf einen Befehl.

Die Schritte 1-3 bereiten Anbox vor und führen es einmal aus, normalerweise beim Systemstart.

Diese Architektur ermöglicht aufgrund eines geringen (ca. 400 MB) Speicher-Overheads im Leerlaufmodus einen nahezu sofortigen Anwendungsstart.


Schlussfolgerungen

Ohne Zweifel verdient Anbox Aufmerksamkeit. Ja, es hat Kompatibilitätsprobleme, es weiß nicht, wie es mit Ihrer Kamera und Ihrem Mikrofon arbeiten soll, es stürzt ab. Aber es ist eine Alpha-Version, und für Alpha funktioniert es großartig.

Als wir mit einer Überprüfung der besten Android-Emulatoren für Linux begannen, entschieden wir uns – vielleicht nicht überraschend –, nach Emulatoren zu suchen. Wir haben jedoch schnell erkannt, dass es viele Möglichkeiten gibt, unser Ziel zu erreichen, Android-Anwendungen unter Linux auszuführen. Aus diesem Grund haben wir auch Anbox aufgenommen, obwohl es sich noch im Pre-Alpha-Stadium befindet.Anbox folgt der gleichen Philosophie wie WINE: Beide versuchen, so viele Android-Systemaufrufe wie möglich zu implementieren. Dieser Ansatz ist effizienter als die Emulation, da Ihre Anwendungen nativ ausgeführt werden. Die Hardwareanforderungen für einen Emulator sind schmerzlich klar, wenn er auf einem Computer mit wenig Speicher ausgeführt wird.

Wie wir Emulatoren getestet haben

Wir begannen mit der Installation verschiedener Lösungen, um zu sehen, auf welche Probleme Sie stoßen könnten, bevor Sie bereit sind, Anwendungen auszuführen. Beispielsweise befindet sich Anbox nach Angaben auf seiner Website im Pre-Alpha-Stadium. Als nächstes haben wir versucht, Apps direkt über Google Play und Download-Technologien von Drittanbietern zu installieren. Eine Methode besteht darin, adb auf einer laufenden Instanz zu verwenden. Wir haben auch die Leistung jedes Emulators und die erforderliche Speichermenge gemessen.

Ein weiterer Aspekt des Testens ist, warum jedes Paket entwickelt wird; zum Beispiel, um Android-Spiele auf Ihrem PC zu spielen. Übrigens ist unsere Testmaschine eine Intel Core i3 CPU mit 4 GB Speicher, was für das Ausführen von Emulatoren ziemlich einschränkend ist. Und wenn Sie einen guten Grund haben, Android-Apps auf Ihrem Linux-Rechner auszuführen, kaufen und installieren Sie mehr RAM.

Android-Emulatoren für Linux

Einige der Pakete werden als ISO-Images geliefert, die Sie auf ein USB-Flash-Laufwerk kopieren und von dort ausführen. Sie können Android-x86 auch als eigenständiges Betriebssystem mit der Grub-Datei installieren. Dieser Ansatz bedeutet, dass Sie keinen Emulator mehr vor sich haben, sondern eine ganze Distribution. Bevor Sie sich für ein bestimmtes Paket entscheiden, fragen Sie sich, was Ihr Ziel ist. Einige Pakete sind für Gamer konzipiert, während andere Ihnen beim Testen neuer Software helfen sollen. Zum Entwickeln und Testen benötigen Sie ein Paket, das nicht dasselbe Paket ist, das für die Verwendung von Android-Unterhaltungsanwendungen vorgesehen ist.

Virtuelles Android-Gerät

Android Virtual Device ist das ausgereifteste Paket für Entwicklung und Tests. Wenn Sie mit Android Studio beginnen, ist es perfekt integriert und wird natürlich zum Testen verwendet. Richtig, die neueste Version enthält einen Fehler, und Sie müssen das AVD über die Befehlszeile mit der Option -use-system-libs ausführen.

Android-Emulator für virtuelle Linux-Android-Geräte

Wenn Sie in einem virtuellen Gerät arbeiten, stehen Ihnen alle Funktionen zur Verfügung, die Sie benötigen, einschließlich GPS, Kameraemulation und Rotationssimulation. AVD funktioniert gut und durch Hinzufügen von Google Play können Sie es für normale Apps verwenden. Spiele können jedoch langsamer werden, wenn Sie ein virtuelles Gerät verwenden. Nur die modernsten CPUs ermöglichen es Ihnen, mehrere virtuelle CPUs zu betreiben. Andere, weniger anspruchsvolle Grafik- und CPU-Anwendungen funktionieren problemlos; aber im Allgemeinen ist AVD am besten geeignet, um neue Anwendungen zu testen, die Sie erstellt haben.

android-x86

Android-x86 ist nicht ganz typisch, da es als Distribution ausgelegt ist. Sie können die RPM-Datei verwenden, um sie zu installieren und Ihren Laptop als Android-Gerät auszuführen. Nach dem Neustart können Sie sofort zu Ihrem regulären Benutzerprofil wechseln und Anwendungen von Google Play installieren. Es wird ein sehr reaktionsschnelles Gerät sein, da das zugrunde liegende System kleiner ist. Und natürlich können Sie stattdessen Ihre Linux-Installation anpassen. Beim Emulieren wird es auch Ressourcenprobleme geben, wie bei anderen Vergleichsemulatoren, aber weniger stark.


Android-Emulator für Linux Android-x86

Dieses Paket eignet sich am besten für die Verwendung von Apps, wir empfehlen es jedoch zum Testen, es sei denn, Sie möchten speziell für Android_x86 entwickeln. Es gibt keine Kamerasimulation und das Umschalten des Geräts vom Profilmodus in den Querformatmodus, daher funktioniert das Testen dieser Funktionen in diesem Emulator nicht.

Anbox

Wir konnten nicht umhin, Anbox in unseren Vergleich aufzunehmen, obwohl wir verstanden haben, dass es nach hinten losgehen könnte. Was gerechtfertigt war. Anbox zum Laufen zu bringen, ist eine gemischte Sache, wie die Entwickler sagen, dass es sich in der Pre-Alpha befindet. Wenn es ausgeführt wird, ist es ein großartiges Tool für die Verwendung mit eigenständigen Anwendungen, da die Systemanforderungen etwas höher sind als die einer regulären Anwendung.


Android-Emulator für Linux Anbox

Der Installationsprozess verwendet Snap, was die Installation und Entfernung einfach macht. Denken Sie daran, dass Sie vorerst den Anbox-Installer Snap installieren müssen, der wiederum Anbox installiert. Das Installationsskript führt apt aus, das die für seine Ausführung erforderlichen Bibliotheken und Kernelmodule installiert. Nur die abenteuerlustigsten Benutzer können das Risiko eingehen, bevor die erste Beta-Version veröffentlicht wird. Beachten Sie, dass dieses Paket eher ein Container als ein Emulator ist.

Genymotion

Genymotion ist mindestens so gut wie AVD, wenn es darum geht, Hardwarefunktionen nachzuahmen, und es verbraucht die gleiche Menge an Speicher und Ressourcen auf einem Computer. Wenn Sie Gapps sofort installieren, können Sie Anwendungen für alles über Google Play installieren. Angesichts seines Ressourcenverbrauchs benötigen Sie viel Speicher, um große Anwendungen auszuführen, aber der Hauptzweck dieses Emulators besteht darin, neue Programme auf eine Weise zu testen, die keine Probleme verursacht.


Android-Emulator für Linux Genymotion

Das Unternehmen, das es erstellt, hat viele Bilder für die Emulation verschiedener Telefone vorbereitet und zählt eindeutig auf ernsthafte Entwickler seiner kostenpflichtigen Version des Emulators. Mit der kostenlosen Version kommen Sie zurecht, auch wenn Sie verschiedene Telefonpositionen simulieren müssen. Wenn Sie nur eine Anwendung auf Ihrem Desktop ausführen möchten, ist dieses Paket für diese Aufgabe wahrscheinlich überqualifiziert.

Schaschlik

Shashlik befindet sich ebenfalls in einem sehr frühen Entwicklungsstadium, was deutlich wird, wenn Sie versuchen, es zu starten. Das Installationsprogramm funktioniert standardmäßig und sogar das App-Installationsskript läuft einwandfrei. Wenn Sie versuchen, Anwendungen auszuführen, werden die Dinge komplizierter. Viele Einstellungen sind in das Startskript integriert, und es ist ein ganzes Problem, die Parameter zu finden, um es auszuführen. Auch der Support scheint in eine Sackgasse geraten zu sein. Die letzte Arbeit am Entwicklungsbaum auf Github liegt zwei Jahre zurück.


Android-Emulator für Linux Shashlik

Trotzdem sieht das Projekt interessant aus und wir hoffen, dass jemand es wieder aufgreift. Die Macken beim Hinzufügen von Apps sind verschwunden, und wenn Sie eine Android-App installieren, ist das Launcher-Symbol sofort verfügbar. Am Ende führen Sie die gewünschten Anwendungen aus, als wären sie eingebaut, obwohl sie in QEmu im Hintergrund emuliert werden.

Installieren eines Android-Emulators unter Linux

Bei der Installation von Programmen auf gängigen Distributionen verwenden wir vertraute Paketmanager wie apt, dnf usw. Manchmal erfolgt die Softwareinstallation jedoch durch einfaches Herunterladen eines Binärpakets wie Anbox. Es kommt im Snap-Format, einem von Canonical entwickelten und noch gepflegten Standard. Anbox ist ein Programm. Pre-Alpha, und selbst wenn es Ihnen gelingt, es zu installieren, ist es eine ganz andere Sache, es zum Laufen zu bringen.

Die Standardmethode zum Emulieren von Android-Geräten ist die Verwendung des Android Virtual Device-Pakets für Android Studio. Es kann auch ohne Studio ausgeführt werden, wenn Sie die Anwendung nur ausprobieren möchten. In Anbetracht der von Android Studio verbrauchten Ressourcen ist dies eine nützliche Option. Richtig, es ist am besten, den Emulator als Teil von Studio zu installieren.

Android-x86 wird als neue Distribution erstellt, wenn Sie die RPM-Datei installieren. Es fügt dem Grub-Menü einen Eintrag hinzu, sodass Sie ihn beim nächsten Booten einfach auswählen und Ihren Computer als Android-Gerät starten können. Um es parallel zu Ihren üblichen Aufgaben auszuführen, benötigen Sie VirtualBox oder QEmu. Tatsächlich verwenden viele der Emulatoren in unserem Test VirtualBox für die Virtualisierung.

Genymotion verbraucht beim Start die meisten Ressourcen. Wenn Sie jedoch VirtualBox haben, ist die Installation einfach. Um es zu installieren, laden Sie das binäre Installationsprogramm herunter und führen Sie es aus. Wenn Sie die Anwendung zum ersten Mal starten, sind noch keine virtuellen Geräte vorhanden, und Sie müssen sie aus einer umfangreichen Liste auswählen. Download und Einrichtung erfolgen automatisch.

Shashlik folgt der gleichen Philosophie wie Anbox. bezieht sich aber auf den QEmu-Emulator. Trotzdem ist es schnell und verwendet zusätzlich ein einfaches Installationsskript, um die Arc-Dateien von der Seite zu laden. Um Shashlik zu installieren, können Sie das Debian-Paket mit dem Befehl dpkg -i verwenden. Nach der Installation müssen Sie möglicherweise einige Einstellungen ändern, z. B. die GPU aktivieren. Öffnen und bearbeiten Sie dazu das Python-Skript shashlik-run.

Leistung von Android-Emulatoren

Um diese Pakete zu testen, nahmen wir einen 4-GB-Computer, der sich als alles andere als ideal herausstellte. Der Grund dafür ist, dass normalerweise jede virtuelle Maschine etwa 1 GB Arbeitsspeicher benötigt und ein voll funktionsfähiger Gnome-Desktop 1,5 GB mit einigen Benachrichtigungen und Cloud-Speichersynchronisierung benötigt. Wenn Sie Firefox starten, nähern Sie sich dem schnellen Füllen und sollten Speicher sparen.

Anbox implementiert Anrufe und ist daher ideal, um neben Ihren regulären Apps zu laufen, aber leider befindet es sich noch in einem frühen Entwicklungsstadium. Eine dauerhafte Anwendung ist nicht zu empfehlen und auch kaum möglich.

Wenn Sie Ihren PC nur als Android-Gerät betreiben müssen, verwenden Sie Android_x86, es funktioniert sehr gut.

Andere Pakete werden durch Virtualisierung ausgeführt, insbesondere von VirtualBox, was es schwierig macht, sie zusammen mit anderen Programmen auszuführen. Mit anderen Worten, wenn Sie Android-Apps entwickeln und testen möchten, besorgen Sie sich einen 16-GB-Computer und Sie können den Emulator parallel zu Ihrer IDE ausführen.

Die leistungsfähigste und integrierteste Wahl ist das Tandem aus Android Studio und AVD, wenn auf demselben Computer entwickelt und getestet wird. Um viele Funktionen wie Kamera, GPS und Telefonneigung zu simulieren, ist es praktisch, Genymotion zu verwenden, es ist ein großartiges Werkzeug. Darüber hinaus zeigt es den Bildschirm genau so an, wie er auf einem echten physischen Gerät aussieht.

Benutzerfreundlichkeit mit dem Emulator

Es gibt viele Gründe für den Einsatz von Virtualisierung. Hobbyisten benötigen möglicherweise eine Anwendung, die auf ihrem Betriebssystem nicht funktioniert, oder möchten Programme testen, die sie entwickelt haben.

Andere Anwendungsfälle finden sich in kommerziellen Servern, wo die Virtualisierung für Sicherheitszwecke und Lastausgleichsprobleme nützlich ist. In diesem Abschnitt werden wir demonstrieren, für welche Zwecke bestimmte Pakete am nützlichsten sind.

Die Pakete bieten auch eine Reihe von Funktionen, die Ihre Entscheidung beeinflussen können. Je umfangreicher diese Funktionalität ist, desto mehr steigt jedoch die Belastung Ihres Systems. Wir sehen, dass die beiden kommerziellen Lösungen die meisten Funktionen haben, aber auch die Systemressourcen am meisten beanspruchen.

In unserem Test ist die effektivste App-Launcher-Lösung Anbox. Er verzichtet auf Nachahmung von Ausrüstung und überholt alle, ist aber noch nicht für Produktionstätigkeiten ausgereift.

Anwendungsverwaltung im Emulator

Sobald Ihr Emulator gestartet ist, ist es an der Zeit, Ihre Lieblings-Apps zu installieren. Auf einem normalen Android-Gerät haben Sie Google Play oder sogar FDroid. In Emulatoren müssen Sie normalerweise Gapps installieren, um auf den Play Store zugreifen zu können. Es gibt andere Möglichkeiten, Apps zu Ihrem virtuellen Telefon hinzuzufügen. Kann auf einem virtuellen Gerät verwendet werden; es läuft auf Emulatoren und Containerlösungen wie Anbox. Android_x86 hat standardmäßig den Play Store installiert, was einen sehr schnellen Start ermöglicht.

Mit AVD können Sie installierte Anwendungen oder eine Anwendung ausführen, die Sie in Android Studio entwickeln. Das Installieren von Apps über Google Play ist in einigen Bildern enthalten, aber nicht in allen. Eine andere Möglichkeit, von apk zu installieren, besteht darin, die Datei in das Emulatorfenster zu ziehen. Dadurch wird die App sofort installiert - oder zumindest versucht, sie zu installieren. Genymotion unterstützt auch Drag-and-Drop. In jedem Fall muss apk für x86 sein. oder die Installation schlägt fehl. Außerdem benötigen Sie vor dem Start Adb.

Sie können auch versuchen, mit Shashlik zu arbeiten. Shashlik funktioniert wie ein Container, ähnlich wie Anbox. hat aber eine eingebaute Installationsfunktion. Sobald Sie die App installiert haben. es erscheint als Anwendung in Ihrer Desktop-Liste. Auf unserer Instanz des Gnome-Desktops zeigt die Eingabe von shashlik' alle installierten Anwendungen an. Sie können dann Ihre Lieblingsanwendungen direkt starten, genau wie die anderen installierten.

Emulator-Dokumentation und Support

Die Dokumentation ist normalerweise das schwache Glied bei Amateurprojekten, was bedauerlich ist, wenn die vorgeschlagenen Projekte so elegant sind. Wir hatten die gleichen Ergebnisse in unserem Vergleich, Android Virtual Device hat die gesamte Dokumentation und Unterstützung, die Sie sich wünschen können, und wenn Sie es mit Android Studio verwenden, ist es sogar noch besser. Genymotion hat eine großartige FAQ mit grundlegenden Lösungen, die Ihnen den Einstieg erleichtern, und wenn Sie ein Profi sind, gibt es eine kostenpflichtige Version.

Die Dokumentation ist erstklassig und eindeutig für aktive Entwickler gedacht. Sie ist die Beste. Android~x86 ist sehr ausgereift und hat eine fantastische Dokumentation mit einer großartigen FAQ. Community-Hilfe wird über Google Groups bereitgestellt. Sie sind aktiv und können Ihnen bei Problemen helfen. Anbox ist so neu, dass es sogar eine Dokumentation zur Installation und den ersten Schritten gibt. Das heißt, während die FAQ ziemlich selbsterklärend ist, ist die andere Dokumentation spärlich. Wir können einen solchen Mangel verzeihen, denn das Programm befindet sich im Pre-Alpha-Stadium und die meisten Funktionen sind noch nicht geschrieben, geschweige denn deren Dokumentation.

Wir hoffen, dass die Arbeit an Anbox fortgesetzt wird, da es eine effektive Möglichkeit ist, Android-Anwendungen auf Linux zu portieren. Wenn Sie zur Entwicklung beitragen möchten, besuchen Sie die Hilfeseite. Obwohl die Download-Datei für Anbox selbst nur 1,5 GB groß ist. Das einzige, was Sie berücksichtigen müssen, ist der Android-Entwicklungsbaum. Shashlik verwendet die Ark-Installation, aber das Programm ist bei weitem nicht so gut dokumentiert.

Emulator-Entwicklungsaktivität

Mit dem Programm wollen wir wissen, wie Probleme gelöst werden können. Dies erfordert Unterstützung oder Weiterentwicklung. Bei den Emulatoren in unserem Vergleich sind erwartungsgemäß Genymotion und Google-Apps am aktivsten. Genymotion hat jedoch eine solide Präsenz in der Cloud und anderen professionellen Lösungen. Daher können sich Amateure von seinem unternehmerischen Eifer zurückgewiesen fühlen. Natürlich ist auch Android Virtual Device in dieser Hinsicht stark.

Der Rest der Projekte ist weniger klar, und wir mussten ihre Aktivität auf ihren Webseiten und GitHub überprüfen.

Android_x86 hat im Juni 2017 eine neue Version veröffentlicht und möglicherweise eine weitere veröffentlicht, bevor unser Test veröffentlicht wurde. Dieses Projekt ist sehr aktiv – es ist buchstäblich nicht aufzuhalten. Für seine Entwickler und Benutzer kommt die aufregendste Zeit. Wenn Sie bei der Entwicklung helfen möchten, beachten Sie bitte, dass der Quellbaum über 10 GB groß ist. Bereiten Sie also etwas Speicherplatz vor.

Anbox arbeitet täglich und aktualisiert die Quelle wöchentlich - dieses Projekt ist wirklich auf dem Vormarsch! Es wird eine wertvolle Ergänzung der Liste der Linux-Software sein. Dies ist besonders praktisch, wenn Sie die Anwendung bereits auf Ihrem Telefon verwenden und weiterhin die vertraute Oberfläche verwenden möchten. Viele Android-Anwendungen verbrauchen sehr wenig Speicher und sind recht effizient. Wenn Sie helfen möchten, sind die Anweisungen für diejenigen, die bereits wissen, wie man .

Shashlik hat seit zwei Jahren keine offensichtlichen Aktivitäten auf seiner Webseite oder GitHub festgestellt. Leider kann es notwendig sein, den Zusammenbruch dieses Projekts einzugestehen. Der Code ist immer noch auf GitHub verfügbar, falls es eine mutige Seele mit freier Zeit und Lust gibt, die Entwicklung zu übernehmen.

Quellenverfügbarkeit

Alle Pakete in unserem Test stammen aus Open Source, daher sollte es relativ einfach sein, den Quellcode zu finden.

Aber es ist nicht immer der Fall. Alles von Google hat zwei Zweige: einen für die interne Entwicklung und einen für die Öffentlichkeit. Google tut dies, um neue Funktionen bis zur Veröffentlichung geheim zu halten. Normale Entwickler und Begabte können den öffentlichen Zweig nutzen, um Patches einzureichen. In diesem Abschnitt schauen wir uns an, welche Programmiersprachen verwendet werden und ob der Baum zum Download verfügbar ist. Wir werden auch die Größe des Quellbaums herausfinden. Denken Sie daran, dass sich der Baum für ein einzelnes Paket normalerweise über den Kernelquellen und den Entwicklungstools befindet.

Der gesamte Android-Baum ist unter www.source.android.com verfügbar. Das Paket, das das Entwickler-Toolset enthält, wiegt ungefähr 10 GB, aber es ist klug, ihm 20 GB zuzuweisen.

Dieses Paket ist Standard, aber nicht klein, stellen Sie also sicher, dass Ihr Computer über genügend Ressourcen verfügt, um es zu verwenden.

Android_x86 ist 4,5 MB groß. oben auf dem Kernelbaum. Das Projekt verwendet hauptsächlich C++ und Skripte, hauptsächlich in der Shell. Dieses Projekt ist am interessantesten, wenn Sie Android auf anderen Geräten ausführen möchten, nicht, wenn Sie mobile Apps testen möchten.

Die Anbox-Downloadquelle ist klein, nur 1,5 MB. und Anbox ist größtenteils in C++ programmiert. Wenn Sie Container-Technologie lernen möchten, können Sie einige der Aufgaben in diesem Projekt übernehmen, da sie dafür verwendet wird. Wenn Sie die wichtigsten derzeit verwendeten Technologien ernsthaft studieren möchten, graben Sie hier. Anbox wird auf GitHub gehostet.

Genymotion implementiert nativen C++-Code, und die meisten seiner Skripte verwenden Perl. Die Skripte verwenden einen modifizierten Kernel für virtuelle Maschinen. Ihr Quellcode zum Download ist 135 MB groß.

Der Quellcode für Shashlik scheint nicht mehr gepflegt zu werden, ist aber auf GitHub verfügbar. Es gibt sogar einen Fork, der im Laufe des Jahres 2017 aktualisiert wurde, damit die Hoffnung nicht nachlässt. Jemand hat ein Dockerfile erstellt, damit Sie es mit Docker-Containern ausführen können. 6 MB herunterladen. und die Programmierung erfolgte in C++ und C. Die Skripte sind größtenteils in Python geschrieben.

Schlussfolgerungen

Android hat sich zum führenden Betriebssystem für Smartphones entwickelt. Immer mehr Online-Aktivitäten haben einen mobilen Ursprung. Jedes neue Webdesign sollte für Mobilgeräte geeignet sein. Und jeder Aktionsversuch im Web oder im Programmierbereich muss dies berücksichtigen. Damit Ihre Webseite oder Ihr Programm so viele Menschen wie möglich erreicht, müssen Sie sie auf Mobilgeräte verschieben, wenn dies für Ihre Anwendung sinnvoll ist. Um dies zu erreichen, müssen Sie es entweder direkt für Mobilgeräte schreiben oder eine Lösung finden, die beide Ansätze kombiniert. In unserem Test haben wir uns angesehen, mobile Apps auf jedem Linux-Gerät verfügbar zu machen.

Wenn Sie das Programm für verschiedene Geräte in 8 mehreren Szenarien testen möchten, stehen zwei kommerzielle Lösungen zur Verfügung. Android Virtual Device und Genymotion sind den anderen weit überlegen. Für Entwickler sind sie sehr vielseitig und nützlich.

Für diejenigen, die nur eine App oder ein Spiel auf ihrem Desktop ausführen möchten, sind andere Apps besser geeignet. Anbox und Shashlik sind genau für diesen Zweck konzipiert. Leider sind sie nicht ausgereift genug, um AVD zu verwenden. Android Studio ist das Paket, das sich am besten für die Entwicklung von Apps speziell für Android eignet. Sie arbeiten bei der Entwicklung und beim Testen zusammen. Genymotion ist eine weitere sehr anständige Umgebung, um Ihre Tests zu unterstützen.

Andere Pakete sind interessanter, wenn Sie vorhandene Anwendungen verwenden. Sie können sie auch als Ausgangspunkt verwenden, wenn Sie mehr über C und C++ erfahren möchten, und vielleicht. Fahren Sie mit der Kernel-Programmierung fort.

Es ist allgemein bekannt, dass Android und Linux gewissermaßen Verwandte sind. Auf jeden Fall ist der Massenglaube genau das. In Wirklichkeit ist alles etwas komplizierter: Das beliebteste mobile Betriebssystem verwendet nur den Linux-Kernel. Und das bedeutet, dass es keine direkte Kompatibilität „out of the box“ gibt (soweit man das über beide Systeme überhaupt sagen kann). Wenn wir jedoch einen Android-Emulator für Linux benötigen, kommt der gemeinsame Ursprung ins Spiel.

In Emulatoren für Windows führen wir tatsächlich eine virtuelle Maschine mit Android aus, für deren Ausführung viele Ressourcen erforderlich sind. Im Linux-Umfeld ist die Integration theoretisch auf einer anderen Ebene möglich: Statt einer separaten „Sandbox“ startet das System eine mobile Plattform direkt auf dem aktuellen Kern, da dieser eigentlich nicht geändert werden muss. Gleichzeitig werden Anwendungen so verpackt, dass sie in separaten Fenstern nach außen angezeigt werden können. Darüber hinaus können sie sogar Hardware-3D-Beschleunigung verwenden, die das Benutzererlebnis über die Grenzen langweiliger Sandboxen hinausführt. Für den Benutzer bedeutet dies, dass Anwendungen nicht langsamer werden und niemand Systemressourcen umsonst verschwendet.

Heute gibt es mehrere Implementierungen zum Ausführen von Android-Anwendungen unter Linux (einschließlich des offiziellen Google-Emulators - The ARC Welder, der als Erweiterung für Chrome erstellt wurde). Eine vollwertige Android-Umgebung unter Linux erschien jedoch erst 2017. Dieses Wunder heißt Anbox und ist nur mit x86/64-Prozessoren kompatibel, sowie nur mit Distributionen von Ubuntu (strenge Editionen 17.04, 16.10, 16.04, 14.04), Linux Mint, Neon und Elementary.

Anbox-Installation

Anbox selbst wird als eigenständiges Snappy-Installationspaket oder als Remote-Installer in einem Repository angeboten, das durch Ausführen eines Skripts installiert werden kann. In Ubuntu wird dies beispielsweise wie folgt durchgeführt:

  1. Laden Sie das Skript herunter:

$ wget https://raw.githubusercontent.com/anbox/anbox-installer/master/installer.sh -O anbox-installer


Geben Sie dem Skript die erforderlichen Rechte, um das Programm zu installieren:

$ chmod +x anbox-installer

  1. Führen Sie das Skript aus:

$ sudo ./anbox-installer

  1. Wenn das Terminal Sie auffordert, die Konsolenzeile einzugeben "ICH STIMME ZU", Tu es.

Wenn die Installation abgeschlossen ist, starten Sie Ihren Computer neu. Höchstwahrscheinlich wird Sie das System selbst dazu auffordern. Wenn alles gut gelaufen ist, erscheint nach dem Neustart der Punkt „Anbox“ in Ihrem Menü.

Bei anderen Linux-Distributionen kann die Vorgehensweise etwas anders sein. Viele von ihnen unterstützen auch Snap-Pakete. Jedenfalls macht sich niemand die Mühe, das Paket an Ort und Stelle aus den Quellen zu kompilieren.

Wenn Sie lieber das Snap-Paket herunterladen möchten, lautet der Installationsbefehl:

sudo snap install --classic anbox-installer && anbox-installer

Geben Sie dann die Zahl 1 ein und drücken Sie die Eingabetaste. Geben Sie dann ein « ichZUSTIMMEN" und bestätigen Sie die Aktion.

Installieren von Apps in Anbox

Ein Emulator (na ja, streng genommen ein Packer, aber für die meisten ist es immer noch ein Android-Emulator für Linux) ist darauf ausgelegt, Anwendungen auszuführen. Damit? Google glaubt das nicht. Good Corporation weigert sich, Geräte zu autorisieren, wenn sie nicht zertifiziert sind. Und unsere Anbox ist überhaupt kein Gerät, also wird sie nicht einmal theoretisch die Zertifizierung bestehen.

Es gibt jedoch eine Möglichkeit, Apps auf Anbox zu installieren. Tatsache ist, dass Anbox wie jedes „eiserne“ Android-Gerät über den ADB-Debugging-Modus verfügt und zunächst aktiv ist. Es bleibt nur noch, den ADB-Befehlssatz auf dem System selbst zu installieren. Für Ubuntu kann dies mit der folgenden Terminalabfrage erfolgen:

$ sudo apt-get install android-sdk-platform-tools

Diese „Android SDK Platform Tools“ beinhalten ADB.

Danach müssen Sie nur noch die Installationsdateien der erforderlichen Anwendungen herunterladen. Dafür gibt es eine Vielzahl von Ressourcen: vom globalen apkmirror bis zum bekannten Forum der Zahlen und drei Buchstaben.

Merken Sie sich die Adresse, von der Sie Dateien herunterladen (z. B. Downloads). In Ubuntu sieht der Befehl zum Starten von Anwendungen im allgemeinen Fall so aus:

$ adb install ~/Downloads/Dateiname.apk

Anstatt Dateiname.apk Sie müssen den Namen der Anwendungsdatei ersetzen.

Daher werden Android-Anwendungen im Fenstermodus ausgeführt. Natürlich hängt die Leistung von den Systemparametern ab, aber im Allgemeinen funktionieren Anwendungen recht schnell.

Merkmale des Betriebs von Android-Anwendungen unter Anbox

Obwohl es dank des Linux-Kernels scheinbar keine Probleme geben sollte, gibt es tatsächlich viele Nuancen. Wir stellen Folgendes fest:

  • An die Steuerung muss man sich nicht gewöhnen. Mit der Esc-Taste wird der Zurück-Button simuliert und statt Gesten auf dem Bildschirm kann man die Maus verwenden.
  • Wenn die Anwendung x86/64 grundsätzlich nicht unterstützt, funktioniert sie nicht. Dies ist der Nachteil beim Verlassen einer virtuellen Maschine.
  • Die Zwischenablage ist in das Hauptbetriebssystem integriert. Leider gibt es noch keine Integration auf höherer Ebene.
  • Es gibt Rezepte, um den Play Market in das Android-Image zu integrieren. Wenn Sie ihnen folgen, können Sie mit Hilfe von Anbox eine viel funktionalere Lösung erhalten. Aber Sie können es einfacher machen und einen Drittanbieter-App-Store auf die übliche Weise installieren.

Canonical baut eine Android-Laufzeitumgebung, mit der Android-Programme auf Ubuntu ausgeführt werden können.

Android ist eine Linux-basierte Plattform von Google. Jede neue Version verbessert die Plattform und bietet mehr Optionen für Telefonhersteller und Mobilfunkbetreiber. Es gibt sogar einen Android-Port für die x86-Plattform, was einigen Leuten Hoffnung gibt, den Netbook-Markt zu übernehmen. Einige Analysten sagen jedoch, dass Android für Netbooks schlecht geeignet ist.

Google Chromebooks, ein Projekt von Intel namens Moblin, Ubuntu Netbook Remix-Projekt von Canonical, passen dank einer optimierten und benutzerfreundlichen Oberfläche und besserer Kompatibilität mit Atom-Chips besser in Netbooks.

Android verwendet den Linux-Kernel, aber es ist nicht wirklich eine Linux-Plattform. Es gibt keine einfache Möglichkeit, Java-Programme von Desktop-Linux auf Android zu portieren. Java-Programme, die für Dalvik von Android geschrieben wurden, können auch nicht auf normalen Java-Maschinen ausgeführt werden. All dies macht Android zu einer Art "Insel"-Plattform.

Canonical baut eine dedizierte Android-Laufzeitumgebung, die es ermöglicht, Android-Programme in Ubuntu genauso auszuführen wie normale, native Programme.

Einige technische Details zu dieser Android-Laufzeit wurden von den Canonical-Entwicklern Michael Frey und Debbie Beliveau bereitgestellt. Die Entwickler erstellten einen funktionierenden Prototyp und kompilierten erfolgreich Ubuntu libc anstelle von Android libc und liefen alles auf einem regulären Ubuntu-Kernel.

Es ist auch geplant, alle Android-spezifischen Komponenten herauszuschneiden, die nicht benötigt werden, um Programme in Ubuntu auszuführen.

Das komplexe Android-System für die Interprozesskommunikation namens Binder benötigt einen speziellen Treiber, um korrekt zu funktionieren. Dieser Treiber ist problematisch zu portieren und daher verwendet der Prototyp einen vorübergehenden Workaround, um Binder zu umgehen, aber die Entwickler hoffen, dass die erforderlichen Patches die Situation bald beheben und die Laufzeit noch korrekter funktioniert.

Ein weiteres wichtiges Problem für Entwickler besteht darin, dass eine Ebene benötigt wird, die der Android-Laufzeit beim Zugriff auf native Dienste und Hardware hilft. Ein Teil der Arbeit hat im libwrap-Wrapper begonnen.

Entwickler entscheiden auch, wie das Ubuntu-Dateisystem für Android-Programme verfügbar gemacht wird, damit Benutzer auf Ordner und Dateien zugreifen können.

Den Entwicklern stehen viele Einschränkungen und Probleme im Wege, und obwohl sich das Projekt noch in einem frühen Stadium befindet und noch viel zu tun ist, stellt die bereits geleistete Arbeit eine bedeutende Leistung dar.

Der Quellcode des Projekts ist noch nicht verfügbar, aber die Entwickler planen, ihn in naher Zukunft zu veröffentlichen. Sie hoffen, dass die Community dazu beitragen wird, die Entwicklung zu beschleunigen und die Dynamik zu erhöhen.

Die Android-Plattform ist für kommerzielle Softwareanbieter sehr attraktiv, und die Möglichkeit, diese Software auf einer regulären Linux-Distribution zu verwenden, kann für Benutzer sehr vorteilhaft sein.

Ich möchte in eigener Sache hinzufügen, was meiner Meinung nach hinter den Kulissen zurückbleibt. Will Canonical Android-Programme für Ubuntu Touch ausführen? Wenn ja, dann ist das die Bombe! Native, native Ubuntu Touch-Programme und die Möglichkeit, das angesammelte Gepäck von Android-Programmen zu verwenden!

Detaillierte Schritt-für-Schritt-Anleitungen zur Installation und Verwendung des VirtualBox-Emulators zur Verwendung mit Android Studio unter Ubuntu. Hauptherausforderung: Verwenden Sie ein virtuelles Gerät in VirtualBox, um Apps aus Android Studio zu entwickeln und auszuführen.

Besonders relevant ist die Verwendung der Bluetooth-Schnittstelle im VirtualBox Virtual Device, denn. Die meisten Emulatoren unterstützen es nicht. Mit dieser Anleitung können Sie eine virtuelle Maschine mit der Bluetooth-Schnittstelle des Computers verbinden.

1. Installieren Sie VirtualBox

VirtualBox kann über das "Ubuntu Software Center" installiert werden. Nach der Installation über das Terminal sollten Sie den aktuellen Benutzer zur Gruppe vboxusers hinzufügen, dies ist notwendig, um über VirtualBox Zugriff auf echte USB-Geräte zu haben:

sudo adduser Benutzername vboxusers

Benutzername ist der Name des aktuellen Ubuntu-Benutzers.

Danach sollten Sie die Benutzersitzung neu starten oder neu starten.

2. Erstellen Sie eine virtuelle VirtualBox-Maschine

Lassen Sie uns eine virtuelle Maschine mit einem beliebigen Namen erstellen, basierend auf Linux / Other Linux (32-Bit).



RAM wird 512 MB betragen, was völlig ausreicht.
Als nächstes erstellen wir eine neue virtuelle Festplatte, es ist besser, mindestens 2 GB zu verwenden, weil. das System benötigt ca. 700 MB. Datenträgertyp VDI (VirtualBox Disk Image), feste virtuelle Festplatte.

Wenn Sie eine zu kleine virtuelle Festplatte erstellen, kann ein Fehler auftreten:
Versagen, wird behandelt, indem das Volumen der virtuellen Festplatte erhöht wird.

3. Installation des Android-Betriebssystems

Bevor Sie das Android-System installieren, sollten Sie dessen Image von android-x86.org herunterladen. Dieses Handbuch verwendet das Bild

Lassen Sie uns die erstellte virtuelle Maschine starten. Danach werden Sie sofort aufgefordert, eine Bootdiskette auszuwählen, Sie sollten das heruntergeladene Android-Betriebssystem-Image im ISO-Format auswählen. Im Folgenden wird der Handlungsablauf mit Screenshots beschrieben.

Systeminstallation auswählen:




Erstellen Sie einen Abschnitt für die Installation:




Wählen Sie im folgenden Dialog „Neu“ / „Primär“, belassen Sie die volle Größe der virtuellen Festplatte, markieren Sie die Festplatte dann als „Bootfähig“, klicken Sie auf „Schreiben“ und „Beenden“:




Wählen Sie nun die erstellte Partition zur Installation des Systems aus:



Partition in ext3 formatieren:








Wir stimmen zu, den GRUB-Bootloader zu installieren:




Wir stimmen zu, Lese- / Schreibberechtigungen für das Dateisystem festzulegen, dies wird sich in Zukunft als nützlich erweisen:




Die Installation ist abgeschlossen, überprüfen Sie die Installation, indem Sie den Emulator ausführen:




Beim ersten Start müssen Sie das Android-Betriebssystem konfigurieren. Sie müssen sich nicht über Wi-Fi verbinden, geben Sie auch Ihre Google-Kontoinformationen ein.

4. Einrichten der virtuellen Maschine

Vor dem Ändern der Einstellungen muss die virtuelle Maschine ausgeschaltet werden.

Die wichtigste Einstellung, die wichtig ist, ist der Netzwerkverbindungsmodus, wir brauchen eine "Netzwerkbrücke" (Bridge). Da in meinem Fall alle Geräte über einen WLAN-Router verbunden sind, habe ich die Schnittstelle wlan0 gewählt, nicht eth0.


Im Abschnitt „System“ sollten Sie den Betriebsmodus des Cursor-Manipulators „PS / 2-Maus“ einstellen. Mit diesem Modus des Manipulators ist es bequem, mit einem PC zu arbeiten. Auf derselben Registerkarte können Sie das Gerät "Diskette" deaktivieren.

Es ist sinnvoll, den Videospeicher im Bereich „Display“ zusätzlich auf 32 MB zu vergrößern.

5. Erhalten der IP-Adresse des virtuellen Geräts

Wir starten die virtuelle Maschine und warten, bis der Download abgeschlossen ist.








Um die IP-Adresse eines virtuellen Geräts zu ermitteln, müssen Sie die Konsole darin mit der Kombination Alt + F1 starten (mit der Kombination Alt + F7 können Sie zum GUI-Modus zurückkehren). In der Konsole geben wir den Befehl ein:

Auf dem Bildschirm wird etwa Folgendes angezeigt:




Wir benötigen den Wert der IP-Adresse der eth0-Schnittstelle, über die unser Gerät in der virtuellen Maschine arbeitet.

6. Verbinden eines virtuellen Android-Geräts

Wechseln Sie im Ubuntu-Terminal in das Android SDK-Installationsverzeichnis, den Abschnitt Tools, in meinem Beispiel ist es /opt/android-sdk-linux/platform-tools/:

cd /opt/android-sdk-linux/platform-tools/

Stoppen Sie adb, dies ist nicht erforderlich, aber in einigen Fällen ist es erforderlich:

./adb kill-server

Verbinden wir das virtuelle Gerät mit der IP-Adresse, die wir kürzlich gelernt haben, und geben Port 5555 an:

./adb verbinden 192.168.1.65:5555

Die Ausgabe im Terminal sieht in etwa so aus:




In Zukunft müssen Sie nach dem Neustart des Computers oder nach dem Ändern der Sitzung erneut eine Verbindung herstellen, jedoch unter derselben IP-Adresse. Das heißt, es reicht aus, den letzten Befehl einmal auszuführen.

7. Ausführen von Anwendungen im VirtualBox-Emulator

Tatsächlich sind keine zusätzlichen Aktionen mehr erforderlich. Nach dem Start der Anwendung in Android Studio fordert Sie das System selbst auf, einen Emulator aus der Liste auszuwählen, der ein neues virtuelles Gerät enthalten wird.




Nach der Bestätigung werden Sie auf dem Gerätebildschirm aufgefordert, Anwendungen von einer neuen Quelle zu installieren:




Sie können jetzt mit VirtualBox-Geräten in Android Studio arbeiten.

8. Verwenden eines echten Bluetooth-Geräts über den VirtualBox-Emulator

Die Aufgabe ist äußerst relevant für Android-Entwickler, die Anwendungen für die Kommunikation über Bluetooth entwickeln. Um kein zweites Android-Gerät zu kaufen, kann man mit dessen virtuellem Ersatz auskommen.

Damit der Emulator Zugriff auf einen integrierten oder externen Bluetooth-Adapter hat, müssen Sie das gewünschte Gerät zur Liste der verfügbaren Geräte in den Einstellungen der virtuellen Maschine hinzufügen, dies geschieht auf der Registerkarte „USB“-Einstellungen:




Nachdem Sie auf das Symbol „Gerät hinzufügen“ (mit einem „+“-Zeichen) geklickt haben, erscheint eine Liste der verfügbaren Geräte auf dem Bildschirm, normalerweise eine Videokamera, ein Bluetooth- und Wi-Fi-Adapter, ein Kartenleser usw.

Wenn keine Geräteliste angezeigt wird, ist der aktuelle Systembenutzer höchstwahrscheinlich kein Mitglied der vboxusers-Gruppe. Wie Sie dies beheben, ist im ersten Absatz am Anfang des Artikels beschrieben.

Wählen Sie das gewünschte Gerät aus und starten Sie die virtuelle Maschine.




Die Bluetooth-Schnittstelle ist in den Einstellungen verfügbar.