Frage

Ist es möglich, eine Anwendung zu haben binary für mehrere mobile Geräte (auf BREW Plattform), anstatt in einem separaten build für jedes Gerät mit build-Skript mit der bedingten Kompilierung.

Insbesondere ist es möglich einzelne BREW-Anwendung erstellen, die für mehrere Bildschirmauflösungen?

Beachten Sie, dass das Ziel ist, einen einzigen Binär bauen.Wäre es nur um einen einzigen Codebasis, als bedingte Kompilierung und smart-build-Skript würde den trick tun.

War es hilfreich?

Lösung

Ja, es ist möglich, dass wir in der Lage waren, dies zu tun an meinem vorherigen Arbeitsplatz.Was erforderlich ist schwierig, wenn:

  1. Kompilieren Sie den kleinsten gemeinsamen Nenner BREW-version.Version 1.1 ist die Basis für alle aktuellen Handys da draußen.
  2. Ihr code muss in der Lage sein, um mehrere Auflösungen.Die Methoden zum erkennen Bildschirmbreite und-Höhe sind passend für alle Handys in meiner Erfahrung.
  3. Alle Ihre Ressourcen laden muss auf allen Geräten.Dies würde erfordern, dass Sie Ihre eigenen benutzerdefinierten image loader zu arbeiten, um bestimmte Gerät Probleme.Für den sound, ich weiß einfach MIDI Typ 0 funktioniert auf allen aber QCP sollte auch funktionieren (keine Erfahrung des selbst).
  4. Verwenden von bitmap-Schriftarten.Es sind zu viele Geräte Probleme mit Schriften zu machen, es lohnt sich mit dem system-fonts.
  5. Entwerfen Sie Ihre code-Struktur als endlicher Automat.Ich kann nicht betonen genug, dies zu tun und viele, viele Probleme nie verwirklicht wurde.
  6. Haben Problemumgehungen für jedes einzelne Gerät Problem.Dies ist der schwierige Teil!Es ist möglich, aber dieses Kaninchen Loch ist unglaublich tief...

In das Ende, die mehr komplexe und erweiterte die Anwendung, desto weniger wahrscheinlich können Sie diese route gehen.Einige Eigenschaften Gerät einfach nicht erkannt werden zuverlässig zur Laufzeit (z.B. Plattform-ID) und so mehrere builds sind dann erforderlich.

Andere Tipps

Ich schrieb eine J2ME-Brauen-Konvertierung, die verwendet wird Javaground.Es ist durchaus möglich, zu schreiben, mehrere Auflösungen, single binary code.Wir haben eine Datenbank von Gerät bugs, so dass es erkennen kann, die über die Plattform-id des Geräts und erzeugt dann eine Reihe von flags, die Marke, die Fehler markiert.Zum Beispiel die meisten (wenn nicht alle) der Motorola-Brew-Handys haben einen Fehler behoben, wo bei einem eingehenden Anruf unterbricht nicht die Anwendung, bis Sie Antwort der Anruf, so dass ich mit TAPI-monitor für einen eingehenden Anruf und erzeugen eine hideNotify Ereignis (da wir emulieren Java, obwohl der generierte code ist reines C++).Ich mache einige checks zur Laufzeit für Brew-version, und deaktivieren Sie bestimmte APIs, wenn es ist Brew 2 statt Brew 3.

3D-Typ-Spiele sind einfacher zu machen, unabhängig von der Auflösung, da Sie die Skalierung in der software.

Es gibt auch 2 separate APIs für sound, IMEDIA und ISOUNDPLAYER, ISOUNDPLAYER ist die ältere API und wird auf allen Geräten unterstützt, aber nicht über so viele Einrichtungen (Sie können nur tun, Mehrkanal-audio mit IMEDIA).Ich erstelle eine IMEDIA-Objekt und es wird Herbst zurück zu erstellen ein ISOUNDPLAYER Objekt, wenn Sie nicht bekommen kann das IMEDIA-Objekt.

Das problem mit einem Total universal build ist, dass es einen großen Unterschied in der Fähigkeit, so kann es sinnvoll sein, ein paar builds, die älteren Geräte nur unter 1MB Haufen (und ein kleiner Bildschirm Größe), und dann bekommt man eine Menge mit 6MB+ (176x204, um größer).

Mit Brauen Sie haben ein Recht konsistentes set von Schlüssel-Werte (im Gegensatz zu Java), obwohl einige der neuen Geräte sind mit touch-screen (und Sie haben, um Zeiger-Eingang) und rotierenden Bildschirmen.

Es gibt auch einige alte Nokia-Handys verwenden big-endian-Modus, was bedeutet, die Dateien sind nicht die gleiche wie die normale mod-Dateien (es sei denn, Sie wollen, schreiben Sie ein paar WIRKLICH Coole Assembler-Präfix-header, entschlüsselt die Datei)

Eine andere Idee könnte sein, zu haben, die Handys gliedert sich in 2-bis 4-Kategorien, basierend auf sagen-Bildschirm Abmessungen und erstellen Sie baut für Sie.Es ist ein sehr schneller Weg zu sein, wie werden Sie in der Lage zu unterstützen Sie alle die Handys, die Sie unterstützen möchten mit viel geringerer Komplexität.

Eine andere Sache zu sehen ist der BREW-Versionen auf Handys, die Sie starten möchten, auf.Wenn Sie sagen, BREW 1.1 ist auf einem Mobilteil, und das ist im Besitz von einem kleinen Prozentsatz in Ihrem Zielmarkt, die es nicht Sinn machen, an die Arbeit, um ihn zu unterstützen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top