نسخه چاپی
مفاهیم کاربردی اندروید
چه به عنوان یک علاقهمند به اندروید و چه در نقش یک توسعه دهنده برنامه، تسلط به مفاهیم اندروید کمک زیادی به درک بهتر برنامه نویسی اندروید به شما خواهد کرد. به همین دلیل در ادامه نگاهی به اصلیترین مفاهیم اندروید و مهمترین نکات مرتبطی که باید بدانید خواهیم داشت.
تغییرات سیستمعامل در گذر زمان ممکن است باعث ایجاد تغییراتی در مفاهیم برنامه نویسی اندروید شود، به همین خاطر این مطلب همگام با این تغییرات بروز خواهد شد و این بروزرسانی از طریق همین مطلب در سایت توسعه دهندگان بازار به اطلاع شما خواهد رسید. در این مطلب در ابتدا در مورد مفاهیم اصلی اندروید که هر توسعه دهندهای باید بداند صحبت خواهیم کرد و بعد نگاهی خواهیم داشت به روندهایی که ساخت برنامه اندرویدی را سادهتر میکنند.
مفاهیم مهم برنامهنویسی اندروید
SDK: کیت توسعه نرمافزاری اندروید (Software Development Kit) مجموعهای از ابزارها محسوب میشود که توسط گوگل ارائه شده و به توسعه دهندگان برای افزایش سهولت در برنامهنویسی و ساخت برنامههای اندرویدی کمک میکند. به جز SDK اگر شما قصد دارید از جاوا برای ساخت برنامه خود استفاده کنید، در این صورت باید از کیت توسعه جاوا که به اختصار JDK نامیده میشود برای توسعه برنامه اندرویدی استفاده کرد. برای دریافت این کیت به سایت اوراکل مراجعه کنید.
Target SDK Version: هر اپلیکیشن اندرویدی برای یک نسخه خاص سیستم عامل اندروید طراحی شده و از نسخههای مشخصی هم پشتیبانی میکند. به نسخهای که اپلیکیشن برای آن طراحی شده Target SDK Version میگوییم. بهتر است که این مقدار را همواره به بالاترین نسخه API Level که توسط گوگل منتشر شده است تغییر بدهید. همچنین در کنار Target SDK Version در برنامه نویسی اندروید با Min SDK Version هم طرف هستیم. این میزان مشخص خواهد کرد که برنامه اندرویدی از نسخههای مشخصی به پایینتر قابل اجرا نباشد. با توجه به تغییرات اعمال شده توسط گوگلپلی، برنامههایی که targetSdkVersion آنها، رقمی کمتر از ۲۸ باشد در کافهبازار قابل انتشار نخواهند بود
در صورتی که Max SDK Version در برنامه تعریف کنید، بازار به دستگاههایی که Sdk بالاتر از عدد تعریفشده را دارند، آن نسخه از برنامه را نمایش نمیدهد.
NDK: این ابزار توسعه که اختصار Native Development Kit است به توسعه دهندگان اندروید اجازه خواهد داد که از کدهای زبانهای C و ++C در برنامه خود استفاده کنند. در نسخههای جدید اندروید کیت توسعه نرمافزاری اندروید یا همان SDK با NDK ترکیب شده است.
Package Name: همهٔ برنامههای اندرویدی دارای یک نام بسته هستند که آنها را از سایر برنامهها متمایز میکند و تنها مختص خودِ آن برنامه است. مهمترین نکته در تعریف پکیج نیم یا همان نام بسته، به منحصربهفرد بودن آن برای هر برنامه اندرویدی برمیگردد. پیش از این در مورد خطایی که با یکسان بودن پکیج نیم برنامه شما با برنامههای دیگر دریافت خواهید کرد در خطاهای متداول پیشخان صحبت کرده بودیم. برای جزئیات بیشتر نامگذاری بستهها را بخوانید.
Version Name: نام نسخه کاربران را متوجه خواهد کرد که نسخه جدید برنامه نسبت به نسخه قبلی به چه اندازه تغییر کرده است. به طور معمول اگر توسعه دهندگان تغییرات کمی را در برنامه اعمال کنند، بهتر است که شماره نسخه برنامه نیز به میزان عددی کمتری تغییر داشته باشد. مثلا اگر بروزرسانی کوچکی برای برنامه خود منتشر کردهاید، بهتر است یک صفر (برای مثال ۱.۰۳) به اعشار سمت چپ برنامه خود اضافه کنید. بروزرسانیهای بزرگتر میتوانند اعداد بزرگتری را شامل شوند و برای نمونه اگر برای برنامه خود یک بروزرسانی بزرگ با تغییرات گسترده منتشر کردهاید، میتوانید شماره نسخه آن را مستقیم به اعداد بزرگ (برای مثال از ۱ به ۲) ارتقا دهید. برای بارگذاری یا انتشار نسخهی جدید از برنامه که به دلیل قوانین انتشار، نیازمند تغییر بوده است، تغییر نام نسخه (version name) اجباری نیست.
Version Code: شماره نسخه برنامه عدد صحیحی است که به کاربران نمایش داده نخواهد شد. شماره نسخه مشخص خواهد کرد که نسخهای از برنامه که در حال ساخت است، نسخه ارتقا یافته آن است یا نه.توسعه دهندگان بازار هنگام بارگذاری برنامه خود در پیشخان توسعه دهندگان باید شماره نسخه آن را افزایش دهند. باید در نظر داشت که Version Code را میتوان هر عدد صحیحی در نظر گرفت و این میزان باید از شماره نسخه قبلی برنامه بزرگتر باشد. به طور کلی نسخه بعدی میتواند هر عددی بزرگتر از ۲ باشد.
برخلاف نام نسخه، برای بارگذاری یا انتشار نسخهی جدید از برنامه، تغییر شماره نسخه (version code) اجباری است. برای جزئیات بیشتر در مورد شماره نسخه و نام نسخه مدیریت نسخهها را بخوانید.
Permission: یکی از مهمترین اصطلاحات برنامه نویسی اندروید مجوز دسترسی است. در هر برنامهای با توجه به کارکرد آن، دسترسیهایی به دستگاه و اطلاعات کاربر وجود دارد که برخی از آنها به عنوان دسترسیهای حساس شناخته میشوند. برای امنیت بیشتر کاربران توسعهدهندگان باید از دسترسیهای مشخص و محدودی برای ساخت برنامه خود استفاده کنند. در نتیجه توسعه دهنده برای هر دسترسی برنامه که از آنها استفاده میکند باید یک توضیح شفاف داشته باشد، در غیر این صورت برنامه از سمت بازار منتشر نخواهد شد. برای جزئیات بیشتر در رابطه با دسترسیها، راهنمای دسترسیها را بخوانید.
API: که اختصار عبارت Application Programming Interface است، رابطهایی نرمافزاری به شمار میروند که میتوان آنها را به عنوان یک مرز مشترک بین دو سیستم و سرویس مجزا تعریف کرد. API بخش مهمی از کدهای نوشته شده توسط برنامهنویسان هستند که باعث ارتباط و اجازه دسترسی بین برنامههای مختلف میشوند.
این کدها کمک خواهند کرد تا برنامه اندرویدی با سایر برنامهها ارتباط برقرار کند. برای مثال هنگامی که قسمتی از یک متن در برنامهی LibreOffice را کپی کرده و در یکی از برنامههای Excel یا ورد paste میکنید، API مربوط به این بخش، وظیفهی تعریف دادههای جابجا شده را برای دو برنامه به عهده گرفته است و به همین دلیل شما همان متن را در محیط برنامهی دوم هم مشاهده میکنید. برای مثال استفاده از بلوتوث و شتاب سنج در برنامهها با استفاده از همین رابطها امکان پذیر است.
Emulator: در برنامه نویسی اندروید برای آنکه توسعه دهندگان متوجه نتیجه خروجی کار خود شوند از شبیهساز استفاده میکنند. شبیهساز کمک خواهد کرد تا توسعه دهندگان در لحظه متوجه شوند تغییراتی که در برنامه خود اعمال کردهاند به چه شکلی برای کاربر به نمایش گذاشته خواهند شد. میتوان از دستگاههای اندرویدی هم برای تست برنامهها استفاده کرد اما استفاده از شبیهساز کمک خواهد کرد تا روند اصلاح مشکلات برنامه با سرعت بیشتری دنبال شود. توسعه دهندگان میتوانند چه از شبیهساز موجود در اندروید استودیو و چه نمونههای مشابه برای انجام این کار استفاده کنند.
Manifest یا شناسنامه اپ: قابل ذکر است که هر برنامه اندرویدی باید شامل یک فایل AndroidManifest.xml در ریشه منبع پروژه باشد. مانیفست شامل اطلاعات مهمی در مورد برنامه اندرویدیست که شامل مجوزهای اعطایی و اطلاعات مرتبط با سیستمعامل میشود. مانیفست برای مشخص کردن نام بسته، تعریف مجوزها و تعریف بخشهای اصلی برنامه هم استفاده میشود. به عبارت دیگر مانیفست در برنامه نویسی اندروید به توسعه دهندگان کمک خواهد کرد تا جزئیات مربوط به هویت اپلیکیشن را متوجه شوند. فایلهای مهمی در مانیفست حضور دارند که اختلال در عملکرد هر کدام از آنها باعث خواهد شد تا اپلیکیشن اندرویدی شما بهخوبی کار نکند.
Gradle: از گرادل به عنوان ابزاری برای دریافت خروجی از اپلیکیشن و تست و نصب آن استفاده میکنند. این افزونه توسط گوگل طراحی شده و به توسعه دهندگان کمک میکند تا قادر به گرفتن خروجی برنامه به زبانهای برنامهنویسی دیگری، با استفاده از Groovy باشند. در اندروید استودیو فایل Build.Gradle وجود دارد که در آن کدها به زبان Groovy نوشته شدهاند و کاربران با استفاده از قابلیت شخصیسازی آن میتوانند کدهای مورد نظرشان را در این فایل نوشته و در نهایت خروجی مورد نظر را دریافت کنند.
Activity: اکتیویتی را میتوان یک صفحه از یک اپلیکیشن اندرویدی تعریف کرد. این صفحات دارای دو بخش جاوا و XML هستند. بخش جاوا که کلاس هم آن را مینامنند، تمام کدهای مربوط به جاوا را در خود جای داده است. رابط کاربری اپلیکیشن هم مربوط به بخش XML میشود که برای کاربران نمایش داده خواهد شد. به طور کلی چینش گرافیکی هر برنامهای به طور کامل در بخش XML انجام خواهد شد. گوگل سندی به نام متریال دیزاین هم منتشر کرده که متداول و آسانترین روش برای پیادهسازی XML و کلاس جاوا در برنامه است. برای جزئیات بیشتر به سایت توسعهدهندگان گوگل سر بزنید و نگاهی به تصویر زیر داشته باشید:
برنامه نویسی اندروید
Activity Life Cycle: دوره فعالیت این کمک را به برنامهنویسان خواهد کرد که اکتیویتیهای متفاوتی را برای برنامه تعریف کنند. بعد از اجرا شدن یک برنامه ممکن است کاربر فعالیتهای مختلفی در آن انجام داده و از منویی به منو دیگر جابجا شود. هنگام این جابجایی یک چرخه فعالیت در اپلیکیشن آغاز میشود و مراحلی پشت سر گذاشته میشوند تا برنامه به منو جدید انتقال پیدا کند. ممکن است با توجه به پیچیدگی یک برنامه، آن اپلیکیشن شامل بخشهای مختلف و در نتیجه چرخههای حیات بیشتر شود. در نظر داشته باشید که هنگام اجرای یک چرخه، چرخه قدیمی برنامه نیز بسته یا متوقف خواهد شد.
ساخت سادهتر برنامه اندرویدی
به جز مفاهیمی که پیش از این در مورد آنها صحبت کردیم، تسلط به مفاهیم زیر باعث خواهد شد تا به عنوان یک توسعه دهنده اندروید بتوانید به سهولت بیشتری نسبت به تعریف پروژه و ساخت یک برنامه اندرویدی اقدام کنید.
Android UI Controls: گوگل در اندروید به طور خودکار تعدادی استاندارد را برای رابط کاربری تعریف میکند که به تجربه کاربری بهتر هنگام استفاده از برنامههای اندرویدی کمک خواهد کرد. این رابطهای کاربری از قبل مشخص شده مشکلاتی را که ممکن است در رابطهای کاربری اختصاصی هنگام طراحی به وجود آیند را نخواهند داشت. در ضمن در Android UI Controls تمام رفتارهای کاربر در برنامهها در نظر گرفته شده است و در نتیجه توسعه دهندگان (بهخصوص توسعه دهندگان تازهکار) میتوانند از تجربه کاربری باکیفیت کاربر روی برنامه اندرویدی خود مطمئن شوند.
چیدمان صفحه: سایز نمایش برنامه شما در سیستمعامل اندروید به خاطر ویژگیهای این سیستمعامل دچار تغییر میشود. در ضمن با توجه به این که صفحه نمایش گوشیهای اندرویدی با یکدیگر متفاوت است، برنامه شما در گوشیهای مختلف در اندازههای گوناگونی نمایش داده خواهد شد. برای آن که کاربران اندروید با هر اندازه صفحه نمایشی بتوانند تجربه کاربری مناسبی داشته باشند، گوگل قابلیتهایی را برای شخصیسازی صفحات برنامه فراهم کرده است. برای این کار توسعه دهنده باید مشخص کند که برنامه اندرویدی مورد نظر به صورت خطی (در دو جهت افقی و عمودی) یا با یک کنترل نصبی که در آن بخشهای عمودی، افقی و میانی میتوانند دستورات مختلفی داشته باشند کنترل میشود.
شخصیسازی صفحه نمایش: یک تصور غلط بین برنامه نویسان اندروید این است که آنها باید برنامه را بهگونهای طراحی کنند که فقط مجموعه خاصی از دستگاههای اندروید از آن پشتیبانی میکنند. نتیجه این کار این است که برنامه تنها در تعداد مشخصی از دستگاههای اندرویدی با تمام پتانسیل خود اجرا خواهد شد. برای جلوگیری از رخ دادن این اتفاق، گوگل ابزارهای لازم برای توسعه یک رابط کاربری که طیف وسیعی از دستگاهها و اندازه صفحهنمایشها را پشتیبانی میکند، به توسعه دهندگان ارائه میدهد. به طور کلی پیشنهاد میشود که برنامههای اندرویدی را برای سازگاری با اندازههای زیر طراحی کنید:
- یک نسخه برای صفحه نمایشهای با اندازه ۵ الی ۱۰ اینچی
- یک نسخه بزرگتر برای صفحه نمایشهای تبلتها با اندازه بیشتر از ۱۰ اینچ
البته باید در نظر داشت که ایجاد طرح برای هر چهار نسخه کاملا ضروری نیست و در برخی از برنامهها تنها طراحی یک نسخه معمولی و یک نسخه تبلت کافی خواهد بود. اما برای سازگاری کامل پیشنهاد میشود که هر چهار اندازه بالا را در برنامه خود ذکر کنید.
Intents: برنامه اندرویدی معمولا از سایر برنامههای موجود در دستگاه برای تکمیل اطلاعات مورد نیاز خود استفاده میکنند. با استفاده از Intents میتوانید هم روند برنامهنویسی را کوتاه کرده و هم برنامه را به شکل ساده و قابل استفادهتری در اختیار کاربران قرار دهید. در این مورد میتوانید به Permission که در ابتدای متن به آن اشاره کردیم مراجعه کنید.
برای مثال اگر برنامه شما نیاز دارد تا کاری فراتر از تواناییهایی که برای آنها برنامه نویسی شده را انجام دهد (مانند باز کردن تصاویر، دسترسی به مخاطبین و پخش ویدیو)، توسعه دهندگان باید ابزاری را در نظر بگیرند که یا این کارها را با استفاده از قابلیتهایی که پیش از این در اندروید وجود دارد انجام شده یا این کار به یک برنامه شخص ثالث شناخته شده که احتمالا از قبل روی دستگاه نصب است سپرده شود.
برای مثال اگر برنامه شما نیاز دارد تا کاری فراتر از تواناییهایی که برای آنها برنامه نویسی شده را انجام دهد (مانند باز کردن تصاویر، دسترسی به مخاطبین و پخش ویدیو)، توسعه دهندگان باید ابزاری را در نظر بگیرند که یا این کارها را با استفاده از قابلیتهایی که پیش از این در اندروید وجود دارد انجام شده یا این کار به یک برنامه شخص ثالث شناخته شده که احتمالا از قبل روی دستگاه نصب است سپرده شود. |
به مطالب ارائه شده چه امتیازی میدهید؟
محل نوشتن دیدگاه ...
اگر در مورد محتوا نظر یا پیشنهادی دارید لطفا برای ما بنویسید.
زمان انتشار: ۱۴۰۰-۰۸-۱۱ ۲۰:۱۰
آخرین بهروزرسانی: ۱۴۰۰-۱۲-۰۴ ۱۱:۳۵