راه های مختلف Deploy کردن یک برنامه برای آندروید

سلام دوستان عزیز

در قسمت های قبلی در مورد نحوه نصب و تنظیم ابزارهای لازم برای توسعه کیوت روی آندروید صحبت کردیم. خب توی اون ویدیو به یه مشکلی در انتهای کار برخوردیم . سرعت deploy شدن ( منظور از deploy انتقال برنامه به مقصد و اجرای آن بدون هیچ مشکل ) بسیار پایین بود. یکی از دوستان ( آقای hadi2f244 ) سبب خیر شدند تا ما راههای مختلف Deploy کردن یک برنامه برای آندروید رو هم متوجه بشیم.

خب اگه نسخه ۲٫۸٫۰ کیوت کریتور رو نصب کرده باشین یکم قضیه فرق میکنه و کارتون ساده تره.

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

من همون برنامه آندرویدی که توی ویدیوی قبلی ساختم رو بازش کردم بدون هیچ تغییری. اگرم Qt Creator باز ازتون سوال پرسید که میخواید برای چه سیستم عاملی و با کدام کامپایلر کامپایل کنید طبیعیه که برای Andrdoid, Armv7 میخوایم این کار رو انجام بدیم. تا اینجا مث قبل بود ولی قضیه از اینجا شروع میشه.

زمانی که پروژه تون رو Open کردید به تب Projects برید :

qtsettings_prjخب توی قسمتی که براتون باز میشه ، از اون کیت های بالا ، کیتی که فعال هست رو به قسمت Run ش برید.در این صورت سه قسمت برای انجام تنظیمات جدید برای شما باز میشه. قسمت Copy Application Data, PackageConfigurations, Deploy Configurations .

قسمت مورد بحث این قسمت Deploy Configurations هستش :

سه گزینه برای شما در این قسمت در نظر گرفته شده :

۱-Use Ministro service to install Qt : اگر این گزینه انتخاب شده باشه زمانی که شما قصد دارین برای اولین بار یه برنامه کیوت رو که برای آندروید کامپایل کردین رو اجرا کنید برنامه ای ( در واقع سرویسی ) به نام Ministro وظیفه دانلود کتابخانه های کیوت که شما نیاز دارید رو بر عهده داره. پس اگه این گزینه رو انتخاب کرده باشین اولا باید برنامه ای به نام Ministro رو هم نصب کرده باشین رو گوشی تون و در ضمن در اولین اجرای برنامه تون کتابخانه های لازم باید حتما دانلود بشه توسط Ministro
۲-Deploy local Qt libraries to temporary directory :  این گزینه باعث میشه که در زمانی که قصد دارین برنامه تون رو با زدن دکمه ران اجرا کنید کتابخانه های کیوت اصطلاحا به دستگاه گوشی تون Push یا منتقل شن. مشکلی که این روش داره اینه که فایل apk تولیدی فقط امکان اجرا روی گوشی خودتون رو داره و جای دیگه امکان استفاده ازش نیست. چند نکته : ۱- باید کتابخانه های کیوت رو برای دستگاهی که میخواید کتابخون ها رو توش Push کنید کامپایل کرده باشید که احتمالا انجام شده . ۲- اگه بخواید روی دستگاه دیگه این فایل رو نصب و اجرا کنید باید کتابخونه ها رو دستی کپی کنید که مسخرس !
۳-Bundle Qt libraries in APK : راه سوم اینه که کتابخونه های کیوت مورد نیاز برنامه شما در داخل فایل APK تولیدی ضمیمه بشن ! مثل کتابخونه های استاتیک. برنامه شما در این صورت امکان اجرا روی هر دستگاه آندرویدی ( با پردازنده آرم اگه با کامپایلر آرم کامپایل کردین ) رو داره. ولی در عوض حجمش بیشتره.

مقایسه

خب بذارین روش اول رو امتحان کنیم. ببینیم اون برنامه ساده QML چقدر زمان میبره تا کامپایل و اجرا بشه . خب تقریبا ۳۰ ثانیه طول کشید تا من صفحه زیر رو روی گوشیم ببینم :

