نمایش نتایج 1 تا 6 از 6

نام تاپیک: برنامه نویسی ماژولار در آندروید؟

  1. #1

    برنامه نویسی ماژولار در آندروید؟

    با سلام خدمت دوستان عزیز
    من آشنایی بسیار محدودی با برنامه نویسی آندروید دارم.از این جهت در خصوص نوشتن یک برنامه با زبان جاوا برای آندروید چند تا سوال دارم که ممنون میشم دوستان راهنمایی بفرمایند:


    اول- قصد داریم پروژه ای را بصورت ماژولار برای سیستم آندروید و iOS طراحی کنیم.در وهله اول می خوام بدونم در پروژه های آندروید و یا iOS آیا میشه مثل برنامه نویسی دسکتاپ بجای نوشتن پروژه در قالب یک فایل EXEحجیم، پروژه را در قالب یک فایل سبک EXE( یک پوسته یا SHELL) به همراه چندین فایل dll پیاده سازی نمود بطوری که در زمان اجرا فایلdll مورد نظر از درون برنامه Shellفراخوانی بشه؟به عبارت بهتر در برنامه نویسی آندروید معادل فایل های DLL در برنامه نویسی ویندوز چه هست که بتوانیم یک پروژه را بصورت ماژولار پیاده سازی کنیم؟

    دوم- سوال بعدی من بی ارتباط با سوال اول نیست. بحث بروز رسانی پروژه هست. چنانچه جواب سوال اول بنده در خصوص برنامه نویسی مازولار در آندروید،مثبت باشه، بهترین شیوه برای بروز رسانی ماژول های پروژه بنظر دوستان چه شیوه ای هست؟

    سوم-آیا در برنامه نویسی آندروید مفهومی با عنوان Service وجود دارد؟با همان مفاهیم و کارایی Windows Services در برنامه نویسی دسکتاب(برنامه هایی که GUI ندارند و در Back Ground اجرا می شوند )

    چهارم- بهترین و خوش دسترین دیتابیس سبک(لایت) مورد استفاده برای دخیره اطلاعات Local بنظر دوستان کدام دیتابیس هست؟

    و آخرین سوال- اتصال به درگاههای بانکی از طریق برنامه های آندرویدی به چه صورت هست؟(اصطلاح پرداخت درون برنامه ای که در خصوص کافه بازار مطرح هست به چه معناییه؟)

    ممنون از همه دوستان که راهنمایی می کنند.....
    روزتون پر فروغ

  2. #2

    نقل قول: برنامه نویسی ماژولار در آندروید؟

    اول- قصد داریم پروژه ای را بصورت ماژولار برای سیستم آندروید و iOS طراحی کنیم.در وهله اول می خوام بدونم در پروژه های آندروید و یا iOS آیا میشه مثل برنامه نویسی دسکتاپ بجای نوشتن پروژه در قالب یک فایل EXEحجیم، پروژه را در قالب یک فایل سبک EXE( یک پوسته یا SHELL) به همراه چندین فایل dll پیاده سازی نمود بطوری که در زمان اجرا فایلdll مورد نظر از درون برنامه Shellفراخوانی بشه؟به عبارت بهتر در برنامه نویسی آندروید معادل فایل های DLL در برنامه نویسی ویندوز چه هست که بتوانیم یک پروژه را بصورت ماژولار پیاده سازی کنیم؟
    دوست گرامی!
    برای ساخت نرم افزارهای اندرویدی شما چند گزینه دارید.
    1- زبان جاوا (البته توزیع گوگل نه توزیع اوراکل)
    2- زبان سی شارپ (کتابخانه زامارین )
    3- زبان دلفی
    4- زبان بیسیک فور
    5- جاوا اسکریپت (Node Js , React Js)
    6- ویژوال سی مایکروسافت
    7- سی پلاس پلاس (فریم وورک Qt)
    ...
    همانطور که مشاهده میکنید تمامی زبانهایی که معرفی کرده ام شی گرائی را به طور کامل پشتیبانی میکنند حالا برخی مانند جاوا خیلی بیشتر شی گرا هست یک زبان هم مثل سی پلاس پلاس دورگه است. به هرحال شما با هرکدوم که بخواهید طراحی کنید نیاز به ابزارهای اصلی جاوا خواهید داشت و این یعنی شما می توانید برنامه هایی بنویسید که تمام تکنیک های شی گرائی را لحاظ کنند (Functionality , Usability , Reliability , Performance ,Supportability) و البته کاملا ماژولار باشند جالب هست که بدانید که در اندروید کتابخانه های زیادی برای رفع خیلی از مشکلات نوشته شده اند که خیلی خوب هست که حتما از اینها استفاده بشه.
    در باره ساختن کتابخانه هم در اندروید چون که سیستم عامل اندروید لینوکس بیس هست پس قاعدتا شما می توانید کتابخانه های Shared object که به so معروف هستند بسازید ویا استفاده کنید( که تقریبا شبیه همون DLL های ویندوز هستند البته برای لینوکس) اگر زبان برنامه نویسی شما سی پلاس پلاس باشه و اگر زبان جاوا انتخاب شماست که خوب در جاوا به راحتی می تونید کتابخانه هایی از نوع JAR بسازید و استفاده کنید

    دوم- سوال بعدی من بی ارتباط با سوال اول نیست. بحث بروز رسانی پروژه هست. چنانچه جواب سوال اول بنده در خصوص برنامه نویسی مازولار در آندروید،مثبت باشه، بهترین شیوه برای بروز رسانی ماژول های پروژه بنظر دوستان چه شیوه ای هست؟
    اگر منظور تون فایل های کتابخانه ای پروژه تون هست که باید عرض کنم که ساختمان اجرای یک apk در سیستم عامل اندروید با مراحل اجرای یک باینری فایل ویندوز خیلی متفاوت هست پس باالطبع شما نمی تونید فایل کتابخانه ای جدا از فایل apk نصب شده در گوشی مقصد کپی کنید یعنی کاری که ما تو ویندوز با dll ها انجام میدیم به راحتی این کتابخانه ها را همراه exe فایل اجرایی برنامه کپی میکنیم و هروقت هم نیاز شد اون ها را به روز میکنیم دیگه با باینری فایل کاری نداریم.
    خیر در اندروید چنین چیزی وجود نداره برای به روز کردن برنامه و کتابخانه ها باید کل برنامه مجددا نصب بشه برای درک بهتر هم بهتره این تاپیک را مطالعه کنید .https://barnamenevis.org/showthread.php?t=547668


    سوم-آیا در برنامه نویسی آندروید مفهومی با عنوان Service وجود دارد؟با همان مفاهیم و کارایی Windows Services در برنامه نویسی دسکتاب(برنامه هایی که GUI ندارند و در Back Ground اجرا می شوند )
    بله وجود داره بسیار هم قوی هستند برای درک عمیق واستفاده راحت از این سرویس ها هم باید مباحث Multi Threading , Concurrency ,Parallel Programming و ساختمان نخ ها دراندروید و نحوه استفاده از نخ های سطح کرنل و سطح کاربری را کاملا بشناسید.

    چهارم- بهترین و خوش دسترین دیتابیس سبک(لایت) مورد استفاده برای دخیره اطلاعات Local بنظر دوستان کدام دیتابیس هست؟
    البته که Sqlite

    و آخرین سوال- اتصال به درگاههای بانکی از طریق برنامه های آندرویدی به چه صورت هست؟(اصطلاح پرداخت درون برنامه ای که در خصوص کافه بازار مطرح هست به چه معناییه؟)
    برایاتصال به درگاههای پرداخت هم باید با نحوه برنامه نویسی سرویس های وب سرویس آشنایی داشته باشید و به راحتی می تونید با استفاده از وب سرویس ها حالا یا REST , SOAP به در گاههای پرداخت بانکی متصل شد و اطلاعات دریافت کرد البته اگر نخواهید وب سرویس هم بنویسید می تونید از همین SDK های آماده مثل همین کافه بازار تو پروژ هاتون استفاده کنید کافی که sdk های لازم را در پروژه هاتون نصب کنید وبه راحتی از آنها استفاده کنید.

  3. #3

    نقل قول: برنامه نویسی ماژولار در آندروید؟

    ممنون از پاسخ شما
    اما من هنوز جواب این سوالم رو دقیقا نگرفتم که اگر بخوایم یک برنامه نصب شده آندرویدی رو بروز رسانی کنیم آیا امکانش هست فقط در Back Ground فایل به قول فرمایش شما SO که جدید هست را دریافت کنیم و در کنار پروژمون قرار دهیم....یا اینکه مجددا بایستی پکیج apk رو با فایل so جدید آماده کرده و برای کلاینتها ارسال کنیم؟
    که در این صورت هر دفعه عملا حجم زیاد و بی خودی از اطلاعات (بخوانید ماژول های از قبل موجود )را برای کلاینت هامجددا ارسال کنیم؟من بدنبال شیوه ای هستم که در صورت امکان بشوه برنامه نویسی دسکتاپ پروژه را به ماژول های کوچک شکانده و در صورت نیاز فقط همان so مورد نظر بروز رسانی بشه...

  4. #4

    نقل قول: برنامه نویسی ماژولار در آندروید؟

    دوست عزیز!
    نیازی نیست شما برای به روز رسانی لایبررهاتون کاری بکنید کافی که وقتی برنامه اندرویدی خودتون را با کلید اولیه که امضا میکنید در دفعات بعد هم در زمانی که تغییراتی در برنامه ویا لایبرری ها لحاض میکنید با همون کلید خروجی جدید را بسازید و در گوشی هدف خود سیستم عامل اندروید این تغییرات را فقط برای شما به روز رسانی میکنه این یعنی کاربر شما حجم اولیه برنامه را مجددا دانلود نمیکنه حالا چطور اینکار میکنه توی اون تاپیکی که در بالا براتون گذاشتم توضیحاتش هست.
    شما برای ساختن یک لایبرری so دو روش پیش رو خواهید داشت
    روش اول خوب با استفاده از دستورات extern "C" , dlopen , dlsym می تونید تو لینوکس با کامپایلر gcc یک so لایبرری درست کنید ولی خوب شما نمی تونید این از این لایبرری در سمت جاوا استفاده کنید چون نیاز به یک رابط بین زبان سی و جاوا دارید.
    روش دوم استفاده از رابط Java Native Interface و Native Development Kit اندروید با زبان سی ویا سی پلاس پلاس یک کتابخانه ایجاد کنید که قادر به ارتباط با دادهای سمت جاوا باشد. وبه راحتی می تونید داخل پروژه اندرویدی خودتون استفاده کنید.
    خوب حالا این لایبرری را نمی تونید مثل یک dll استفاده کنید چون به همراه apk اندروید کلا نمی تونید فایل خارجی ضمیمه کنید خود سیستم عامل به علت همون سخت گیری هایی که در هسته لینوکس هست خودش کتابخانه ها را از داخل apk استخراج میکنه و اگر شما درآینده نیاز به به روز رسانی داشتید خود سیستم عامل تغییرات را بر روی گوش هدف به روز رسانی میکنه.
    پس در جمع بندی شما می تونید ماژولهای نرم افزارتون را به لایبرری تبدیل کنید و در زمان های لازم ازشون استفاده کنید البته به این نکته هم توجه کنید که استفاده از لایبرری های so به این نحو در اندروید کار پسندیده ای نیست وبازدهی برای شما نخواهد داشت پس بهتره مثل خود گوگل کلاسهای ماژولار خودتون را به JAR فایل تبدیل کنید و در پروژه های خودتون استفاده کنید هم بازدهی بهتری داره هم پیچیدگی بسیار کمتری نسبت به so لایبرری وهم سورس های خواناتری خواهید داشت

  5. #5

    نقل قول: برنامه نویسی ماژولار در آندروید؟

    جواب های آفای فرهاد (farhad_shiri_ex) کامل و بی نقص هستن و خودمم استفاده کردم منتهی شما گفتید:
    روش اول خوب با استفاده از دستورات extern "C" , dlopen , dlsym می تونید تو لینوکس با کامپایلر gcc یک so لایبرری درست کنید ولی خوب شما نمی تونید این از این لایبرری در سمت جاوا استفاده کنید چون نیاز به یک رابط بین زبان سی و جاوا دارید.
    این دو تابع که اسم بردید dlsym و dlopen برای استفاده از فایل so داخل کد برنامه استفاده میشن
    dloepn که تابع مشابهش تو ویندوز میشه LoadLibrary برای بارگذاری فایل کتابحونه است و dlsym که تابع مشابهش تو ویندوز میشه GetProcAddress برای بدست آوردن آدرس symbol (تو لینوکس) export func (تو ویندوز) استفاده میشه

  6. #6

    نقل قول: برنامه نویسی ماژولار در آندروید؟

    نقل قول نوشته شده توسط maarek مشاهده تاپیک
    جواب های آفای فرهاد (farhad_shiri_ex) کامل و بی نقص هستن و خودمم استفاده کردم منتهی شما گفتید:


    این دو تابع که اسم بردید dlsym و dlopen برای استفاده از فایل so داخل کد برنامه استفاده میشن
    dloepn که تابع مشابهش تو ویندوز میشه LoadLibrary برای بارگذاری فایل کتابحونه است و dlsym که تابع مشابهش تو ویندوز میشه GetProcAddress برای بدست آوردن آدرس symbol (تو لینوکس) export func (تو ویندوز) استفاده میشه
    ممنون از اشاره تون دوست عزیز...

تاپیک های مشابه

  1. گفتگو: برنامه نویسی ماژولار در Asp.net
    نوشته شده توسط naser2009 در بخش ASP.NET Web Forms
    پاسخ: 13
    آخرین پست: شنبه 22 آبان 1389, 23:18 عصر
  2. برنامه نویسی PHP در محیط Visual Studio.Net
    نوشته شده توسط مهدی کرامتی در بخش PHP
    پاسخ: 5
    آخرین پست: جمعه 27 شهریور 1383, 18:32 عصر
  3. قالب کلی برنامه نویسی اسمبلی در دلفی
    نوشته شده توسط saeed_d در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 22 تیر 1383, 22:09 عصر
  4. برنامه نویسی سی در لینوکس که ویژوال باشد چیست؟
    نوشته شده توسط rezaTavak در بخش توسعه‌ی لینوکس و نرم افزارهای آزاد
    پاسخ: 10
    آخرین پست: پنج شنبه 24 اردیبهشت 1383, 19:31 عصر
  5. در مورد گروه برنامه نویسی .Net در همین سایت...
    نوشته شده توسط Omid.Mafakher در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: سه شنبه 09 دی 1382, 15:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •