وبلاگ - مطالب آموزشی

0
601
آشنایی با نحوه ساخت اپلیکیشن های اندروید با استفاده از اندروید استودیو – بخش چهارم

آشنایی با نحوه ساخت اپلیکیشن های اندروید با استفاده از اندروید استودیو – بخش چهارم

در این دوره آموزشی قصد داریم شما را با اندروید استودیو و امکاناتی که این ابزار قدرتمند در اختیار توسعه دهندگان قرار می دهد، آشنا کنیم. در مطلب قبلی شما را با کلیاتی از کامپوننت های اندروید آشنا کردیم. جهت دریافت پکیج آموزشی کامل کار با اندروید استودیو می توانید به لینک زیر مراجعه کرده و در سریع ترین زمان ممکن کار با این IDE را فرا بگیرید و کار ساخت و توسعه نرم افزارهای اندرویدی خود را آغاز نمایید:


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


سایر اجزای مهم اندروید

– ویجت های صفحه خانه و قفل گوشی

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

– تصاویر پس زمینه زنده

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

منیفست اندروید

-پیکربندی اپلیکیشن اندروید

کامپوننت ها و تنظیمات اپلیکیشن اندروید در فایلی به نام AndroidManifest.xml  قرار داده می شوند که با نام manifest file  یا manifest  نیز شناخته شده است.

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

این فایل در طول فرآیند نصب اپلیکیشن توسط سیستم اندروید خوانده می شود، سیستم با ارزیابی فایل پیکربندی قابلیت های اپلیکیشن را مشخص می کند.

– تعریف کامپوننت ها در فایل منیفست

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

– مجوزها

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

– مثالی از منیفست اندروید

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

 جزئیات بیشتری از منیفست اندروید

– نسخه و پکیج

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

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

android:versionName و android:versionCode نسخه اپلیکیشن اندرویدی شما را مشخص می سازند. versionName چیزی است که کاربر می بیند و می تواند هر گونه رشته ای باشد، اما VersionCode باید از نوع عددی باشد، مارکت اندروید با مقایسه VersionCode آپدیت های اپلیکیشن را ترتیب می دهد. این اعداد به طور معمول با 1 شروع می شوند و با انتشار نسخه جدید از اپلیکیشن این عدد نیز افزایش پیدا می کند.

– اپلیکیشن و کامپوننت ها

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

تگ <activity> یک کامپوننت اکتیویتی را تعریف می کند. ویژگی name به کلاس اشاره دارد که در ارتباط با پکیج تعریف شده در ویژگی package است. بخش intent filer در فایل منیفست اندروید به ران تایم اندروید می گوید که این اکتیویتی باید به عنوان یک نقطه ورود ممکن به اپلیکیشن رجیستر شود و در لانچر سیستم اندروید در دسترس قرار گیرد. اکشن (android:name=”android.intent.action.MAIN”)  شروع را مشخص می سازد در حالی که پارامتر category android:name=”android.intent.category.LAUNCHER افزودن اکتیویتی جدید به لانچر را به سیستم اندروید می گوید.

مقدار string/app_name@ به فایل های منبعی که در برگیرنده مقدار واقعی نام اپلیکیشن هستند، ارجاع پیدا می کنند. استفاده از فایل منبع باعث سهولت در تامین منابع مختلف شامل رشته ها، رنگ ها و آیکون ها برای گوشی های مختلف می شود و فرآیند ترجمه اپلیکیشن را نیز ساده تر می کند.

مشابه تگ <activity> شما قادر به استفاده از سرویس، گیرنده و تامین کننده جهت تعریف سایر کامپوننت های اندروید می باشید.

 مینیموم و تارگت SDK

بخش uses-sdk در فایل منیفست به شما امکان مشخص کردن نسخه targetSdkVersion و targetSdkVersion از اپلیکیشن را می دهد.

مقدارتوضیحات
minSdkVersionکمترین نسخه از اندروید که با اپلیکیشن شما هم خوانی دارد را مشخص می سازد. این ویژگی به عنوان فیلتری در گوگل پلی عمل می کند، بدین ترتیب که گوشی های API کمتر از این مقدار، قادر به نصب اپلیکیشن بر روی گوشی خود نمی باشند.
targetSdkVersionنسخه ای را نشان می دهد که شما کار تست و ساخت اپلیکیشن خود را به انجام رسانده اید. این مقدار با API لول گوشی اندروید یکسان نمی باشد و سیستم اندروید ممکن است تغییراتی را بوجود آورد. استفاده از آخرین API برای این بخش شما را از مزیت استفاده از تغییرات در آخرین نسخه های اندروید بهره مند می سازد.

– مجوزها

تعریف مجوزهای اپلیکیشن توسط تگ <permission> صورت می پذیرد، از طرفی تگ <uses-premission> ضرورت یک مجوز را تعیین می کند.

– پیکربندی ضروری گوشی

بخش uses-configuration در منیفست به شما امکان مشخص کردن متدهای ورودی خاصی را برای گوشی خود می دهد. به طور مثال اسنیپت زیر وجود کیبورد سخت افزاری برای گوشی را ضروری می داند.

بخش uses-feature شمار را قادر به تعیین پیکربندی سخت افزاری خاصی در گوشی می سازد، مثلا اسنیپت زیر که وجود دوربین برای گوشی را ضروری نشان داده است.

– محل نصب

با استفاده از ویژگی installLocation از اپلیکیشن شما می توانید مشخص کنید آیا امکان نصب اپیکیشن بر روی حافظه خارجی گوشی وجود دارد یا خیر. برای این کار می توانید از auto یا preferExternal استفاده کنید.

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

– اطلاعات بیشتر

شما از طریق لینک Android Manifest documentation قادر به یافتن اطلاعات بیشتر در زمینه ویژگی ها و بخش های فایل منیفست می باشید.

منابع

– فایل های منبع

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

فایل های منبع باید در دایرکتوری res/ از اپلیکیشن و در زیر-فولدری تعریف شده قرار داده شوند. زیر-فولدر به نوع منبعی که ذخیره شده بستگی دارد. جدول زیر نمایی کلی از منابع پشتیبانی شده و پیشوندهای استاندارد پوشه های آنها را به نمایش گذاشته است.

منبعپوشهتوضیحات
Drawablesres/drawables/فایل های تصویری یا XML که یک شی قابل ترسیم را به نمایش می گذارند. از نسخه اندروید 5.0 به بعد می توانید از وکتورهای ترسیمی نیز استفاده کنید، این نوع اجزا با توجه به تراکم صفحه نمایش گوشی تغییر اندازه می دهند.
Simple Valuesres/values/برای تعریف رشته ها، رنگ ها، ابعاد، استایل ها و آرایه های ثابت و یا رشته ها و مقادیر عددی در XML مورد استفاده قرار می گیرند. هر نوع در فایل مجزایی ذخیره می شود، برای نمونه رشته ها را در فایل res/values/strings.xml تعریف می کنند.
Layoutsres/layout/فایل های XML با توضیحات لی اوت برای تعریف رابط کاربری برای اکتیویتی ها و فرگمنت ها مورد استفاده قرار می گیرند.
Styles and Themesres/values/فایل هایی که ظاهر اپلیکیشن اندروید را تعیین می کنند.
Animationsres/animator/انیمیشن ها را در فایل XML برای API انیمیشن تعریف می کند، این کار امکان افزودن انیمیشن به ویژگی های دلخواه را میسر می سازد.
Raw datares/raw/فایل های دلخواهی که به فرم خام ذخیره شده اند و با استفاده از شی InputStream می توانید به آنها دسترسی پیدا کنید.
Menusres/menu/اکشن هایی را که قابل استفاده در نوار ابزار اپلیکیشن اند، تعیین می کند.

– مثال: تعریف رشته ها، آرایه های رشته ای، رنگ ها و ابعاد

فهرست زیر مثالی از فایلی به نام values.xml در /res/values را نمایش می دهد که در آن تعداد ثابت رشته ای، یک آرایه رشته ای، رنگ و ابعاد تعریف شده است.

– توصیفات منابع

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

– آی دی های منابع و R.java

به هر منبعی یک آی دی اختصاص داده می شود، دایرکتوری gen در پروژه اندروید شامل فایل های مرجع R.java که در بر گیرنده این مقدارهای تولید شده است، می باشد. این مراجع دارای مقادیر عددی استاتیک هستند.

چنانچه شما اقدام به افزودن یک فایل منبع جدید کنید، مرجع مرتبط با آن منبع جدید به طور خودکار در فایل R.java ساخته می شود. تغییرات دستی در این فایل مورد نیاز نیستند و در صورت نیاز توسط ابزارها اوررایت می شوند.

