ابزار سایت

راهنمای_سفارشی_سازی_و_توسعه_نسخه_اندروید_شبکه_اجتماعی

این یک نگارش قدیمی از این مطلب است!

فصل 1- ساخت و سفارشی‌سازی نسخه اندروید تلفن همراه

1-1- مقدمه

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

1-2- راهنمای ساخت و سفارشی‌سازی برنامه

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

شکل 1: محل دریافت کد منبع در درگاه شاب

تمامی کدهای ایجاد شده و ارائه شده به کاربران به نحوی طراحی شده است که تا متولیان با کمترین تغییرات در کد بتوانند نسخه تلفن همراه شبکه اجتماعی خود را ایجاد کنند. به همین منظور فایلی تحت عنوان «config.json» ایجاد شده است که تمامی تنظیمات مورد نیاز را شامل می¬شود. جدول 1 نشان دهنده محتویان درون این فایل است.

نام متغیر مقدار پیشفرض شرح نیازمند تغییر توسط متولیان
home_url http://demo.shub.ir/ نشانی اینترنتی شبکه اجتماعی بله
information_url mobile/service/information نشانی کنترل‌کننده درخواست‌ها خیر
sign_in_url sign-in نشانی ورود خیر
sign_out_url sign-out نشانی خروج خیر
join_url join نشانی عضویت خیر
persian_font_asset_path fonts/IRANSansMobile.ttf آدرس فونت خیر
application_exit_code 99999 کد دکمه خروج از برنامه خیر
using_mobile_cookie_label UsingMobileApp=android نشان‌دهنده استفاده‌کننده از برنامه اندروید خیر
user_agent_description Mozilla/5.0 (Linux; 7.0; Android SDK built Chrome/51.0.2704.91 Mobile Safari/537.36 توضیحات مرورگر خیر
information_receiver_timeout 20000 میزان زمان انتظار پاسخ درخواست در صورت نیاز
show_desktop_version false نمایش نسخه رومیزی در صورت نیاز
default_language_tag fa-IR برچسب زبان پیش‌فرض شبکه اجتماعی در صورت نیاز
download_folder shub نام پوشه اسناد دریافتی کاربران در صورت نیاز
جدول 1: متغیرهای درون فایل تنظیمات پروژه اندروید

همان‌طور که در جدول 1 قابل مشاهده است، تعداد متغیرهای مورد نیاز برای تغییر توسط متولیان کم بوده که این امر، باعث تولید سریع‌تر نسخه تلفن همراه توسط آن‌ها می‌شود.

متولیان علاوه بر تغییراتی که باید در فایل «config.json» بدهند باید اقدامات زیر را نیز انجام دهند:

  1. ایجاد بستر اعلان
  2. تغییر نشان شبکه اجتماعی
  3. تغییرات مورد نظر در فایل ترجمه
  4. تغییرات مورد نظر در رنگ‌ها

شرح تغییرات هر یک از موارد بالا در جدول 2 آمده است.

عنوان تغییر شرح
ایجاد بستر اعلان وارد پوشه app شده و فایل google-services.json تولیدشده توسط FCM را در آن پوشه قرار دهید.
تغییر نشان (logo) وارد پوشه mipmap شده و نشان‌های با عناوین «ic_launcher.png» و «ic_launcher_raw.png» را برابر نشان مورد نظر خود قرار دهید.
تغییرات نوشته‌های درون ترجمه وارد پوشه values/strins شده و متن مورد نیاز خود را شناسایی و تغییر دهید.
تغییرات رنگ‌ها وارد پوشه values/colors شده و رنگ مورد نظر خود را انتخاب کنید.
جدول 2: شرح تغییرات منابع

1-2-1- ایجاد بستر اعلان

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

شکل 2: سامانه Firebase

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

شکل 3: شروع فرایند ایجاد پروژه جدید

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

شکل 4: صفحه ورود اطلاعات پروژه

پس از چند ثانیه در صورت موفقیت‌آمیز بودن ایجاد پروژه، صفحه مدیریت پروژه مطابق شکل 5 به نمایش در می‌آيد. در این صفحه باید جهت افزودن فایربیس به پروژه اندروید، دکمه مشخص شده انتخاب شود.

شکل 5: افزودن Firebase به پروژه اندروید

در هنگام تولید پروژه باید متغیر «package name» دقیقاً برابر متغیر «package identifier» پروژه اندروید باشد. مطابق شکل 6 لازم است پس از درج مقدار صحیح این متغیر، دکمه ثبت برنامه انتخاب شود.

شکل 6: درج package name

پس از درج اطلاعات مورد نیاز، یک فایل با نام google-services.json به صورت خودکار ایجاد می‌شود که حاوی تنظیمات فایربیس برای پروژه اندروید است. مطابق شکل 7 باید دکمه مشخص شده انتخاب و پس از دریافت فایل مورد نظر، لازم است این فایل درون پروژه اندروید در ذیل فایل app قرار گیرد.

شکل 7: دریافت فایل google-services.json

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

شکل 8: راهنمای تنظیمات پروژه اندروید برای فایربیس

برای تکمیل فرایند، باید کد ارسال اعلان نیز از پروژه ایجادشده در سامانه FCM وارد موتوشاب شود. به همین منظور وارد بخش «Cloud Messaging» شده و مقدار متغیر «Server key» باید وارد متغیر «کلید پروژه FCM برای ارسال اعلان» درون بخش تنظیمات افزونه «پشتیبانی از نرم‌افزار تلفن همراه» شود. شکل 9 بخش تنظیمات افزونه «پشتیبانی از نرم‌افزار تلفن همراه» را نشان می‌دهد.

شکل 9: بخش تنظیمات افزونه پشتیبانی از نرم‌افزار تلفن همراه

1-2-2- نحوه ایجاد فایل APK

1- استفاده از نرم‌افزار محیط توسعه یکپارچه به‌منظور تولید فایل apk برنامه تلفن همراه، ابتدا باید پروژه با نرم‌افزار محیط توسعه یکپارچه باز شود. برای این کار می‌توان از نرم‌افزار Android Stuido استفاده کرد. 2- اعمال تغییرات مورد نیاز با توجه به توضیحات گفته شده و مستندات فنی ارائه شده در بخش بعدی، تغییرات مورد نیاز باید در فایل‌ها اعمال شوند. 3- تولید فایل APK از طریق منو در قسمت بالا نرم‌افزار Android Studio وارد مورد Build شده و زیرمورد Generate Signed APK انتخاب شود. شکل 10 نشان‌دهنده پنجره بازشده بعد از کلیک بر روی زیرمورد فوق را نشان می‌دهد.

شکل 10: پنجره ایجاد شناسه به‌منظور تولید APK

با واردکردن اطلاعات مورد نیاز و انتخاب مقدار release در متغیر Build Type در مرحله بعد، فایل APK مورد نظر ایجاد خواهد شد. از نظر نسخه‌های sign کردن، لازم است تا تیک مربوط به V1 jar زده شود.

1-2-3- تشریح فنی

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

  • کلاس MainActivity

این کلاس به‌عنوان اصلی‌ترین موجودیت، وظیفه مدیریت تمامی مؤلفه‌ها را بر عهده دارد. تمامی توابع درون این کلاس در جدول 3 به همراه شرح آمده است.

نام تابع شرح
getSwipeContainer این تابع مؤلفه‌ای که امکان بارگذاری مجدد صفحه را از طریق کشیدن به پایین صفحه فراهم می‌کند، بازمی‌گرداند.
getProfileMenu این تابع مؤلفه نمایشگر منوی کاربری را که به‌صورت یک دکمه در پایین سمت چپ برنامه قابل مشاهده است را برمی‌گرداند.
getNavigationView این تابع مؤلفه نمایشگر منو را برمی‌گرداند.
getUserAvatar این تابع مؤلفه نمایشگر تصویر نمایه کاربر را برمی‌گرداند.
getRegisterImage این تابع مؤلفه نمایشگر تصویر دکمه ثبت‌نام در منو را برمی‌گرداند.
getSignInImage این تابع مؤلفه نمایشگر تصویر دکمه ورود در منو را برمی‌گرداند.
initSwipeContainer این تابع وظیفه راه‌اندازی مؤلفه‌ای که امکان بارگذاری مجدد صفحه را از طریق کشیدن به پایین صفحه فراهم می‌کند، را دارد.
onResume این تابع به‌صورت فراخوان در زمان ورود به برنامه صدا زده می‌شود.
onPause این تابع به‌صورت فراخوان در زمان خروج از برنامه صدا زده می‌شود.
onStop این تابع به‌صورت فراخوان در زمان بسته شدن برنامه صدا زده می‌شود.
onDestroy این تابع به‌صورت فراخوان در زمان بسته شدن برنامه به‌صورت کامل صدا زده می‌شود.
onActivityResult این تابع زمانی صدا زده می‌شود که کاربر قصد بارگذاری فایلی را از تلفن همراه خود کرده باشد و آن فایل را انتخاب کرده باشد. این تابع وظیفه مدیریت فایل و نحوه قرارگیری آن در فرم را دارد.
showProfileMenu این تابع وظیفه نمایش دکمه منوی کاربری را برعهده دارد.
hideProfileMenu این تابع وظیفه حذف دکمه منوی کاربری را برعهده دارد.
pageStartToLoad این تابع زمانی‌که یک صفحه شروع به بارگیری کند، صدا زده می‌شود. با صدا شدن این تابع، منوی کاربری حذف و مؤلفه پیش‌بارگذار نمایش داده می‌شود.
loadingPageFinished این تابع زمانی‌که بارگیری صفحه کامل شود، صدا زده می‌شود. با صدا شدن این تابع، منوی کاربری نمایش داده‌شده و مؤلفه پیش‌بارگذار حذف می‌شود.
clickOnUserAvatar این تابع با کلیک کاربر بر روی تصویر نمایه صدا زده شده و کاربران ورود یافته را به صفحه نمایه و کاربر مهمان را به صفحه ورود هدایت می‌کند.
clickOnRegisterImage این تابع با کلیک کاربر مهمان بر روی تصویر ثبت‌نام صدا زده شده و کاربران مهمان را به صفحه ثبت‌نام هدایت می‌کند.
clickOnSignInImage این تابع با کلیک کاربر بر روی تصویر ورود (خروج) صدا زده شده و کاربران مهمان را به صفحه ورود (کاربران ورود یافته را به صفحه خروج) هدایت می‌کند.
closeMenu این تابع وظیفه بستن مؤلفه منو را برعهده دارد.
isMenuOpen این تابع مشخص‌کننده باز یا بسته بودن مؤلفه منو را دارد.
getLoadingIndicator این تابع مؤلفه نمایشگر پیش‌بارگزار را برمی‌گرداند.
initLoadingIndicator این تابع وظیفه راه‌اندازی مؤلفه نمایشگر پیش‌بارگذار را برعهده دارد.
showLoadingIndicator این تابع وظیفه نمایش مؤلفه نمایشگر پیش‌بارگذار را برعهده دارد.
hideLoadingIndicator این تابع وظیفه حذف مؤلفه نمایشگر پیش‌بارگذار را برعهده دارد.
setLocale این تابع وظیفه تعیین زبان محلی برنامه است. از طریق این تابع زبان محلی برنامه تغییر کرده و تمامی مؤلفه‌ها به‌صورت راست‌چین یا چپ‌چین نمایش داده می‌شوند.
getCurrentLanguageTag این تابع وظیفه بازگردانی زبان محلی فعلی برنامه را دارد.
changeLocale این تابع وظیفه تغییر زبان محلی برنامه را برعهده داشته که بعد از تغییر زبان محلی، برنامه به‌منظور اعمال تغییرات، از نو آغاز می‌شود.
updateConfigurationLocale این تابع وظیفه به‌روزرسانی تنظیمات زبان محلی برنامه را دارد.
restartActivity این تابع وظیفه شروع مجدد برنامه را برعهده دارد.
onConfigurationChanged این تابع به‌صورت خودکار در زمانی‌که تنظیمات برنامه تغییر می‌کند صدا زده شده و وظیفه به‌روزرسانی تنظیمات برنامه را دارد.
loadUrl این تابع وظیفه بارگیری صفحه را توسط نشانی اینترنتی درون ورودی خود برعهده دارد.
clearWebviewCache این تابع وظیفه خالی کردن حافظه نهان مؤلفه نمایشگر وب را برعهده دارد.
onSaveInstanceState این تابع وظیفه ذخیره حالت جدید برنامه در زمان بسته شدن آن را دارد.
onBackPressed این تابع به‌صورت خودکار در زمانی‌که کاربر دکمه بازگشت تلفن همراه خود را فشار می‌دهد، صدا زده می‌شود. این تابع درصورتی‌که کاربر در صفحه اول دو بار صدا زده شود، برنامه را بسته و در غیر این صورت، توسط مؤلفه نمایشگر وب، کاربر را به صفحه قبلی هدایت می‌کند.
reload این تابع وظیفه بارگیری مجدد صفحه فعلی کاربر را برعهده دارد.
goBack این تابع توسط مؤلفه نمایشگر وب، کاربر را به صفحه قبلی هدایت می‌کند.
onNavigationItemSelected این تابع در زمانی‌که یکی از موارد درون منو انتخاب شود، به‌صورت خودکار صدا زده می‌شود.
reconfigureInformation این تابع وظیفه مدیریت مقادیر دریافتی از طریق وب‌سرویس را برعهده دارد. مواردی همانند منوی اصلی، منوی زیرین، زبان‌ها و اطلاعات کاربر توسط این تابع مدیریت می‌شوند.
fetchAllMenuItems این تابع وظیفه اجرای آسنکرون دریافت اطلاعات از طریق وب‌سرویس را برعهده دارد.
addMenuItemsToMenu این تابع وظیفه اضافه کردن مقادیر دریافتی منو به مؤلفه منو را برعهده دارد.
initApiVersion این تابع موارد مورد نیاز در هر نسخه از اندروید را در صورت نیاز راه‌اندازی می‌کند.
createErrorOnLoadingMenuItem این تابع وظیفه مدیریت خطا در هنگام دریافت اطلاعات را برعهده دارد.
findUrlOfItemInMenu این تابع وظیفه شناسایی نشانی اینترنتی مورد انتخاب‌شده در منو را برعهده دارد. این تابع در صورت انتخاب موارد درون بخش زبان، در صورت نیاز، فرایند تغییر زبان محلی برنامه را اجرا می‌کند.
جدول 3: شرح توابع درون کلاس MainActivity
  • کلاس CustomTypefaceSpan

این کلاس به‌منظور تغییر فونت نوشته‌ها به وجود آمده است.

  • کلاس UTIL

این کلاس به‌عنوان یک کلاس کمکی برای استفاده در کلاس‌های دیگر به وجود آمده است. توابع درون این کلاس در جدول 4 به همراه شرح آمده است.

نام تابع شرح
convertToCustomFont این تابع وظیفه تغییر فونت نوشته داده‌شده به‌عنوان ورودی با نوع CharSequence را برعهده دارد.
setCustomFont این تابع وظیفه تغییر فونت نوشته داده‌شده به‌عنوان ورودی با نوع TextView را برعهده دارد.
getRoundedCornerBitmap این تابع وظیفه گرد کردن گوشه‌های تصویر داده‌شده را برعهده دارد. این تابع به‌عنوان ورودی تنها تصاویر از نوع Bitmap را می‌پذیرد. لذا تصویر نمایه دریافت شده از طریق مؤلفه وب‌سرویس، به Bitmap تغییر کرده و این تابع بر روی آن اعمال می‌شود.
getRealPathFromURI این تابع وظیفه برگرداندن آدرس کامل فایل درون تلفن همراه کاربران را به‌منظور استفاده در فیلدهای مبتنی بر فایل برعهده دارد.
isInMenuBlackList این تابع وظیفه شناسایی غیرمجاز بودن موارد درون منو را برعهده دارد. برای مثال منوی نسخه رومیزی جزو موارد غیرمجاز شناخته‌شده و در فهرست موارد منو پدیدار نمی‌شود.
getMainTagOfLocale این تابع وظیفه برگرداندن برچسب اصلی زبان محلی را برعهده دارد. برای مثال برچسب زبان فارسی برابر fa-IR بوده که این تابع برچسب اصلی آن‌که fa است را برمی‌گرداند.
getMenuIcon این تابع وظیفه برگرداندن آیکون مرتبط با هر مورد از منو را برعهده دارد.
isInArrayOfExtensions این تابع وظیفه شناسایی موارد قابل دریافت در هنگام بارگیری مؤلفه نمایشگر وب را برعهده دارد. برای مثال اگر کاربری قصد دریافت فایل از طریق برنامه تلفن همراه را داشته باشد، این تابع در صورت مجاز دانستن دریافت آن فایل، امکان دریافت برای کاربر را فراهم می‌کند.
downloadFile این تابع وظیفه اجرای آسنکرون فرایند دریافت فایل را برعهده دارد.
downloadFileUsingConnection این تابع وظیفه فرایند دریافت فایل را برعهده دارد. درصورتی‌که تلفن همراه کاربر دارای مدیریت دریافت فایل باشد، فرایند دریافت فایل به آن مؤلفه محول شده و در صورت عدم وجود آن، فایل‌ها درون پوشه‌ای که در فایل تنظیمات config.json تعیین‌شده، منتقل می‌شوند.
showNotification این تابع وظیفه نمایش اعلان درون برنامه‌ای را برعهده دارد.
جدول 4: شرح توابع درون کلاس MainActivity
  • کلاس User

این کلاس به‌عنوان موجودیت کاربر ایجادشده و شامل اطلاعات زیر از این موجودیت است:

  1. نام
  2. رایانامه
  3. نشانی اینترنتی تصویر نمایه
  4. نشانی اینترنتی صفحه نمایه کاربر

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

  • کلاس MyMenuItem

این کلاس به‌عنوان موجودیت موارد درون فهرست تولید شده و شامل اطلاعات زیر است:

  1. عنوان
  2. نشانی اینترنتی
  3. برچسب
  4. مورد فعلی
  5. شناسه زبان
  6. وجود یا عدم وجود راست‌چین

موارد 3 تا 6 تنها برای موارد درون بخش زبان به کار برده شده و موارد دیگر درون فهرست به‌صورت خالی در نظر گرفته می‌شوند.

کلاس Information

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

  1. آرایه‌ای از موجودیت موارد درون فهرست برای بخش فهرست اصلی
  2. آرایه‌ای از موجودیت موارد درون فهرست برای بخش فهرست زیرین
  3. آرایه‌ای از موجودیت موارد درون فهرست برای بخش فهرست زبان‌ها
  4. موجودیت کاربر

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

  • کلاس InternetConnection

این کلاس به‌منظور شناسایی وجود بستر اینترنت در تلفن همراه کاربر به وجود آمده است. توابع درون این کلاس در جدول 5 شرح داده شده است.

نام تابع شرح
checkNetworkConnection این تابع وظیفه شناسایی وجود اینترنت در برنامه تلفن همراه را برعهده دارد.
جدول 5: شرح توابع درون کلاس InternetConnection
  • کلاس CookieUtils

این کلاس به‌عنوان کلاس کمکی مؤلفه کوکی به وجود آمده است. توابع درون این کلاس در جدول 6 شرح داده است.

نام تابع شرح
flushCookies این تابع وظیفه تثبیت اطلاعات درون کوکی را برعهده دارد.
جدول 6: شرح توابع درون کلاس CookieUtils
  • کلاس ConnectivityReceiver

این کلاس به‌منظور شناسایی تغییر در بستر شبکه اینترنت کاربر به وجود آمده است. توابع درون این کلاس در جدول 7 شرح داده شده است.

شرح نام تابع
onReceive این تابع به‌صورت خودکار در زمان اتصال اینترنت تلفن همراه کاربر صدا زده می‌شود.
register این تابع وظیفه اجرای خدمت شناسایی قطع و وصل شدن بستر اینترنتی تلفن همراه کاربر را برعهده دارد.
unregister این تابع وظیفه حذف خدمت شناسایی قطع و وصل شدن بستر اینترنتی تلفن همراه کاربر را برعهده دارد.
جدول 7: شرح توابع درون کلاس ConnectivityReceiver
  • کلاس MyFirebaseInstanceIDService

این کلاس به‌منظور شناسایی شناسه اعلان تلفن همراه به وجود آمده است. توابع درون این کلاس در جدول 8 شرح داده شده است.

نام تابع شرح
onTokenRefresh این تابع به‌صورت خودکار در زمان تغییر یا ایجاد شناسه مخصوص اعلان تلفن همراه کاربر صدا زده می‌شود. درون این تابع و با استفاده از مؤلفه مدیریت کوکی‌ها، شناسه اعلان کاربر درون کوکی او ایجاد شده یا به‌روز می‌شود.
جدول 8: شرح توابع درون کلاس MyFirebaseInstanceIDService
  • کلاس MyFirebaseMessagingService

این کلاس به‌عنوان دریافت‌کننده اعلان ارسال‌شده از سامانه FCM ایجاد شده است. توابع درون این کلاس در جدول 9 شرح داده‌شده است.

نام تابع شرح
onMessageReceived این تابع به‌صورت خودکار در زمان ارسال یک اعلان به تلفن همراه کاربر صدا زده‌شده و مقدمات نمایش اعلان درون این تابع صورت می‌پذیرد.
جدول 9
  • کلاس NavigationHelper

این کلاس به‌عنوان کلاس کمکی برای شناسایی نشانی‌های اینترنتی درونی و بیرونی ایجاد شده است. توابع درون این کلاس در جدول 10شرح داده شده است.

نام تابع شرح
isInternalUri این تابع وظیفه شناسایی درونی یا بیرونی بودن نشانی اینترنتی داده‌شده به‌عنوان ورودی را برعهده دارد.
checkUrlForOverriding این تابع مشخص‌کننده باز کردن نشانی اینترنتی توسط برنامه تلفن همراه یا توسط برنامه خارجی است.
جدول 10: شرح توابع درون کلاس NavigationHelper
  • کلاس MenuFeedTask

این کلاس وظیفه اجرای آسنکرون دریافت اطلاعات از طریق وب‌سرویس را برعهده دارد. توابع درون این کلاس در جدول 11 شرح داده شده است.

نام تابع شرح
doInBackground این تابع وظیفه اجرای آسنکرون تابع درون خود را برعهده دارد.
onPostExecute این تابع به‌صورت خودکار پس از اتمام تابع به‌صورت آسنکرون اجرا شده، صدا زده می‌شود.
جدول 11: شرح توابع درون کلاس MenuFeedTask
  • کلاس InformationReceiver

این کلاس برای اجرای فرایند دریافت اطلاعات از طریق وب‌سرویس را برعهده دارد. توابع درون این کلاس در جدول 12 شرح داده‌شده است.

نام تابع شرح
getInformation این تابع وظیفه اتصال به و دریافت اطلاعات از وب‌سرویس را برعهده دارد.
getBitmapFromURL این تابع وظیفه تغییر نوع تصویر نمایه کاربران به نوع Bitmap را برعهده دارد.
جدول 12: شرح توابع درون کلاس InformationReceiver
  • کلاس ShubViewClient

این کلاس به‌عنوان موجودیت مؤلفه نمایشگر وب به وجود آمده است. توابع درون این کلاس در جدول 13 شرح داده شده است.

نام تابع شرح
shouldOverrideUrlLoading این تابع وظیفه مدیریت نشانی‌های اینترنتی است. تمامی نشانی‌های اینترنتی هدایت شده در مؤلفه نمایشگر وب، قبل از اجرا از این تابع عبور خواهند کرد.
onPageFinished این تابع به‌صورت خودکار در زمان اتمام بارگیری صفحات صدا زده می‌شود.
onPageStarted این تابع به‌صورت خودکار در زمان شروع بارگیری صفحات صدا زده می‌شود.
onReceivedSslError این تابع وظیفه مدیریت خطا در هنگام بارگیری نشانی اینترنتی را برعهده دارد. تمامی خطاها از طریق فایل با زبان HTML با عنوان «error_message.html» در پوشه assets/custom_message به کاربر نمایش داده می‌شود.
addUrlToHistory این تابع وظیفه اضافه کردن نشانی‌های اینترنتی به تاریخچه مؤلفه نمایشگر وب را برعهده دارد.
جدول 13: شرح توابع درون کلاس ShubViewClient
  • کلاس ChromeClient

این کلاس به‌منظور رفع محدودیت‌های موجود در کلاس ShubViewClient به وجود آمده است. توابع درون این کلاس در جدول 14 شرح داده شده است.

نام تابع شرح
openFileChooser این تابع وظیفه انجام اقدامات لازم به‌منظور نمایش مؤلفه انتخاب فایل دستگاه تلفن همراه کاربر را برعهده دارد.
onShowFileChooser این تابع وظیفه نمایش مؤلفه انتخاب فایل دستگاه تلفن همراه کاربر را برعهده دارد.
startActivityOpenChooser این تابع وظیفه بررسی نوع فایل قابل بارگذاری را برعهده دارد.
جدول 14: شرح توابع درون کلاس ChromeClient
  • کلاس Config

این کلاس به‌منظور نگهداری داده‌های مورد نیاز برنامه تلفن همراه در هنگام اجرای برنامه ایجاد شده است. این کلاس مقادیر تنظیمات از فایلی با عنوان «config.json» که در پوشه assets قرار داد، را خوانده و در طول اجرای برنامه در اختیار دیگر کلاس‌ها قرار می‌دهد. توابع درون این کلاس در جدول 15شرح داده شده است.

نام تابع شرح
Config این تابع وظیفه خواندن و نگهداری متغیرها از فایل با عنوان «config.json» را برعهده دارد.
setInitialHost این تابع وظیفه جداسازی حروف www. از نشانی اینترنتی واردشده در فایل با عنوان «config.json» را برعهده دارد.
جدول 15: شرح توابع درون کلاس Config

1-2-4- تنظیمات پروژه

تنظیمات پروژه به دو فایل build.gradle درون پوشه پروژه و پوشه برنامه تولیدشده در پروژه خلاصه می‌شود. متغیرهای درون فایل build.gradle نیازی به تغییر نداشته و متغیرهای فایل build.gradle برنامه به شرح زیر است:

نام متغیر مقدار شرح
compileSdkVersion 25 این مقدار مشخص‌کننده نسخه اندروید برای کامپایل کردن کدها استفاده می‌شود.
buildToolsVersion این مقدار مشخص‌کننده نسخه اندروید به‌منظور ساختن برنامه استفاده می‌شود.
applicationId ir.iiscenter.shub این مقدار مشخص‌کننده شناسه پروژه است.
minSdkVersion 16 این مقدار مشخص‌کننده کمینه نسخه قابل پشتیبانی برنامه تلفن همراه است.
targetSdkVersion 25 این مقدار مشخص‌کننده بیشینه نسخه قابل پشتیبانی برنامه تلفن همراه است.
versionCode 1 این مقدار مشخص‌کننده نسخه ساخت برنامه است.
versionName 1 این مقدار مشخص‌کننده نسخه برنامه است.
dependencies آرایه‌ای از کتابخانه‌های مورد نیاز این مقدار مشخص‌کننده کتابخانه‌های مورد نیاز استفاده‌شده در پروژه است.
جدول 16: شرح متغیرهای درون فایل build.gradle
راهنمای_سفارشی_سازی_و_توسعه_نسخه_اندروید_شبکه_اجتماعی.1547553312.txt.gz · آخرین ویرایش: 2019/01/15 12:45