نکاتی که قبل از نصب اپلیکیشن باید بدانید

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

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

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

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

 

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

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

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

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

در دنیای اندروید برخی از گوشی ها از openGLES (open source graphic library)2.0 پشتیبانی می کنند و برخی دیگر از OpenGL ES3.0.

در بین سیستم های عامل موبایل، اندروید به دلیل گستردگی در استفاده، سلطه خود را در این بخش به اثبات رسانده و نسخه های متعدد آن مانند 4.2.4.4 و 5.0 در گوشی های مختلف مورد استفاده قرار می گیرد. حتی Amazon’s Fire OS، Cyanogenmod و MIUI به دلیل برخورداری از هسته اندرویدی زیرمجموعه ای از این پلتفرم هستند.

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

با وجود پشتیبانی این سیستم عامل از معماری های Intel و MIPS در CPU، جینش ARM سهم بیشتری از کاربرد را به خود اختصاص داده به طوری که اگر اپ مورد نظر در پردازنده های مبتنی بر معماری ARM تست نشود، گویا از هیچ آزمونی سربلند بیرون نیامده است.

دلیل اصلی اقبال این معماری قابلیت استفاده از آن در هر دو بخش بازار، یعنی گوشی های بالا رده و پایین رده است. به عنوان مثال سامسونگ در گلکسی S6 از پردازنده هشت هسته ای و 64 بیتی Exnon 7420 مبتنی بر معماری ARM استفاده کرده و گوگل نیز در برنامه اندروید وان که هدف آن قرار دادن گوشی هوشمند در دسترس همگان با نازل ترین قیمت بود، همین معماری را برگزید. اگرچه هسته Cortex-A7 به کار رفته در اندروید وان سه برابر کندتر از هسته Cortex-A57 به کار رفته در S6 است اما به دلیل قیمت پایین برای پروژه اندروید وان مناسب بوده و انعطاف پذیری معماری بر پایه ARM را به اثبات می رساند.

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

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

همچنین این آمار نشان می دهد که 40 درصد گوشی های مورد استفاده کمتر از یک گیگابایت رم دارند. بنابراین با توجه به اینکه تقریبا همه گوشی های اندرویدی دو هسته ای بوده و بیش از نیمی از آنها چهار هسته ای هستند، برای افزایش عملکرد اپلیکیشن ها باید خاصیت Multi-Threading یا چند نخی را نیز مورد توجه قرار داد. در این تکنولوژی برنامه در یک Thread (نخ) به طور پیش فرض اجرا می شود و برای افزایش سرعت و کارایی می توان چند Thread دیگر به موازات Thread اصلی ایجاد کرد تا دستوراتی که قابلیت اجرای همزمان دارند با سرعت بیشتری اجرا شوند.

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

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

قبل از نصب اپلیکیشن روی گوشی مطالعه کنید

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

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

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

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

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

جمع بندی

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

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

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