Razieh Shahraki

کاهش حجم برنامه های اندرویدی

3 ارسال در این موضوع قرار دارد

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

[align=center]tinypng.png[/align]

چندین فرمت عمده تصاویر که تقریبا همه جا مورد پشتیبانی هستند، عبارتند از BMP، JPG، GIF و PNG.

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

اما PNG اگرچه دارای محاسن بالا است، اما در برخی موارد دارای حجم بالاست. حتی در صورتیکه از گزینه Export for web فتوشاپ هم استفاده کنید، باز هم تصاویر PNG حجم بالایی دارند.

اما یک ابزار فوق العاده وجود داره که می تونه با تغییر در پلت رنگ فایل PNG بدون کم کردن کیفیت، تا ۸۰% از حجم فایل کم کنه!

این ابزار فوق العاده، سایتی به اسم http://tinypng.com است که تصاویر PNG شما رو تا ۸۰% کوچک می کنه (البته این درصدها تخمینی هستند، من بیشترین کاهش حجمی که داشتم حدود ۹۰% بوده در حالی که عموما بین ۶۸ تا ۷۲ درصد حجم فایل ها کم شده)

به عنوان مثال من در حال توسعه یک برنامه اندروید هستم که از تعداد زیادی تصویر تشکیل شده. در حالت پیش فرض و بدون استفاده از این ابزار، حجم فایل نهایی (با استفاده از ProGuard) حدود ۲۰ مگابایت بود، اما پس از اینکه تصاویر را با استفاده از سرویس TinyPNG کوچک کردم، حجم فایل نهایی شده ۵٫۵ مگابایت! حدود ۷۵% از حجم کل برنامه کاسته شده!

استفاده از این سرویس هم بسیار ساده است، شما فایل های تصاویر را به در دسته های ۲۰ تایی با Drag and Drop توی سایت آپلود و بارگذاری می کنید، سایت هم بعد از چند ثانیه، تصاویر رو یکی یکی برای شما کوچک می کنه و بهتون لینک دانلود میده

استفاده از سرویس به دو روش دیگه هم ممکنه، اولی استفاده از وب سرویس سایت هست که به صورت رایگان و تجاری میشه ازش استفاده کرد و روش دوم هم، خرید افزونه (Plug-in) فتوشاپ هست.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دستتون درد نکنه خیلی وقت بود دنبای همچین سایتی بودم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

یکی دیگه از راه های کاهش حجم برنامه های اندروید، استفاده از font icon یا font awesome هستش. تو این روش به جای استفاده از تصویر به عنوان آیکن، از این نوع فونت استفاده میشه که برنامه آن را به عنوان فونت و با حجم فونت می شناسه اما ظاهر اون یک آیکنه.

دسترسی به کد فونت آیکن ها:http://fortawesome.github.io/Font-Awesome/icons/

آموزش استفاده از فونت آیکن ها:http://stackoverflow.com/questions/15210548/how-to-use-a-icons-and-symbols-from-font-awesome-on-native-android-application

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط javad_123
      با سلام خدمت همه ی دوستان و اساتید گرامی

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

      کسی هست من رو راهنمایی کنه که کدوم دوره رو خریداری کنم ؟

      با تشکر ...
    • توسط cnankh
      سلام من میخوام یا برنامه تبدیل واحد بنویسم. چجوری میشه برای edittext تعریف کرد که فقط عدد میشه وارد کرد و علامت منفی هم فقط یکبار قابل استفاده اونم اوله عدد؟ کد زیر رو استفاده کردم اما مشکلش اینه که منفی رو همه جا و به هر تعداد میشه درج کرد و همینطور ممیز هم نامحدود میشه استفاده کرد . کسی راه حلی داره؟
      <EditText android:id="@+id/myNumber" android:digits="0123456789." android:inputType="numberDecimal"  
    • توسط keyhan
      سلام وقتی با شماره تلفن یا ایمیل توی یه برنامه لاگین میکنن برای دفعات بعد از کجا باید فهمید که کاربر لاگین کرده یا نه تقریبا بلدم چیکار کنم ولی به نظرم امنیت نداره راه امنش چیه؟
    • توسط شاهرخ جهان زاده
      آیا تا به حال شده که بعد از ارائه اپلیکشن پیغامهایی از طرف کاربران دریافت کنید که ناشی از بسته شدن اپ در حین کار باشه؟
      در اینگونه مواقع علاوه بر زمانبر بودن پیدا کردن خطا، شاهد ریزش شدید کاربران اپ خواهید بود. پس بهتر است قبل از ارائه اپ در بازار یا Google Play تمهیداتی را برای اطلاع از پیغامهای احتمالی در نظر بگیرید.
      یکی از ابزارهای بسیار مفید استفاده کردن از کتبخانه هایی هست مه برای انجام این کار در نظر گرفته شده است، به عنوان مثال کتابخانه ACRA این کار را با ارسال ایمیل برای شما به راحتی انجام میدهد.
      استفاده کردن از این کتابخانه بسیار راحت هست.
      در قدم اول باید کتابخانه ACRA را به عنوان dependency به build.gradle اضافه کنید:
      compile 'ch.acra:acra:4.9.2' در قدم بعدی کلاس Application را بسازید و متدهای مربوطه برای ACRA را در آن پیاده سازی کنید:
      @ReportsCrashes( formUri = "", mailTo = "yourmail@yourdomain.com", customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.BRAND, ReportField.CUSTOM_DATA, ReportField.INITIAL_CONFIGURATION, ReportField.CRASH_CONFIGURATION, ReportField.USER_CRASH_DATE, ReportField.STACK_TRACE, ReportField.LOGCAT}, resToastText = R.string.crash_toast_text, mode = ReportingInteractionMode.TOAST) public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); ACRA.init(this); } } در بخش ReportField همانطور که میبینید، اطلاعاتی که قرار است به ایمیلتان ارسال گردد را وارد میکنیم.
      در قدم آخر فایل Manifest را باز کرده و دسترسی های مربوطه و همچنین کلاس Application را در تگ application وارد کنید:
      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.acrademo"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <application android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> برای تست عملکرد کدها، یک دکمه بسازید و سپس کدهایی را برای آن وارد کنید که باعث کرش شدن اپ گردد...
      public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onCrash(View view){ throw new RuntimeException("App Crashed"); } } منبع: www.asifmoinulislam.com
    • توسط saeed1366412
      با سلام من یه برنامه مسیر یابی و از Google Maps Directions API استفاده میکنم از فیلتر سکن هم استفاده مینکم زمانی که خروجی میگیرم و روی گوشی نصب میکنم بعضی مواقع کار نمیکنه و نیاز به فیلتر سکن هست در صورتی که برنامه هایی هستن که بخوبی کار میکنند چطوری مشکل حل کنم
                   DISABLE      

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل