با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. معمولا برنامه های اندروید به گونه ای طراحی شده اند که حداقل منابع را برای اپلیکیشن ها مصرف می کنند. اما برخی از برنامه های کاربردی از جمله برخی از بازی های ۳D نیاز به پردازش سطح بالا در اندروید دارند.برای ارائه این برنامه های کاربردی RenderScript در اندروید معرفی شده است. این فریم ورک مبتنی بر اندروید است که برای اجرای برنامه هایی که کارایی بالایی داشته و عملیات محاسباتی سنگینی را انجام می دهند استفاده می شود. توسعه این فریم ورک در (Native Development Kit(NDK ارائه شده توسط آندروید انجام می شود. در ادامه برای آشنایی بیشتر با RenderScript در برنامه نویسی اندروید با ما همراه باشید.
در این مبحث ما شما را با عملکرد و چگونگی استفاده از RenderScript در اندروید آشنا خواهیم کرد.
از RenderScript در برنامه نویسی اندروید برای انجام فعالیت های زیر در اپلیکیشن ها استفاده می شود:
فریم ورک RenderScript عمدتا بر اساس محاسبات موازی داده است.
این قابلیت حجم پردازش اپلیکیشن شما را بر روی تمام پردازنده های دستگاه تقسیم می کند.
در دستگاه هایی که از پردازنده های چند هسته ای استفاده می کنند این پردازش در تمام هسته ها تقسیم می شود.
با این قابلیت شما می توانید برنامه ها و الگوریتم های بسیار پیچیده را بدون نگرانی از پردازش آن بنویسید.
برای استفاده از فریم ورک RenderScript شما باید دو قابلیت زیر را داشته باشید:
یک kernel (هسته) برنامه ای است که دستورالعمل های پردازش داده ها و حجم کاری را در CPU مدیریت می کند.
kernel (هسته) در واقع یکی از بخش های اصلی و بسیار مهم سیستم عامل است.
به طور مشابه برای اجرای فریم ورک RenderScript ما نیاز به یک اسکریپت نوشته شده به نام Kernel داریم.
RenderScript در اندروید برای مدیریت تمامی پردازش ها و استفاده از قابلیت های بیشتر سیستم عامل اندروید استفاده می شود.
Kernel Script با استاندارد C-99 و با زبان C نوشته شد است.
یک فایل هسته ی RenderScript معمولا در فایل rs. قرار داده می شود، و هر فایلی به عنوان یک script شناخته می شود.
هسته RenderScript می تواند شامل عناصر زیر باشد:
ردیف | عناصر و توضیحات آن |
---|---|
۱ | A Language declaration نسخه زبان RenderScript Kernel را که در این اسکریپت استفاده شده مشخص می کند. |
۲ | A package declaration این اعلام نام بسته کلاس جاوا است که توسط این کد هسته تحت تاثیر قرار می گیرد. |
۳ | Invokable functions شما می توانید از این توابع در کد جاوای خود با آرگومان های مورد نظر استفاده کنید. |
۴ | Script Global Variables این عناصر همانند متغییر هایی که در زبان c و ++c تعریف می شود می باشند و شما می توانید به این متغییرها در کد جاوای برنامه ی خود دسترسی داشته باشید. |
این یک کد ساده از Kernel است:
1 2 3 4 5 6 | 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; } |
اگر می خواهید از RenderScript در API خود استفاده کنید شما می توانید با دو روش زیر این کار را عملی کنید:
ردیف | API و توضیحات آن |
---|---|
۱ | android.renderscript این API ها در دستگاههایی با Android 3.0 و بالاتر اجرا می شوند. |
۲ | android.support.v8.renderscript این API ها در دستگاههایی با Android 2.2 و بالاتر اجرا می شوند. |
برای اینکه اندروید از این کتابخانه ها پشتیبانی کند به ابزار زیر نیاز دارید:
ابتدا فایل project.properties را در پروژه ی خود باز کرده و کدهای زیر را به آن اضافه کنید:
1 2 3 | renderscript.target=18 renderscript.support.mode=true sdk.buildtools=18.1.0 |
اکنون کلاس اصلی که در آن از RenderScript استفاده کرده اید را باز کرده و کد import زیر را به آن اضافه کنید:
1 | import android.support.v8.renderscript.*; |
با این اقدام می توانیم ویژگی های زیر را به فایل project.properties اضافه کنیم:
ردیف | ویژگی ها پروژه و توضیحات آن |
---|---|
۱ | renderscript.target این نسخه کد بایت را تولید می کند. |
۲ | renderscript.support.mode این یک نسخه سازگار برای کد بایت تولید شده را برای فراخوانی دوباره مشخص می کند. |
۳ | sdk.buildtools این نسخه Android SDK که ابزارها را برای استفاده ایجاد می کند را مشخص می کند. |
حالا می توانید توابع RenderScript Kernel را فراخوانی کرده و بدون مشکل در پردازش، الگوریتم ها و محاسبات پیچیده را در برنامه ی خود اجرا کنید.
در حالت عادی سیستم عامل اندروید برنامه های سنگین و با محاسبات سطح بالا را به خوبی اجرا نمی کند، اما شما می توانید از RenderScript در برنامه نویسی اندروید خود استفاده کرده و با استفاده کردن از تمام پردازنده های دستگاه، این مشکل را رفع کنید.
در بخش بعدی به مبحث RSS در اندروید می پردازیم.