آموزش RenderScript اندروید
آموزش RenderScript اندروید
در این آموزش در مورد RenderScript اندروید مطلب خواهیم آموخت. معمولا برنامه های اندروید طوری طراحی شده اند که تا جایی که ممکن است منابع کمتری استفاده کنند. اما برخی برنامه ها مانند بازی های سه بعدی، پردازش هایی با سطح بالا نیاز دارند.
برای اجرای چنین برنامه هایی اندروید RenderScript را معرفی می کند، که framework آن اندروید محور می باشد که برای اجرای برنامه هایی استفاده می شود که فعالیت های به شدت محاسباتی را انجام می دهند. توسعه روی این framework در (NDK) انجام می شود که توسط اندروید ارائه شده است. RenderScrip به شدت برای برنامه هایی که فعالیت هایی مانند فعالیت های زیر را انجام می دهند، مفید می باشد
اجرای سه بعدی
پردازش تصویر (image)
عکاسی کامپیوتری
ویژن کامپیوتر
RenderScrip چگونه کار می کند
framework RenderScrip اساسا بر پایه ی محاسبه ی داده ی هم راستا می باشد. RenderScrip میزان کار برنامه ی شما را روی همه ی پردازشگرهای موجود در دستگاه شما مانند CPU های چند هسته ای و یا GPU ها، پخش می کند. این پخش هم راستای میزان کار برنامه نویس را از نگرنی در مورد بارگذاری متعادل و زمان بندی کار رها می کند. شما می توانید الگوریتم های دقیق تر و پیچیده تری برای برنامه ی خود بنویسید، بدون نگرانی در مورد نیروی کامپیوتری.
چگونگی آغاز
برای استفاده از framework RenderScript باید دو مورد زیر داشته باشید
- یک کرنل RenderScript
- API های RenderScript
یک کرنل RenderScript
هسته ی مرکزی RenderScript برنامه ای می باشد که دستورالعمل های پردازش داده را مدیریت می کند و میزان کار روی Central Processing Units را سازماندهی می کند. هسته ی مرکزی (kernel) بخش اصلی سیستم عملیاتی می باشد.
مشابهاً برای اجرای framework RenderScript به یک نسخه ی نوشته شده به نام Kernel نیاز داریم تا پردازش داده ها و درخواست ها ازبرنامه ی را سازماندهی کند، و ویژگی های بیشتری از android OS را، که توسط SDK ارائه شده، به کار بگیرد و همانطور که قبلا ذکر شد، توسعه ی RenderScript در Native Development Kit از اندروید انجام می شود.
نسخه ی Kernel در استاندارد C-99 از زبان C نوشته شده است. این استاندارد قبل از توسعه ی C++ می باشد. فایل مربوط به نسخه ی kernel از RenderScript معمولا در فایل .rs جای می گیرد. هر فایل به عنوان یک نسخه فراخوانده می شود. نسخه ی Kernel از فایل RenderScript دارای عناصر زیر می باشد.
-
A Language declaration
ورژن مربوط به زبان RenderScript Kernel را که در این نسخه استفاده شده، اعلام می کند.
-
A package declaration
این بیانیه پکیج مربوط به کلاس جاوا را نام گذاری می کند که تحت تاثیر این کد kernel خواهد بود.
-
Invokable functions
شما می توانید این عملکردها را از کد JAVA با شناسه های اختیاری، فرا بخوانید.
-
Script Globals Variables
اینها درست مانند متغیرهای تعریف شده در زبان برنامه نویسی C و C++ می باشند. شما می توانید از طریق کد JAVA به این متغیرها دسترسی داشته باشید.
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 های خود استفاده کنید، می توانید به دو روش زیر این کار را انجام دهید:
-
android.renderscript
این API روی دستگاه های اجرایی Android 3.0 و بالاتر موجود می باشد.
-
android.support.v8.renderscript
این API روی دستگاه های اجرایی Android 2.2 و بالاتر موجود می باشد.
برای اینکه اندروید library را پشتیبانی کند ابزار زیر مورد نیاز می باشند.
ابزار Android SDK ورژن 22.2
ابزار Android SDK Build ورژن 18.1.0
چگونگی استفاده از RenderScript Support Library
ابتدا فایل project.propertiesدر پروژه ی خود را باز کرده و خطوط زیر را به آن اضافه کنید.
renderscript.target=18
renderscript.support.mode=true
sdk.buildtools=18.1.0
حالا کلاس اصل خود را که از RenderScrip استفاده می کند باز کرده و یک ایمپورت برای پشتیبانی کلاس های Support Library به آن اضافه کنید، مانند زیر:
import android.support.v8.renderscript.*;
در زیر اهداف ذکر شده در بالا را، مربوط به ویژگی هایی که در فایل project.propertiesاضافه می کنیم، مشاهده می کنید.
-
renderscript.target
ورژن مربوط به bytecode را مشخص می کند که قرار است تولید شود.
-
renderscript.support.mode
یک ورژن مناسب برای bytecode تولید شده مشخص می کند.
-
sdk.buildtools
ورژن های ابزار Android SDK را برای استفاده مشخص می کند.
اکنون عملکردهای RenderScript Kernel خود را فراخوانده و الگوریتم های پیچیده ای را در برنامه ی خود محاسبه کنید.
- نوشته شده توسط سعید نوشادی
- بازدید: 4499