یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام

ساخت اکتیویتی splash

ساخت اکتیویتی splash در اندرید
شرح مختصر پروژه

Theared چیست؟ در سیستم عامل های مختلف از جمله اندروید،Thread ها یکی از مفاهیم اصلی در برنامه نویسی می باشند که به ما قابلیت انجام چند کار به صورت همزمان را می دهند، به گونه ای که بتوانیم عملیات های مختلف را به شکلی مدیریت نماییم که هیچ اختلالی برای یکدیگر ایجاد نکنند. در واقع با استفاده ازThread ها می توانیم اجرای موازی عملیات های مختلف در برنامه ها را امکان پذیر نماییم.

توضیحات پروژه

با عرض سلام و خسته نباشید به شما دانشجویان محترم آموزشگاه تحلیلگر داده ها. در این مقاله قصد داریم تا نحوه ساخت یک برنامه با داشتن اکتیویتی splash و با استفاده از قابلیت Theard اندروید را بصورت تصویری در محیط برنامه نویسی Eclipse به شما دانشجویان محترم آموزش دهیم.

 

اهداف پروژه :

در این پروژه ما  قصد داریم اهداف زیر را پیاده سازی نماییم:

ساخت اکتیویتی splash

تنظیم نمودن اکتیویتی splash به عنوان اکتیویتی پیش فرض 

اجرا نمودن اکتیویتی main بعد از 5000 ثانیه 

 

Theared  چیست؟ 

در سیستم عامل های مختلف از جمله اندروید،Thread  ها یکی از مفاهیم اصلی در برنامه نویسی می باشند که به ما قابلیت انجام چند کار  به صورت همزمان را می دهند، به گونه ای که بتوانیم عملیات های مختلف را به شکلی مدیریت نماییم که هیچ اختلالی برای یکدیگر ایجاد نکنند. در واقع با استفاده ازThread  ها می توانیم اجرای موازی عملیات های مختلف در برنامه ها را امکان پذیر نماییم.

شاید برای درک بهتر مفهوم Thread، بهتر باشد که یک مثال ساده بزنیم. شما Thread را به عنوان یک جاده یک طرفه در نظر بگیرید که ماشین ها پشت سر  یکدیگر در حال عبور از آن هستند. همچنین بخش های مختلف کد های برنامه را  نیز  به عنوان ماشین ها در نظر بگیرید. بنابراین جلو رفتن ماشین ها در جاده، به همان معنای اجرا شدن کدها می باشد. اکنون فرض نمایید که جاده مورد نظر یک بانده می باشد و ترافیک سنگینی نیز در آن بوجود آمده است. مسلما هر ماشینی، یک هدف خاص دارد، شاید یکی برایش اهمیت نداشته باشد که چه زمانی به مقصد برسد، اما یکی دیگر، ماشین آمبولانس باشد که باید هر چه زودتر به بیمارستان برسد. در واقع با این مثال قصد داشتیم بگوییم که بخش های مختلف کدها، دارای اولویت بندی متفاوت و همچنین سرعت های متفاوت برای اجرا شدن هستند و اگر قرار باشد که به ترتیب اجرا شوند برنامه کند شده و حتی گاهی آنچه در نظر داریم را اصلا نمی توانیم اجرا نماییم و کل عملیات ها قفل می شوند. پس می بایست جاده را چند بانده نماییم و ماشین ها را از باندهای مختلف عبور دهیم، بنابراین برخی مواقع، تنها یک Thread کافی نیست و می بایست چندین Thread را به کار ببریم.

هنگامی که یک برنامه اندروید را اجرا می نماییم، سیستمی که برای اجرای برنامه اندروید به کار گرفته می شود، یک Thread را می سازد که به صورت پیش فرض، تمام بخش های برنامه مذکور، در این Thread اجرا می گردند. این Thread را Thread اصلی « Main Thread » می نامند. وظیفه اولیه Thread اصلی این است که پاسخ های مرتبط با تعامل کاربر با نماهای برنامه اندروید را اجرا نماید. هر بخش از کدهای برنامه اندروید که قرار باشد اجرا گردند، در همین Thread اصلی اجرا می گردند.

حال فرض نمایید قرار باشد بخشی از کدها در Thread  اصلی اجرا گردد که زمانبر است  « مثلا دریافت اطلاعات از اینترنت که بر اساس سرعت دریافت اطلاعات، متغیر است »، همین بخش باعث می شود که اجرای کدهای سایر بخش ها در Thread  اصلی با مشکل روبرو شود و کل فرآیند، کند و یا اصلا قفل گردد. بنابراین؛ راه حل این است که بخشی از کدها را که حدس می زنیم زمانبر هستند، در یک Thread جداگانه اجرا نماییم. 

 