ministاین پیام همون پیامیه که گفتم . Ministro باید نصب بشه. در ضمن کیوت کریتور این امکان رو به شما داده که apk مینیسترو رو داخل تنظیمات برنامه تون وارد کنید تا نصب بشه.

برای بار دوم هم برنامه رو ران کردم ولی خب بازم همون زمان طول کشید. طبیعی هم هست.

بذارید ببینیم حجم فایل نصب یا همون فایل apk چقدره ؟۵۹۴ کیلو بایت

حالا بذارید حالت دوم رو اجرا کنیم. یعنی حالتی که کتابخونه ها به داخل دستگاه Push میشن. حدود ۶۰ ثانیه طول کشید تا برنامه اجرا بشه ! بذارید یه بار دیگه برنامه رو اجرا کنیم . Qt Creator ترکید 😐 .

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

ولی خب جالبه که بدونین کتابخونه ها توی مسیر /data/local/tmp/qt/lib/ روی گوشی کپی میشن.

حجم فایل در این حالت ۵۹۴ کیلو بایت ! طبیعیه !

خب بریم سراغ حالت سوم. یک دقیقه 😐 بذارید دوباره اجرا کنم شاید زمان اجرا بهتر شد. خیر!

فایل نصب در این حالت ۷ مگ شده.

دوستان اگه زمان های دیگه ای به دست آوردند خبر بدند.

صب بخیر !

۳,۳۵۸ total views, 2 views today

Print Friendly, PDF & Email

درباره ی سعید دادخواه

یه برنامه نویس !

17
دیدگاه بگذارید

avatar
6 Comment threads
11 Thread replies
0 دنبال کنندگان
 
Most reacted comment
داغ ترین نخ نظرات
5 کامنت گذاران
vishy71mohammadhadi2f244سعید دادخواهA.IMAN کامنت گذاران اخیر
  مشترک شو!  
جدیدترین قدیمی‌ترین دارای بیشترین امتیاز
میخوام باخبر شم از
A.IMAN
Member
A.IMAN

سلام خسته نباشی …
به این بخض بی ربطه ولی ببخشید دیگه … لنگم !
من میخام ی برنامه بنویسم ک ی منو داشته باشیم و ی QGraphicsVeiw هم توی وسط .
حالا موندم که کلاس اصلی رو ک از روی QMAinWindow نمیتونم اون QGraphicsview رو اضافه کنم ؟!
میشه ی راهمایی کلی و با ی روش برای این کار بدی ؟ ممنون ….

hadi2f244
Member
hadi2f244

آقا سعید دستت درد نکنه ، چشمت نزنیم ولی خیلی آپدیتی!!!

hadi2f244
Member
hadi2f244

آقا فقط یه سوالی چرا creator من جای گزینه
bundle qt libraries in apk
یه گزینه به نام
install ministro,system-wide Qt shared libraries installer
داره؟!!!

mohammad
Member
mohammad

خیلی اقایی دمت گرم خیلی دنبال کیوت رو اندروید بودم دمت گرم

mohammad
Member
mohammad

ما بی صبرانه منتظر قسمت بعدی هستیم

vishy71
Member
vishy71

سلام آقا سعید گل. این مدت نبودیم ترکونیااا 🙂 واقعا دستت درد نکنه.خیلی گلی راستش من ۳ ۴ ماهه که دارم سعیمو می کنم که تو کیوت برا اندروید برنامه بنویسم نشد. فکر کنم تو این مدت بیشتر از ۲۰ گیگ واسه همین دانلود داشتم 😐 با این حال بازم نشد.ینی یه بار شد اما سرعت دپلوی کردن منو تو افق مهو کرد.این مینسترو و اینارم هرکار کردم نشد.حجم بالایی داشت. الانم یه هفته ای میشه بعد از ناامید شدن رفتم سراغ اکلیپس و جاوا و اینا.خوبه بد نیست زیاد فرقی نداره اما کیوت یه چیز دیگست. راستی من قبل… Read more »