نقل قول نوشته شده توسط farhad_shiri_ex مشاهده تاپیک
اگر خیلی سریع بخوام بگم... البته در ویندوز و اندروید استودیو 3 به بعد
1- دانلود NDK از سایت اندروید.
2- دانلود LLDB ابزار دیباگ کدهای سی در اندروید استودیو .
3- دانلود CMake برای ساخت فایل تنظیمات کامپایلر البته در نسخه های قدیمی اندروید از Android.mk , Application.mk استفاده می شد ولی با اومدن cmake کار خیلی راحتتر شده و خطا ها کمتر شده.
4- شروع به ساخت پروژه جدید برای استفاده از jni نحوه نوشتن کد به زبان سی و سی پلاس پلاس و استفاده از کامپایلر CLANG برای ساخت لایبررهای so و نحوه استفاده در جاوا.
برای شروع سایت اندروید رفرنس های زیادی داره برای استفاده البته باید به سی پلاس مسلط باشید.
به هر حال برای نوشتن کد با بازدهی بالا با استفاده از سی پلاس پلاس در JNI باید با ساختارهای زبان سی آشنا باشید تا بتونید از تغییراتی که لازم در کدهایی که می نویسید برای کتابخانه ها نهایت استفاده را ببرید
مثال در JNI باید حتما از کلاس jni.h استفاده کنید
باید نام متدها را با استفاده از ماکرو JNICALL رجیستر کنید واین تعریف حتما باید در سمت جاوا هم تعریف بشه .
برای اینکه بتونیدبا داده های جاوا کار کنید باید اونها را به نوع هایی که JNI تدارک دیده تبدیل کنید مثلا ما تو سی نوعی به نام byte نداریم بجای این char داریم حالا همین char با یک نوع خاص به اسم C در JNI تعریف میشه
مثلا یک String جاوا در JNI میشه jbytearray که البته نوع نیست یک کلاس که اگر بخواهید از داده ای که بهش اشاره میکنه استفاده کنید باید از متدهایی که در JNI تعریف شده استفاده کنید به صورت مستقیم مفهوم ندارن.
تمام متدها دو تا پارامتر اجباری دارند که یکیش *env هست که کلاسی که متدهای تبدیل داده و ارتباط با JVM را پوشش میده و پارامتر بعدی از نوع جاوا آبجکت هست.
و خیلی موارد دیگه فعلا برای شروع مراحلی که گفتم را انجام بدید چون در حال تهیه یک آموزش تصویری از JNI و برنامه هایی که با سی نوشتم هستم که حتما تا چند روز آینده تو همین تالار میذارم تا حداقل چیز هایی که بلد هستم را به دوستان دیگه انتقال بدم
یعنی برای اینکه ما یه String بزاریم توی فایل Gradle و کسی نتونه این رشته را ببینه این همه دردسر باید بکشیم؟
چقدر بده این اندروید استودیو!!