Intent  چیست؟

در برنامه نویسی اندروید هرگاه بخواهیم از داخل اکتیویتی جاری اکتیویتی دیگری را باز نماییم « نمایش دهیم »، از این کلاس استفاده می نماییم. 

 

برای شروع کار ابتدا می بایست یک پروژه جدید در محیط Eclipse ایجاد نماییم. برای این منظور از منوی File زیر منوی New و سپس زیر منوی Android Application Project را انتخاب می نماییم. (شکل 1)

 

image

 

شکل 1

همچنین برای ساده تر شدن و بالا بردن سرعت کار می توانید از منوی ابزار ها، منوی New و سپس Android Aplication Project را انتخاب نمایید.(شکل 2)

 

image

 

 

شکل 2

با انجام هر دو روش پنجره جدیدی با عنوان New Android Application باز می گردد. (شکل 3)

image

 

شکل 3

در این پنجره قسمت هایی وجود دارد که در زیر به توضیح آنها می پردازیم :

Aplication Name  : در این فیلد می بایست نام برنامه خود را وارد نمایید. توجه داشته باشید که هر مقداری را که در این فیلد وارد نمایید، برنامه با این نام در لیست برنامه های نصب شده قرار خواهد گرفت.

در این فیلد می توانید یک رشته فارسی نیز وارد نمایید.

 

Project Name : در این فیلد می بایست نام کلی پروژه خود را وارد نمایید و بهتر است که یک رشته با معنا و مرطبت با برنامه خود وارد نمایید.

زمانی که مقدار فیلد Aplication Name را وارد می نمایید، فیلد Project Name نیز بصورت خودکار همان نام را وارد می نماید. توجه داشته باشد که اگر فیلد Aplication Name را با یک رشته فارسی مقداردهی نمودید، برای جلوگیری از خطاها می بایست رشته فارسی تولید شده در فیلد Project Name را با یک رشته معادل انگلیسی جایگزین نمایید.

 

Package Name :  در این فیلد می بایست پکیج پروژه خود را تعیین نمایید که بهتر است آدرس وب سایت خود را بدون درج http  و www و بصورت از آخر به اول و به همراه نام وارد شده در فیلد Project Name وارد نمایید. این نوع مقداردهی به برنامه های مارکت نظیر بازار و Google Paly این امکان را میدهد تا زمانی که نسخه جدیدی از برنامه شما ساخته و آماده منتشر گردید باخبر شده و نسخه جدید برنامه تان را جایگزین نسخه قبلی نماید.

 

Minimum Required SDK : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که برنامه تان به چه حداقل نسخه ای از سیستم عامل اندروید نیاز دارد. برای مثال اگر گزینه API 14 را انتخاب نمایید، برنامه تان در سیستم عامل اندروید پایین تر از اندروید 4 یا همان IceCream Sandwich، نصب و اجرا نمی گردد.

اگر از امکانات خاص نسخه های جدیدتر سیستم عامل اندروید استفاده نمی نمایید پیشنهاد می گردد که API 8  را انتخاب نمایید. چرا که با انتخاب این نسخه از سیستم عامل اندروید مطمئن خواهید بود که برنامه شما در تمامی گوشی ها و تبلت ها اجرا خواهد شد.

 

Target SDK : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که بالاترین نسخه اندرویدی که برنامه شما می تواند در آن نصب و اجرا گردد کدام نسخه است. بدیهی ست که هرچه سطح API انتخاب شده بالاتر باشد، گوشی ها و تبلت های جدید نیز می توانند از برنامه شما استفاده نمایند.

 

Compile With : در این لیست انواع API های « نسخه های سیستم عامل اندروید » منتشر شده توسط گوگل وجود دارد. با انتخاب هر کدام از آنها مشخص می نمایید که برنامه Eclipse از کدام نسخه از سیستم عامل اندروید برای نوشتن کلاس های برنامه و همچنین کامپایل و تست نمودن آن استفاده نماید.

 

Theme : در این لیست می توانید یک Theme برای برنامه خود انتخاب نمایید.

توجه داشته باشید زمانی که مقدار Compile With را کمتر از API 14 انتخاب نمایید، از این قسمت نمی توانید استفاده نمایید و می بایست از لیست موجود گزینه None رو انتخاب نمایید.

پس از مقداردهی نمودن فیلد های ذکر شده بر روی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 4)

image

 

شکل 4

