ما لا يمكنك أن تفعل على Dalvik VM (الروبوت VM) التي يمكنك في الشمس VM ؟

StackOverflow https://stackoverflow.com/questions/230193

  •  04-07-2019
  •  | 
  •  

سؤال

وأنا أعلم أنه يمكنك تشغيل تقريبا جميع جاوة في Dalvik هو VM يمكنك في جافا VM ولكن القيود المفروضة ليست واضحة جدا.وقد أي شخص يعمل في أي العقبات الرئيسية?أي المكتبات الكبرى وجود مشكلة ؟ أي اللغات التي تجمع جافا بايت كود (سكالا, Jython الخ...) لا تعمل كما هو متوقع ؟

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

المحلول

هناك عدد من الأشياء التي Dalvik لا تحمل أو لا تحمل تماما بنفس الطريقة القياسية جافا بايت كود, رغم أن معظمهم متقدمة جدا.

على أشد على سبيل المثال هو وقت تشغيل الجيل بايت كود و فئة مخصصة التحميل.دعونا نقول كنت ترغب في إنشاء بعض بايت كود ومن ثم استخدام classloader لتحميل لك ، إذا أن الخدعة تعمل على الجهاز العادي, فمن يضمن أن لا تعمل على Dalvik, إلا إذا قمت بتغيير بايت كود جيل.

الذي يمنعك من استخدام بعض حقن التبعية الأطر المعروفة على سبيل المثال جوجل Guice (على الرغم من أنني متأكد من أن بعض الناس العمل على ذلك).من ناحية أخرى AspectJ يجب أن تعمل كما أنه يستخدم بايت كود الأجهزة مثل تجميع خطوة (على الرغم من أنني لا أعرف إذا حاول أي شخص).

كما أن البعض jvm اللغات-أي شيء في النهاية يجمع القياسية بايت كود و لا تستخدم بايت كود الأجهزة في وقت التشغيل يمكن تحويلها إلى Dalvik و يجب أن تعمل.أعرف أن الناس لم تشغيل Jython على الروبوت وعملت موافق.

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

نصائح أخرى

إذا كنت ترى "Dalvik Virtual Machine الداخلية"جوجل IO الدورة يمكنك أن تجد Dalvik لا يدعم GC الأجيال.

لذلك ، يمكن أن تتحلل أداء متكررة إنشاء الكائن و الحذف.Java VM يدعم GC الأجيال لذلك هو أفضل GC الأداء على نفس الوضع.

و أيضا, Dalvik يستخدم أثر granuality JIT بدلا من الأسلوب granuality JIT.

شيء آخر أعتقد أنه يمكن أن يضاف هنا أن Dalvik على ما يبدو لا مجال الحفاظ على النظام عند سرد الحقول من فئة باستخدام API التفكير.الآن, انعكاس API لا تقدم أي ضمانات على ذلك على كل حال (حتى من الناحية المثالية يجب أن لا تعتمد على أي حال) ، ولكن معظم VMs هناك هل الحفاظ على النظام.

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

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