PDA

View Full Version : حجم زیاد فایل خروجی دلفی



arman.m.80
شنبه 21 شهریور 1394, 20:38 عصر
من تو دلفی xe5 یک برنامه 8 فرمی نسبتا ساده نوشتم که کار اصلی برنامه فرستادن و گرفتن اس ام اس به یک دستگاه خاص هستش. از این 8 فرم فقط 4 تا از آنها کار فرستادن و گرفتنو انجام میدن با این حال حجم برنامم شده 17.3MB !!!!!!:ناراحت:
چرا اندازه فایل خروجی دلفی این قدر سنگینه ولی مثلا ایکلیپس و یا اندروید استدیو این قدر حجم فایلای خروجیش کمه؟
آیا راهی برای کم کردن حجم فایل خروجی در دلفی وجود داد؟:متفکر:

BORHAN TEC
شنبه 21 شهریور 1394, 21:42 عصر
پروژه رو در حالت Release کامپایل کنید. با این کار حجم کم میشه ولی هر کاری کنید حجم فایل کمتر از فایلهای تولید شده با جاوا نخواهد بود.

jst
شنبه 21 شهریور 1394, 23:36 عصر
1-با استفاده از نرم افزار های پکر نظیر upx که رایگان هم هست می تونید حجم فایل رو خیلی کم کنید .
2- در تنظیمات پروژه می تونید بعضی از پکیجهایی رو که به نیاز ندارید حذف کنید.

arman.m.80
یک شنبه 22 شهریور 1394, 09:08 صبح
من مود debug رو به release تبدیل کردم ولی فقط 1.3MB فرق کرد و برنامم شد 16MB و باز هم خیلی زیاده. :ناراحت:
دیگه چیکار میشه کرد ؟

jst
یک شنبه 22 شهریور 1394, 09:18 صبح
برو اینجا یه سر بزن , حالشو ببر
http://upx.sourceforge.net/

arman.m.80
یک شنبه 22 شهریور 1394, 09:31 صبح
من اونو برای ویندوز32بیتی دانلود کردم ولی کار نکرد.
چیکار کنم؟

jst
یک شنبه 22 شهریور 1394, 09:48 صبح
باید تو محیط cmd اجرا کنی مثلا upx project1.exe یا تو چنجره explorer فایل اجرایی رو درگ کن روی upx

arman.m.80
یک شنبه 22 شهریور 1394, 09:54 صبح
این برنامه از فایل apk پشتیبانی میکنه؟
من فایل apk برناممودرگ کردم بعد سریع یه صفحه سیاه باز میشه و بعد بسته و هیچ کاری هم انجام نمیده.
چیکار کنم؟

ابوالفضل عباسی
یک شنبه 22 شهریور 1394, 12:28 عصر
دوست عزیز برای مشکل حجم زیاد در دلفی در ویندوز این کار رو انجام بده (فقط برای ویندوز عمل میکنه برای اندروید عمل نمی کنه)
به این قسمت برو
در لیست های بالا xe 5 :
Project-->Option-->Delphi Compiler-->Linking-->Debug Information
این تیک اگر true هست false کن بعد کامپایل بگیر حجم برنامه تقریبا نصف میشه
این تیک چیز مهمی نیست فقط راهنماهای دلفی درون برنامه ات میگذاره که تاثیری در برنامه ات نمی گذاره

arman.m.80
یک شنبه 22 شهریور 1394, 12:39 عصر
مشکل من توی اندرویده نه تو ویندوز حجم فایل apk برنامه ای که با دلفی مینویسم خیلی زیاده نمیدونم چیکار کنم؟
چنتا راه امتحان کردم ولی فقط 2MB فرق کرد .
دوستان لطفاراهنمایی کنید.
دیگه چه راهکاری وجود داره؟:متفکر:

ابوالفضل عباسی
یک شنبه 22 شهریور 1394, 12:47 عصر
حالا شما با این روش کامپایل اندروید بگیرید من تست نکردم شاید حجمش کم بشه
حالا شما تست کنید

developing
یک شنبه 22 شهریور 1394, 13:43 عصر
با سلام

زمانی که در دلفی حتی یک فرم خالی را برای اندروید خروجی می گیرید یعنی APK تولید می نمایید. معمولا اندازه ای بیش از 6 مگابایت دارد. این جزء ذات دلفی است.
به خاطر اینکه شما یک خروجی سطح پایین (مستقل از ماشین مجازی دالویک) می گیرید که این باعث می شود برنامه های شما سرعت قابل قبولی داشته باشند. و در واقع فایرمانکی از OpenGL SE برای رسم کامپوننت های خود استفاده می کند که همین باعث شده است فایل خروجی حجم زیادی داشته باشد.