در مرحله بعدی اگر گزینه Create custom lunche icon را انتخاب نمایید، برنامه Eclipse به شما اجازه میدهد تا برای برنامه خود یک عکس جهت ساختن icon انتخاب و یا با استفاده از ابزار های خود برنامه Eclipse، icon مورد نظر خود را ترسیم نمایید. توجه داشته باشید که در صورت عدم انتخاب این گزینه، صفحه مربوطه برای شما باز نخواهد شد.

همچنین اگر گزینه Create Activity را انتخاب نمایید، برنامه Eclipse به شما اجازه میدهد که نام و نوع activity برنامه تان را انتخاب نمایید.

این دو گزینه را انتخاب می نماییم و سایر گزینه ها را به حالت پیش فرض خود می گذاریم. حال مجددا بروی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 5)

image

 

شکل 5

در مرحله بعدی می توانید برای برنامه خود یک icon انتخاب و یا رسم نمایید.

دکمه image برای انتخاب یک عکس ترجیحا با فرمت png به عنوان icon برنامه

دکمه Clipart برای انتخاب یک clipart « شکلک » به عنوان icon برنامه

دکمه Text برای ورود یک نوشته به عنوان icon برنامه

مورد استفاده قرار می گیرند.

ما دکمه image را انتخاب و پس از انتخاب کردن عکس مورد نظر به عنوان icon برنامه بر روی دکمه Next کلیک می نماییم تا به مرحله بعدی ایجاد پروژه برویم. (شکل 6)

image

 

شکل 6

در مرحله بعدی گزینه Create Activity را انتخاب می نماییم و از لیست موجود که بیانگر انتخاب نوع Activity برنامه می باشد گزینه Blank Activity را انتخاب می نماییم. (شکل 7)

image

 

شکل 7

در مرحله آخر نیز باید برای activity و layout خود یک نام انتخاب نمایید. ما نام انتخاب شده پیش فرض را قبول کرده و بر روی دکمه Finish کلیک می نماییم تا پروژه مان ساخته شود. (شکل 8)

image

 

شکل 8

تا این جای کار ما پروژه خود را در برنامه Eclipce ایجاد کرده ایم. حال برای ادامه کار می بایست layout برنامه خود را طراحی نماییم. برنامه ای که می خواهیم بنویسیم به غیر از MainActivity دارای اکتیویتی دیگری به نام SplashActivity نیز می باشد. برای ساختن یک اکتیویتی ابتدا می بایست یک فایل xml جهت طراحی ui برنامه و یک java class جهت قرار دادن کدهای اصلی مرتبط با اکتیویتی ایجاد نماییم. برای اضافه کردن java class، بر روی نام پروژه خود در پنجره Package Explorer کلیک راست می نماییم و از منوی باز شده منوی New و سپس منوی Class را انتخاب می نماییم. (شکل 9)

 

image

 

 

شکل 9

در پنجره باز شده و در قسمت Package، نام کامل پکیجی که مایل به اضافه شدن کلاس به آن هستیم را وارد می نماییم. برای راحتی کار نیز می توانیم بر روی دکمه Browse.. کلیک کرده و از پنجره باز شده پکیج مورد نظر را انتخاب نماییم. (شکل 10)

image

image

 

 

شکل 10

سپس در قسمت Name نام دلخواه خود برای اکتیویتی را وارد می نماییم و در قسمت Superclass نیز نام کلاسی که می خواهیم از آن ارث بری نماییم وارد می نماییم. برای راحتی کار نیز می توانیم بر روی دکمه Browse.. کلیک کرده و از پنجره باز شده نام کلاس مورد نظر خود را در قسمت Choose a type وارد کرده و کلاس مورد نظر را از لیست Matching items انتخاب نماییم. (شکل 11)

image

image

 

 

شکل 11

و در آخر بر روی دکمه Finish کلیک می نماییم تا کلاس مان در پکیج انتخاب شده ایجاد گردد.

بعد از ایجاد نمودن java class، نوبت به فایل xml میرسد. برای ایجاد نمودن این فایل بر روی نام پروژه خود در پنجره Package Explorer کلیک راست می نماییم و از لیست باز شده منوی New و سپس منوی Android XML File را انتخاب می نماییم. (شکل 12)

image

 

شکل 12

در پنجره باز شده، قسمت Resource Type را حتما Layout، قسمت Project را نام پروژه خود و قسمت File را نام دلخواه برای فایل xml وارد نمایید و در لیست Root Element ابزاری را که می خواهید به عنوان root فایل xml تان باشد انتخاب نمایید.

در لیست Root Element، معمولا ابزار LinearLayout و یا RelativeLayout را انتخاب می نمایند.

در آخر بر روی دکمه Finish کلیک نمایید تا فایل xml در پوشه layout قرار گیرد. (شکل 13)

 

 

