سؤال

أنا جديد جدًا على تطوير Android وأود أن أعرف ما إذا كان Android يدعم الميزات المذكورة أعلاه الموجودة في C.

شكرا مقدما.

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

المحلول

تتوفر هذه الوظائف عند الترميز في C Native C عبر Android NDK. يحتوي NDK على مكتبة C قياسية تتضمن هذه الوظائف.

  • تعمل GETCWD (BUF ، SIZE) بشكل مختلف قليلاً عن معيار UNIX ، حيث لا يخصص الذاكرة إذا كان BUF لاغالًا. يجب أن تضيء المخزن المؤقت. http://linux.die.net/man/2/chdir
  • وظائف chdir (path) كما هو متوقع ، على الرغم من أن استخدامه محدود من حقيقة أن Android (بغباء) لا يوفر وظيفة لاسترداد معلومات ذات صلة بالسياق التطبيق مثل المسار إلى التخزين الخارجي (على الرغم من أنه يمكنك استرداد المسار عبر مكالمات JNI .) http://linux.die.net/man/3/getcwd
  • لا يمكنني التعليق على وظائف Android of LongJMP وما إلى ذلك.

إذا كنت تفضل البقاء في بيئة Android Java ، فستجد أنه لا يوجد مفهوم لدليل العمل الحالي ، لذلك يتم تفكير chdir () و getCWD (). بدلاً من ذلك ، يوفر النظام مجموعة من الوظائف لاكتشاف مسارات التخزين الداخلية والخارجية (انظر http://developer.android.com/guide/topics/data/data-storage.html). كما يمكن تغطية الاستخدامات النموذجية لـ SetJMP ()/longjmp () بشكل عام من خلال استثناءات Java أو آليات أخرى.

نصائح أخرى

لست متأكدًا مما إذا كان لديها تلك المدمجة في اللغة ، ولكن إذا كنت بحاجة حقًا إلى الوصول إلى أي طرق C الأصلية ، فيمكنك استخدام JNI (Java Native Interface) ، مما سيتيح لك تشغيل رمز C الأصلي.

أيضًا ، ألقِ نظرة على فئات الاستثناء والملفات - قد تمنحك وظائف مماثلة.

يجب ألا تحتاجهم. تتم تطبيقات Android بشكل عام في Java. setjmp/longjmp هو شيء c/c ++ (نعم ، لقد برمجت فيه لفترة من الوقت وما زلت أكرهه :-)

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