سؤال

أنا أعمل على بناء تطبيق iPhone مع Titanium Mobile 1.0 وأرى أنه يجمع إلى ثنائي iPhone الأصلي. كيف يعمل هذا؟ يبدو أنه سيستغرق الأمر الكثير من الرفع الثقيل لتحليل رمز JavaScript والقيام بالترجمة المباشرة إلى الهدف - C دون وجود لغة مكبقة مثل 280 Aughtive-J و Cappuccino.

هل كانت مفيدة؟

المحلول

يأخذ التيتانيوم رمز JavaScript الخاص بك، والتحليلات ومعالجتها مسبقا، ثم تجميعها مسبقا إلى مجموعة من الرموز التي تم حلها بناء على تطبيقات تطبيقات APIs التيتانيوم الخاصة بك. من هذا الرمز التسلسل الهرمي، يمكننا إنشاء مصفوفة التبعية الرمزية التي تعرض لها خرائط لرموز مكتبة التيتانيوم الأساسية لفهم واجهات برمجة التطبيقات (والتبعية ذات الصلة والأطر وما إلى ذلك) وتحديد احتياجات التطبيق الخاصة بك. أنا أستخدم كلمة رمز في طريقة نصف عام لأنها مختلفة بعض الشيء بناء على اللغة. في iPhone، خرائط الرمز إلى رمز C الحقيقي الذي يخسر في نهاية المطاف إلى ملف .o المجسم الذي تم تجميعه لهيكل ARM / I386. بالنسبة ل Java، حسنا، إنه ملف. كلاسك أكثر أو أقل، وما إلى ذلك بمجرد أن تفهم الطرف الأمامي مصفوفة التبعية الخاصة بك، ثم استدعاء برنامج التحويل البرمجي SDK (أي دول مجلس التعاون الخليجي ل iPhone، Java for Android) ثم قم بتجميع التطبيق الخاص بك في النهائي ثنائي أصلي.

لذلك، طريقة بسيطة للتفكير في الأمر هي أن رمز JS الخاص بك يتم تجميعه تقريبا إلى واحد في الرموز الممثلة في Nateldand. لا يزال هناك مترجم يركض في الوضع المفسر وإلا فإن الأمور مثل الرمز الديناميكي لن يعمل. ومع ذلك، فإنه أسرع بكثير، أكثر إحكاما بكثير وهو ما يقرب من التعيين الأصلي الخالص كما يمكنك الحصول عليه.

من الواضح أنه لا يزال لدينا الكثير من الغرفة لتحسين هذا والعمل على ذلك. حتى الآن في اختبار 1.0 الأخير لدينا، لا يمكن تمييزه تقريبا عن نفس الرمز المباشر للهدف (لأنه في معظم الحالات يتم تعيينه بالضبط إلى ذلك). من وجهة نظر COMPSCI، يمكننا الآن أن نبدأ في تحسين الأشياء التي لا يمكن أن يفعلها الإنسان بسهولة ذلك - مثل مترجم دول مجلس التعاون الخليجي يفعل بالفعل اليوم.

نصائح أخرى

مثل jhaynie قال، يتم تجميع التطبيق في التعليمات البرمجية الأصلية، ولكن لا يزال هناك مترجم مفتركي لتشغيل بعض JavaScript، والذي يسمح للتطبيق أن يكون ديناميكي للغاية.

appcelerator التيتانيوم

إذا قمت بتعبئة الرمز البسيط الخاص بي، أحصل على أرشيف gzip ~ 80 ميجابايت (الكود الأصلي ~ 1 كيلو بايت). ضمن الحزمة - من بين أمور أخرى - يمكنك العثور على ملفات HTML و JS الخاصة بي المصدر. هناك أيضا الكثير من المكتبات (SSL على سبيل المثال) يتم شحنها مع الحزمة (لأنه يمكنك الوصول إلى مستوى منخفض إلى الكثير من الأشياء داخل هذا الإطار).

أعتقد أنهم يأخذون التعليمات البرمجية الخاصة بك وينفج حول بعض أنواع البرمجيات والمكتبات المترجمين. في حالتي، سيكون الأمر كما لو أنني قمت بتعبئة رمز HTML و JS بجوار متصفح صغير يعرض فقط موقعي.

كيف أبدا، طالما أن الرمز يعمل على كل نظام مدعوم بنفس الطريقة التي شيء جميل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top