image

 

 

 

شکل 13

حال نوبت به طراحی layout فایل ساخته شده میرسد. برای این منظور یک ابزار TextView بر روی layout خود قرار میدهیم. (شکل 14)

image

 

شکل 14

حال فایل activity_main.xml را باز می نماییم و یک ابزار TextView بر روی layout خود قرار می دهیم. (شکل 15)

image

 

شکل 15

همچنین مقادیر لازمه برای نمایش متن های TextView را در فایل string.xml وارد می نماییم. (شکل 16)

image

 

شکل 16

 

حال در این مرحله می بایست کد های اصلی برنامه را در کلاس SplashActivity وارد نماییم.

اولین کدی که می بایست به کلاس SplashActivity اضافه نماییم متد onCreate می باشد. این متد یکی از متدهای اصلی برنامه و همین طور چرخه حیات برنامه های اندرویدی می باشد و زمانی که برنامه برای اولین بار اجرا می گردد و یا دستگاه اندرویدی ما از حالت portrait به حالت landscape و یا بر عکس تغییر می کند، این متد فراخوانی می گردد.

یکی از دستوراتی مهمی که باید به این متد اضافه گردد دستور setContentView است. وظیفه این دستور به نمایش در آوردن layout برنامه می باشد (شکل 17)

image

 

شکل  17

مقدار activity_splash نام فایل xml مربوط به layout برنامه مان می باشد.

همچنین دستور savedInstanceState حالت جاری layout برنامه را ذخیره می نماید. به این معنا که، فرض نمایید بر روی layout خود یک ابزار EditText قرار داده اید و مقدار نام خودتان را درون آن وارد کرده اید. زمانی که حالت دستگاه اندرویدی خودتون را به landscape و یا portrait تغییر دهید مشاهده می نمایید که مقدار نام شما هنوز در EditText وجود دارد و پاک نشده است. دلیل آن به خاطر استفاده از دستور فوق می باشد.

در مرحله بعدی بایدکدهایی بنویسیم تا بوسیله ی آنها بتوانیم بعد از گذشت 5 ثانیه اکتیویتی جاری را بسته و اکتیویتی Main را باز نماییم. (شکل 18)

image

 

شکل 18

کد های بالا را در ادامه کدهای قبلی وارد می نماییم.

در کدهای بالا، ابتدا شی با نام background از کلاس Thread  و به روش Anonymous ایجاد نموده ایم و سپس تابع run این کلاس را جهت بازنویسی آماده کرده ایم. در داخل این تابع می بایست کدهایی که مد نظرمان می باشد « باز نمودن اکتیویتی Main بعد از 5 ثانیه »  را وارد نماییم.

کدهای مد نظر خود را در داخل بلاک try/catch قرار می دهیم تا از force close شدن احتمالی برنامه جلوگیری نماییم.

در خط اول بلاک try و با استفاده از دستور sleep، مقدار زمانی را که می خواهیم بعد از گذشت آن کدهایمان اجرا گردند را، بصورت میلی ثانیه وارد می نماییم. در خط بعدی نیز شئی با نام i از کلاس Intent جهت نمایش دادن اکتیویتی Main ایجاد نموده ایم و دو مقدار به عنوان پارامترهای ورودی، به کلاس Intent ارجاع داده ایم که پارامتر اول شئی از کلاس Context و پارامتر دوم نام کلاس جاوای اکتیویتی مورد نظری که می خواهیم نمایش داده شود، می باشند.

برای مقداردهی کردن پارامتر اول علاوه بر دستور getBaseContext، می توانیم از دستور this و یا نام کلاس جاوای اکتیویتی جاری نیز استفاده نماییم.

بعد از ساختن شی i، با استفاده از دستور startActivity، اکتیویتی Main را نمایش می دهیم و در ادامه، با استفاده از دستور finish، اکتیویتی جاری « Splash » را می بندیم.

هر گاه در پروژه های خود بخواهیم اکتیویتی جاری را ببندیم، می بایست از دستور finish استفاده نماییم.

و در انتها، بعد از بلاک try/catch و با استفاده از متد start شی background، Theard ساخته شده را ایجاد می نماییم.

در آخر کد معرفی اکتیویتی splash به سیستم عامل اندروید و همچنین تنظیم نمودن آن به عنوان اکتیویتی پیش فرض برنامه، را در فایل AndroidManifest قرار میدهیم. (شکل 19)

image

 

شکل 19

 

 

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

شاد و پیروز باشید.

 

 

 

 

1394/07/27 7825 409
رمز عبور : tahlildadeh.com یا www.tahlildade.com
نظرات شما

نظرات خود را ثبت کنید...