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

RenderScript در برنامه نویسی اندروید
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد RenderScript در برنامه نویسی اندروید صحبت خواهیم کرد.
در این درس با RenderScript در برنامه نویسی اندروید آشنا خواهیم شد. معمولاً برنامه ها در اندروید طوری طراحی می شوند که حداقل منابع ممکن را مصرف کنند. اما برخی از برنامه ها مانند برخی از بازی های سه بعدی نیاز به پردازش سطح بالایی در اندروید دارند.
برای ارائه این برنامه ها اندروید با عملکرد بالا RenderScript را معرفی کرد.
این فریم ورک مبتنی بر اندروید است که برای اجرای برنامه هایی که کارهای محاسباتی بسیار بالایی را انجام می دهند استفاده می شود.
توسعه در این چارچوب در کیت توسعه بومی (NDK) ارائه شده توسط اندروید انجام می شود.
RenderScript برای برنامه هایی که انواع زیر را انجام می دهند بسیار مفید است:
- 3D Rendering
- Image Processing
- Computational Photography
- Computer Vision
نحوه عملکرد RenderScript
فریم ورک RenderScript اساساً بر اساس محاسبه موازی داده ها است.
این کار برنامه شما را روی همه پردازنده های موجود در دستگاه شما مانند پردازنده های چند هسته ای یا GPU توزیع می کند.
این توزیع موازی بار، برنامه نویس را از تنش تعادل بار و برنامه ریزی کار خلاص می کند.
بدون نگرانی از قدرت محاسباتی می توانید الگوریتم های دقیق و پیچیده تری را برای برنامه خود بنویسید.
چگونه شروع کنیم
برای استفاده از چارچوب RenderScript باید دو چیز زیر را داشته باشید:
- A RenderScript Kernel
- RenderScript APIs
A RenderScript Kernel
کرنل برنامه ای است که دستورالعملهای پردازش داده را مدیریت می کند و حجم کار را در واحدهای پردازش مرکزی مدیریت می کند.
یک کرنل بخشی اساسی از سیستم عامل است.
به همین ترتیب برای اجرای چارچوب RenderScript به یک اسکریپت نوشته شده به نام Kernel برای مدیریت کلیه درخواستهای پردازش داده از برنامه ما و استفاده از ویژگیهای بیشتر سیستم عامل اندروید ارائه شده توسط NDK و همانطور که قبلا ذکر شد توسعه RenderScript در Native Development Kit انجام می شود.
Kernel Script با استاندارد C-99 زبان C نوشته شده است.
این استاندارد قبل از توسعه C ++ بود. یک پرونده Kernel Script در RenderScript که معمولاً در پرونده .rs قرار می گیرد.
هر فایل به عنوان یک اسکریپت فراخوانی می شود. Kernel Script می تواند شامل عناصر زیر باشد:
- A Language declaration
نسخه زبان RenderScript Kernel استفاده شده در این اسکریپت را اعلام می کند.
- A package declaration
این اعلام نام بسته کلاس جاوا را که تحت تأثیر این کد هسته قرار می گیرد، نامگذاری می کند.
- A package declaration
با آرگومان های دلخواه می توانیداز این توابع در کد جاوای خود استفاده کنید.
- Script Global Variables
اینها دقیقاً مانند متغیرهای تعریف شده در زبان برنامه نویسی C و C ++ هستند. از کد جاوا خود می توانید به این متغیرها دسترسی پیدا کنید.
در زیر کد نمونه یک کرنل وجود دارد:
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; } |
API های RenderScript
اگر می خواهید از RenderScript در API خود استفاده کنید، می توانید این کار را به دو روش زیر انجام دهید:
- android.renderscript
این API در دستگاه های دارای Android 3.0 و بالاتر موجود است.
- android.support.v8.renderscript
این API در دستگاه های دارای Android 2.2 و بالاتر موجود است.
برای پشتیبانی از کتابخانه اندروید ، ابزار زیر لازم است –
- Latest Android SDK Tools version
- Latest Android SDK Build-tools version
نحوه استفاده از کتابخانه پشتیبانی RenderScript
ابتدا فایل project.properties را در پروژه خود باز کرده و سطرهای زیر را در فایل اضافه کنید:
1 2 3 |
renderscript.target=18 renderscript.support.mode=true sdk.buildtools=18.1.0 |
اکنون کلاس اصلی خود را که از RenderScript استفاده می کند باز کرده و به ترتیب زیر برای کلاسهای پشتیبانی کتابخانه وارد کنید
1 |
import android.support.v8.renderscript.*; |
در زیر اهداف ویژگی های ذکر شده در بالا ذکر شده است که ما در فایل project.properties اضافه می کنیم.
- renderscript.target
نسخه کد بایت را تولید می کند.
- renderscript.support.mode
این یک نسخه سازگار را برای بازگشت بایت کد تولید شده مشخص می کند.
- sdk.buildtools
نسخه های ابزار ساخت Android SDK را برای استفاده مشخص می کند.
اکنون توابع کرنل RenderScript خود را فراخوانی کرده و الگوریتم های پیچیده را در برنامه خود محاسبه کنید.
لیست جلسات قبل آموزش برنامه نویسی اندروید
- نگاهی کلی به برنامه نویسی اندروید
- تنظیمات محیط در برنامه نویسی اندروید
- معماری برنامه نویسی اندروید
- اجزای برنامه در برنامه نویسی اندروید
- Hello World در برنامه نویسی اندروید
- سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
- فعالیت در برنامه نویسی اندروید
- سرویس در برنامه نویسی اندروید
- گیرنده های پخش در برنامه نویسی اندروید
- ارائه دهنده محتوا در برنامه نویسی اندروید
- قطعات در برنامه نویسی اندروید
- Intent و فیلتر در برنامه نویسی اندروید
- طرح بندی رابط کاربری در برنامه نویسی اندروید
- کنترل های رابط کاربری در برنامه نویسی اندروید
- مدیریت رویدادها در برنامه نویسی اندروید
- استایل و تم ها در برنامه نویسی اندروید
- اجزای سفارشی در برنامه نویسی اندروید
- کشیدن و رها کردن در برنامه نویسی اندروید
- نوتیفیکیشن ها در برنامه نویسی اندروید
- سرویس های مبتنی بر مکان در برنامه نویسی اندروید
- ارسال ایمیل در برنامه نویسی اندروید
- ارسال پیامک در برنامه نویسی اندروید
- تماس های تلفنی در برنامه نویسی اندروید
- انتشار برنامه اندروید
- آموزش Alert Dialog در برنامه نویسی اندروید
- انیمیشن در برنامه نویسی اندروید
- ضبط صدا در برنامه نویسی اندروید
- مدیریت صدا در برنامه نویسی اندروید
- آموزش Auto Complete در برنامه نویسی اندروید
- بهترین شیوه ها در برنامه نویسی اندروید
- بلوتوث در برنامه نویسی اندروید
- استفاده از دوربین در برنامه نویسی اندروید
- کلیپ بورد در برنامه نویسی اندروید
- فونت سفارشی در برنامه نویسی اندروید
- پشتیبان گیری از داده ها در برنامه نویسی اندروید
- ابزارهای توسعه دهنده در برنامه نویسی اندروید
- آموزش شبیه ساز در برنامه نویسی اندروید
- اتصال به فیس بوک در برنامه نویسی اندروید
- حرکات لمسی در برنامه نویسی اندروید
- آموزش گوگل مپ در برنامه نویسی اندروید
- افکت های تصویر در برنامه نویسی اندروید
- Image Switcher در برنامه نویسی اندروید
- حافظه داخلی در برنامه نویسی اندروید
- آموزش کار با JetPlayer در برنامه نویسی اندروید
- JSON Parser در برنامه نویسی اندروید
- ارتباط با LinkedIn در برنامه نویسی اندروید
- نوار پیشرفت Spinner در برنامه نویسی اندروید
- بومی سازی در برنامه نویسی اندروید
- صفحه Login در برنامه نویسی اندروید
- MediaPlayer در برنامه نویسی اندروید
- Multitouch در برنامه نویسی اندروید
- Navigation در برنامه نویسی اندروید
- اتصال به اینترنت در برنامه نویسی اندروید
- NFC در برنامه نویسی اندروید
- PHP و MYSQL در برنامه نویسی اندروید
- Progress Circle دربرنامه نویسی اندروید
- Progress Bar در برنامه نویسی اندروید
- Push Notification در برنامه نویسی اندروید
دیدگاه شما