راه حل: اگر می خواهید برنامه هایی کمتر از 5 مگابایت در دلفی برای اندروید ایجاد نمایید، شما هیچ راه چاره ای ندارید.:شیطان:

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

و یا اینکه از زبان های دیگر و یا کامپایلرهای دیگر استفاده نمایید.

اگر به زبان پاسکال علاقه مند هستید پیشنهاد من استفاده از لازاروس است.:لبخند:

برای مثال در لازاروس می توانید فایل هایی به سبکی خود جاوا برای اندروید تولید نمایید.

در لازاروس 2 راه وجود دارد:

1- از چندساختی (Cross Build) لازاروس استفاده نمایید که در اینصورت شما حتی می توانید برنامه های کنسولی در اندروید داشته باشید و با استفاده از توابع سطح پایین حتی بازیهای سریع و جذابی ایجاد نمایید.
2- از واسط و مبدل Simonsayz's که در واقع، برنامه ی نوشته شده ی شما را به زبان جاوا تبدیل می نماید استفاده نمایید.

در حالت 1 برنامه ی شما با 8 فرم کمتر از 800کیلوبایت و در حالت دوم همان برنامه کمی بیش از 600 کیلوبایت است.

در حالت 1 شما هر برنامه ای می توانید بسازید و دست شما در استفاده از کامپوننت ها بسیار باز است و تقریبا تمام کامپوننت های موجود در لازاروس را می توانید استفاده نمایید.
در حالت دوم می توانید از 61 کامپوننت مخصوص این مبدل استفاده نمایید که البته این کامپوننت ها تقریبا هر کاری را شما نیاز داشته باشید انجام می دهند.(از یک جای ترسیم [Canvas] تا دسترسی به مخاطبین، دوربین، ژیروسکوپ، بانک اطلاعاتی و .. )

نکته: برنامه نویسی اندروید در لازاروس بسیار راحت است، امااااااا... تنظیم کردن آن کمی دشوار!
نکته2: در هر دو روش شما از پشتیبانی کامل یونیکد و BiDi بهره مند هستید. (این بزرگترین مزیت استفاده از لازاروس در برابر دلفی است.)
نکته3: این محیط توسعه کاملا رایگان و متن باز است که برای من بهتر از هر چیزی است. چرا که من اگر خودم می گویم باید حق نرم افزار از سوی همه ی مشتریان پرداخت شود و با متخلف (قفل شکن) برخورد شود، نباید از نرم افزار کرک شده استفاده کنم. (الآن 2 سالی هست که دیگه دلفی کار نمی کنم، مگر برای تغییرات در برنامه های گذشته ی خودم که البته دارم سعی می کنم اونها رو به لازاروس منتقل کنم.)
نکته4: قابلیت های دیگری هم وجود داره که به این مقاله مرتبط نیست

امیدوارم به جواب خود رسیده باشید.
یاحق

arman.m.80
یک شنبه 22 شهریور 1394, 15:59 عصر
دوست عزیز از پاسخ شما متشکرم ولی من به این راحتی ها نمیتونم زبانمو عوض کنم و برام خیلی سخته (این که میگم خیلی سخت ینی خیلی خیلی سخت).
من دنبال راه حل میگردم نه پاک کردن صورت مسئله.
من چن سالی هست که دلفی کار میکنم و برنامه های زیادی هم با اون نوشتم مخصوصا توی فایرمانکی برنامه های من هم جوری هست که کاربرانم حجم برنامه اصلا برایشان مهم نیست. حتی پیش اومده که یکی از برنامه های من 100MB :متعجب: شده (حدودی) ولی چون کاربرانم حق انتخاب ندارند نمیتونن از نرم افزار دیگه ای استفاده کنن .
و یه دلیل دیگه: من حدود 4 (4ماه با وجود این که من با دلفی و فایر مانکی حداقل تا جایی که نیاز دارم کاملا آشنا هستم) ماه روی تولید این نرم افزار کار کردم و حاضر نیستم به این راحتی نرم افزارمو بزارم کنار و بیام توی محیطی که باهاش آشنا نیستم بشینم کد بنویسم و احتمالا با وجود این شرایط من باید همین 4ماهو توی 10 ماه بنویسم.
ولی بازم از کمک و راهنمایی شما ممنونم دوست عزیز.:لبخندساده:

arman.m.80
یک شنبه 22 شهریور 1394, 16:02 عصر
حالا شما با این روش کامپایل اندروید بگیرید من تست نکردم شاید حجمش کم بشه
حالا شما تست کنید
من الان توی محیط کارم نیستم و دسترسی به کامپوتری که روش دلفی xe5 به بالا(دلفی که روش اندروید بشه نوشت ) نسب باشه ندارم فردا نتیجه تستو بهت میگم ولی بازم از راهنماییت ممنونم.:چشمک:

arman.m.80
دوشنبه 23 شهریور 1394, 07:12 صبح
حالا شما با این روش کامپایل اندروید بگیرید من تست نکردم شاید حجمش کم بشه
حالا شما تست کنید

من تست کردم هیچ تاثیری نداشت. :ناراحت:
دوستان لطفا راهنمایی کنید .

arman.m.80
دوشنبه 23 شهریور 1394, 11:18 صبح
دوستان لطفا راهنمایی کنید کارم گیره
من از روشهای بالا استفاده کردم ولی فقط 2MB فرق کرد.
اگه روش دیگه ای میشناسید بگید .:لبخندساده:

ابوالفضل عباسی
دوشنبه 23 شهریور 1394, 12:42 عصر
یک سوال برام پیش اومد برای چه میخواهید حجم apk تولید شده کم باشد؟:متفکر:
من خودم هم نمی دونم چرا در دلفی Xe5 حجم فایل apk تولید شده 5 مگ هست.:اشتباه:
در دلفی xe6 حجم فایل apk تولید شده 6 مگ هست.:ناراحت:
در دلفی xe7 حجم فایل apk تولید شده 7 مگ میشه و یا در دلفی xe8 حجم فایل apk تولید شده 8 مگ میشه واقعا عجیبه هرچه نسخه دلفی بروز تر میشه فایل تولیدی هم بیشتر میشه.
اما با این حال یه برنامه نوشتم با کلی عکس داخلش و استفاده FireDac حجمش شده 10 مگ که به نظر خودم ایده آل هستش(اما نسبت به بقیه نرم افزار های هم تراز خودم زیاد هست)

arman.m.80
دوشنبه 23 شهریور 1394, 13:03 عصر
برای این میخوام حجم فایلم کم باشه چون این برنامه که شده 26MB برنامه سنگینی نیست ولی برنامه ای که در آخر خواهش شد حداقل 70MB میشود(70MB البته امیدوارم به لطف دوستان حداقل بشه 35MB).:لبخندساده:
برای همینه که دارم از شما کمک میخوام وگرنه من به حجم فعلی مشکلی ندارم.
دوستان اگه بازم راهی به نظرتون رسید بهم بگین.:لبخندساده:

golbafan
دوشنبه 23 شهریور 1394, 17:33 عصر
بارها در این سایت گفتم از دلفی برای نوشتن انروید استفاده نمیکنن!

arman.m.80
دوشنبه 23 شهریور 1394, 17:38 عصر
دوستان یه سوال نرم افزار های upx خیلی خوب کار میکنن ولی فایل apk را پشتیبانی نمیکنن.:ناراحت:
شما نرم افزار upx میشناسید که فایل apk را هم پشتیبانی کنه؟

arman.m.80
دوشنبه 23 شهریور 1394, 19:51 عصر
بارها در این سایت گفتم از دلفی برای نوشتن انروید استفاده نمیکنن!
مرسی که گفتید ولی حیف که خیلی دیر گفتید اینو باید وقتی xe5 بیرون اومد میگفتین.
الان تنها چیزی که کار منو حل میکنه یه راه حا خیلی خوبه که حجمو خیلی کمکنه.:ناراحت:

golbafan
چهارشنبه 25 شهریور 1394, 10:47 صبح
چی بگم والا. در مورد RTTI چیزی شنیدی؟؟؟ باید غیر فعالش کنی (در همه یونیت ها)
http://docwiki.embarcadero.com/RADStudio/Seattle/en/RTTI_directive_%28Delphi%29

برای فشرده سازیش هم از ProGuard استفاده کنید

arman.m.80
چهارشنبه 25 شهریور 1394, 11:48 صبح
چجوری میشه
RTTI رو غیر فعال کرد؟
و اگه من RTTI رو غیر فعال کنم برای برنامم ضرر نداره؟
ایرادی در برناممم ایجاد نمیشه؟:متفکر:

arman.m.80
شنبه 28 شهریور 1394, 15:50 عصر
یه کی کمک کنه ینی هیچکس نمیدونه
RTTI رو چجوری غیر فعال کنم ؟
و اگه منRTTI رو غیر فعال کنم برای برنامم ضرر نداره؟ایرادی در برناممم ایجاد نمیشه؟