سیستم اندروید با استفاده از این آی دی ها، متدهایی را برای دسترسی به فایل های منبع مورد نظر در اختیار قرار می دهد.

برای مثال جهت دسترسی به یک رشته با آی دی R.string.yourString در کد منبع، شما قادر به استفاده از متد (getString(R.yourString که در کلاس Contect تعریف شده، می باشید.

– شیوه های خوب برای آی دی های منابع

SDK اندروید از شیوه camelCase برای آی دی های خود استفاده می کند، مثلا buttonRefresh. استفاده از این رویکرد پیشنهاد می شود.

– منابع سیستمی

اندروید نیز منابعی را در اختیار قرار می دهد که system resources نام دارد، این منابع با پیشوند android از بقیه منابع متمایز می شوند. برای نمونه android.R.string.cancel یک رشته پلتفرم را تعریف می کند که وظیفه آن متوقف کردن عملیات است.

فایل های منبع لی اوت

–  اکتیویتی ها و لی اوت ها

اکتیویتی های اندروید با استفاده از ویوها(ویجت ها) و فرگمنت های خود رابط کاربری را تعریف می کنند. این رابط کاربری را می توان با استفاده از فایل های منبع لی اوت XML که در پوشه res/layout/ قرار دارد و یا با استفاده از کد جاوا تعریف کرد، علاوه بر این می توانید این دو رویکرد را با هم ادغام کرده و مورد استفاده قرار دهید.

تعریف لی اوت با استفاده از فایل های لی اوت XML ترجیح داده می شود. این رویکرد منطق برنامه نویسی را از تعریف لی اوت جدا می کند و تعریف لی اوت های گوناگون برای گوشی های مختلف را امکان پذیر می سازد.

– فایل های لی اوت XML

یک فایل منبع لی اوت به عنوان لی اوت محسوب می شود، این لی اوت مشخص کننده ViewGroups، Views، ارتباط و ویژگی های آنها توسط یک فایل XML است.

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

یک لی اوت توسط  فراخوانی متد ()setContentView به یک اکتیویتی اختصاص داده می شود، در مثال زیر کدهای مربوطه نشان داده شده اند.

– تعریف آی دی ها

چنانجه یک ویو نیاز به دسترسی از طریق کد جاوا داشته باشد، شما باید به ویو یک آی دی منحصر به فرد اختصاص دهید، این کار با ویژگی android: id صورت می پذیرد. به منظور اختصاص یک آی دی جدید به یک ویو می توان از ویژگی android:id از جز مربوطه در فایل لی اوت استفاده کرد. در زیر مثالی را مشاهده می کنید که در آن یک دکمه آی دی button1 را با پارامتر android:id=”@+id/button1″  می گیرد.

این کار در صورت نیاز یک آی دی جدید را در فایل R.java بوجود می آورد و آی دی تعریف شده را به ویوی موردنظر اختصاص می دهد.

– شیوه مناسب: آی دی های تعریف شده از قبل یا استفاده از یک فایل جدا

همانطور که در در بخش قبل نیز شرح داده شد، اندروید به شما امکان تعریف آی دی هایی از کامپوننت های رابط کاربری را به صورت داینامیک در فایل های لی اوت می دهد. به منظور داشتن یک مکان مرکزی برای تعریف آی دی، شما می توانید آنها را در فایل پیکربندی نیز تعریف کنید.

به منظور کنترل آی دی های خود، شما می توایند فایلی که معمولا ids.xml نام دارد را در پوشه res/values/ بسازید و آی دی های موردنظر خود را در این فایل تعریف کنید. فهرست زیر نمونه ای از این گونه فایل را به شما نمایش می دهد.

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

هشدار

چنانچه قصد تعریف آی دی در یک فایل مجزا را دارید، اول از همه قسمت id+@ در فایل های لی اوت خود را حذف کنید، در غیر این صورت پیام های خطایی مبنی بر ساخت این فایل ها از قبل را دریافت خواهید کرد.

نکته

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

– ملاحظات عمکلردی با لی اوت ها

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

در بخش های بعدی ادامه کار با IDE اندروید استودیو به شما ارائه خواهد شد، منتظر مطالب جدید ما باشید.


 

این نوشته را به گوگل توصیه کنید :

بسته های آموزشی جذاب!بیشتر