RenderScript - در برنامه نویسی اندروید

در این آموزش درباره RenderScript در اندروید صحبت میکنیم. معمولاً برنامه های اندروید به گونه ای طراحی می شوند که حداقل منابع را مصرف کنند. اما برخی از برنامه ها مانند برخی از بازی های سه بعدی نیاز به پردازش سطح بالایی در اندروید دارند. برای ارائه این برنامه ها اندروید با کارایی بالا RenderScript را معرفی کرد. این فریم ورک مبتنی بر اندروید است که برای اجرای برنامه هایی که وظایف محاسباتی بسیار بالایی را انجام می دهند استفاده می شود.

RenderScript

توسعه این فریم ورک توسط اندروید در Native Development Kit (NDK) انجام شده است. RenderScript برای برنامه هایی که انواع زیر را انجام می دهند بسیار مفید است :

  • رندر 3D
  • پردازش تصاویر
  • عکاسی محاسباتی
  • کامپیوتر ویژن

نحوه عملکرد RenderScript

چارچوب RenderScript اساساً مبتنی بر محاسبات موازی داده است. این برنامه حجم کاری برنامه شما را روی تمام پردازنده های موجود در دستگاه شما مانند CPU های چند هسته ای یا GPU پخش می کند. این پخش موازی حجم کار، برنامه نویس را از تنش تعادل بار و زمان بندی کار رها می کند. شما می توانید بدون نگرانی از قدرت محاسباتی، الگوریتم های دقیق و پیچیده تری در برنامه های خود با استفاده از این فریم فورک پیاده سازی کنید.

چگونه شروع کنیم

برای استفاده از فریم ورک RenderScript باید دو مورد زیر را داشته باشید:

  • یک RenderScript Kernel
  • API های RenderScript

RenderScript Kernel

kernel برنامه ای است که دستورالعمل های پردازش داده ها را مدیریت می کند و حجم کاری واحدهای پردازش مرکزی را مدیریت می کند. kernel بخش اساسی سیستم عامل است.

به طور مشابه برای اجرای چارچوب RenderScript، ما به یک اسکریپت نوشته شده به نام Kernel نیاز داریم تا تمام درخواست های پردازش داده از برنامه ما را مدیریت کند و از ویژگی های بیشتر سیستم عامل اندروید ارائه شده توسط NDK استفاده کند و همانطور که قبلا ذکر شد که توسعه RenderScript در کیت توسعه Native اندروید انجام می شود.

اسکریپت kernel در استاندارد C-99 زبان C نوشته شده است و این استاندارد قبلا با زبان C++ توسعه داده شده بود. یک فایل RenderScript kernel معمولا در فایلی با پسوند rs قرار می گیرد و هر فایل به عنوان یک اسکریپت نامیده می شود. یک اسکریپت Kernel Render Script می تواند حاوی عناصر زیر باشد :

عناصر و توضیحات ردیف
اعلام یک زبان

این نسخه از زبان RenderScript Kernel استفاده شده در این اسکریپت را اعلام می کند.

1
اعلام یک package

این اعلان نام بسته کلاس جاوا را که تحت تأثیر این کد هسته قرار می گیرد نامگذاری می کند.

2
توابع فراخوانی

می توانید این توابع فراخوانی را از کد JAVA خود با آرگومان های دلخواه و در نقطه دلخواه فراخوانی کنید.

3
متغیرهای global اسکریپت

اینها دقیقاً مانند متغیرهایی هستند که در زبان برنامه نویسی C و C++ تعریف شده اند. شما می توانید با استفاده از کد جاوا به این متغیرها و داده ها دسترسی داشته باشید.

4

در ادامه یک نمونه کد kernel را آماده کرده ایم :

uchar4 __convert__((kernel)) invert(uchar4 in, uint32_t x, uint32_t y) {
   uchar4 out = in;
   out.r = 255 - in.r;
   out.g = 255 - in.g;
   return out;
}

API های RenderScript

اگر می خواهید از RenderScript در API خود استفاده کنید، می توانید این کار را به دو روش زیر انجام دهید :

API ها و توضیحات ردیف
android.renderscript

این API در دستگاه‌های دارای Android نسخه 3.0 و بالاتر در دسترس است.

1
android.support.v8.renderscript

این API در دستگاه‌های دارای Android نسخه 2.2 و بالاتر در دسترس است.

2

برای کتابخانه پشتیبانی اندروید ابزارهای زیر مورد نیاز است :

  • آخرین نسخه Android SDK Tools
  • آخرین نسخه Android SDK Build-tools

نحوه استفاده از کتابخانه پشتیبانی Render Script

ابتدا فایل project.properties را در پروژه خود باز کنید و خطوط زیر را در فایل اضافه کنید :

import android.support.v8.renderscript.*;

در زیر اهداف خواص موجود در بالا که در فایل project.properties اضافه می کنیم مورد بررسی قرار میدهیم:

مشخصات و توضیحات پروژه
ردیف
renderscript.target

این نسخه کد بایتی را که باید تولید شود را مشخص می کند.

1
renderscript.support.mode

این یک نسخه سازگار را که برای کد بایت تولید میشود را مشخص می کند.

2
sdk.buildtools

این نسخه‌های ابزارهای ساخت Android SDK را برای استفاده و روش پیاده سازی مشخص می‌کند.

3

حال توابع موجود در Kernel Render Script خود را فراخوانی کنید و الگوریتم هایی با پیچیدگی بالا را در برنامه خود اجرا کنید.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

مقالات پیشنهادی

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۷۶۲
۰
۲۹ آبان ۱۳۹۹

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۵۶۸
۰
۱۳ آذر ۱۳۹۹

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۵۳۹
۰
۲ دی ۱۳۹۹

هوش مصنوعی

هوش مصنوعی یا هوش ماشینی, به هوشمندی نشان داده شده توسط ماشین در شرایط مختلف گفته میشود که مقابل هوش طبیعی در انسان ها قرار دارد که ...


۵۶۹
۰
۱۱ آذر ۱۳۹۹