Frage

Ich arbeite am Aufbau einer iPhone-app mit Titanium Mobile 1.0 und ich sehe, dass es kompiliert unten, um eine native iPhone-binary.Wie funktioniert das?Scheint, wie es dauern würde, eine Menge schweres heben, zu analysieren, den JavaScript-code und eine direkte übersetzung in Objective-C, ohne eine übergeordnete Sprache wie 280 North, Objective-J und Cappuccino.

War es hilfreich?

Lösung

Titan nimmt Ihren Javascript-code, analysiert und preprocesses und dann vor-kompiliert es in ein set von Symbolen, die aufgelöst werden, basierend auf Ihren Anwendungen Anwendungen der Titan-APIs.Aus diesem symbol der Hierarchie können wir bauen ein symbol dependency matrix, maps, um die zugrunde liegende Titan-Bibliothek Symbole zu verstehen, welche APIs (und damit verbundene Abhängigkeiten, frameworks, usw.), die speziell Ihre app benötigt.Ich bin mit dem word-symbol in einem semi-generische Möglichkeit, da es ein wenig verschiedenen Basis auf die Sprache.Im iPhone das symbol "Karten" zu einem wahren C-symbol, dass letztlich die Zuordnung zu einem zusammengestellt .o-Datei kompiliert für ARM/i386-Architekturen.Für Java-nun, es ist mehr oder weniger ein .Klasse-Datei, etc.Wenn das vordere Ende kann verstehen, Ihre Abhängigkeit von der matrix, wir rufen Sie dann den SDK-compiler (d.h.GCC für iPhone, Java für Android), um dann kompilieren Sie Ihre Anwendung in die endgültige native binary.

Also, eine einfache Möglichkeit, darüber nachzudenken ist, dass Ihr JS-code kompiliert wird fast eins zu eins in die repräsentativen Symbole in nativeland.Es gibt immer noch einen interpreter ausgeführt im interpretierten Modus, da sonst die Dinge, wie den dynamischen code nicht funktionieren würde.Jedoch, es ist viel schneller, viel kompakter, und es ist ungefähr so nah zu reinen nativen mapping, wie Sie bekommen können.

Wir sind natürlich immer noch viel Raum, um dies zu verbessern und arbeiten.Bisher in unserem neuesten 1.0 testen, es ist fast nicht zu unterscheiden von der gleichen objective-c, direkte code - (da in den meisten Fällen ist es genau zugeordnet werden).Aus einer CompSci Sicht können wir nun aber beginnen Sie zu optimieren Dinge, die ein Mensch konnte wirklich nicht leicht, die - ähnlich wie der GCC-compiler bereits heute tut.

Andere Tipps

Wie jhaynie sagte, wird die Anwendung in nativen Code kompiliert, aber es gibt immer noch einen Dolmetscher an Ort und Stelle einige Javascript ausführen, die die Anwendung ermöglicht sehr dynamisch zu sein.

Appcelerator Titan

Wenn ich meinen einfachen reichlich Code verpacken ich bekommen ~ 80MB gzip-Archiv (Original-Code ~ 1kB). Im Paket - unter anderem - Sie können meine Quelle HTML und JS-Dateien. Darüber hinaus gibt es viele Bibliotheken (ssl zum Beispiel) mit dem Paket geliefert (weil Sie Low-Level-Zugriff auf eine Menge Dinge in diesem Rahmen haben können).

ich denke, dass sie den Code nehmen und wickeln eine Art Dolmetscher Software und Bibliotheken um. In meinem Fall würde es sein, wenn ich neben einen kleinen Browser meines HTML und JavaScript-Code packen, dass meine Website nur angezeigt werden.

Wie auch immer, solange der Code funktioniert auf jedem unterstützten System auf die gleiche Art und Weise sein eine schöne Sache.

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