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

در این پست میخواهم راه حلی برای محافظت از برنامه های اندروید را به شما آموزش بدم ، همانطور که می دانید برنامه های اندرویدی را به راحتی می توان دیکد کرد و از انها استفاده و بعضا سوء استفاده کرد و به فایلها و کلاس ها ، api  و فایل های حیاتی آن دست پیدا کرد (سعی می کنم در آموزشی نحوه دیکد کردن برنامه اندروید را به شما آموزش بدم)  . با این کار امنیت برنامه ، و در برنامه هایی که بصورت آنلاین کار می کنند می تواند امنیت سایت و سرور را  به خطر بیاندازد  و افراد سودجو و به اصطلاح هــــکر می توانند در برنامه شما دست برده  و  با  انجام کارهای جعلی از این ضعف به سود خودشان استفاده کنند.متاسفانه نمی توان جلوی این خرابکاری ها را به طور کامل گرفت،ولی میتوان کاری کرد که انجام کار برای فرد مهاجم سخت شود. راه حل این کار استفاده از پروگارد  (proguard) هست که در این پست به معرفی و نحوه استفاده آن در پروژه های اندروید می پردازیم.

 

پروگارد چه کارهایی انجام می دهد ؟

کوچک کردن برنامه یا minification

به هم ریختن برنامه یا obfuscation

بسته‌بندی مجدد برنامه یا  repackaging

بهینه‌سازی یا optimization

 

پروگارد چه معایبی دارد؟

پروگارد ، کلاس ها و متغییرها مورد استفاده در پروژه را تغییر نام می دهد و باعث ناخوانا شدن انها و همچنین کلاس هایی که بی استفاده هستند را به صورت خودکار حذف می کند و  دیباگ کردن برنامه اندروید را دچار مشکل می کند و همچنین سرعت بیلد کردن پروژه را بالا می برد. برای حل این مشکلات به راحتی می توان پروگارد را در زمان دیباگ کردن غیرفعال کرد و بعد از تست نهایی و گرفتن خروجی آن را فعال کرد ،به همین راحتی 😀

 

نصب پروگارد

پروگارد به صورت پیشفرض در Sdk وجود دارد و نیاز به نصب خاصی ندارد (sdk\tools\proguard)

 

پیکربندی پروگارد

تنظیمات و فایل پیکربندی پروگارد در فایل proguard-rules.pro در زیر شاخه ی Gradle Scripts  قرار دارد.

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in E:\android-sdks/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

هر خط در این فایل که با # شروع می‌شود کامنت یا راهنما و توضیح هست که غیر فعاله و مابقی خط ها مربوط به تنظیمات می شود.

پروگارد تنظیمات زیادی داره که در زیر چند مورد که از همه مهم تر هست را توضیح میدم و مابقی آنها را می توانید از مستندات ان در سایت اصلی proguard مشاهده و بررسی کنید.

-keep: به پروگارد می‌گوییم که این کلاس‌ها را نگه دارد و نام آن‌ها و بسته آن‌ها را تغییر ندهد. اگر بخواهیم همه کلاس‌های داخل یک پکیج را استثنا کنیم از * و اگر بخواهیم همه کلاس‌های داخل این پکیج و همه کلاس‌های داخل پکیج‌های داخلی آن را استثنا کنیم از ** استفاده می‌کنیم.

-dontwarn: اگر ارجاعاتی به/در کلاس یا کلاس‌های مشخص شده وجود دارد که پروگارد آن‌ها را به هر دلیل پیدا نمی‌کند، هشدار ندهد و آن‌ها را نادیده بگیرد.

-ignorewarnings: عملکرد آن شبیه dontwarn است با یک تفاوت: در لاگ خروجی این ارجاع نامشخص را می‌نویسد اما به کار خود ادامه می‌دهد.

-keepattributes: ویژگی‌هایی که اینجا اعلام کرده‌ایم را نگه می‌دارد و آن‌ها را حذف نمی‌کند.

-dontnote: پروگارد بعد از اجرا فایلی را در اختیار ما می‌گذارد که در آن تمام تغییراتی را که در پکیج‌ها، کلاس‌ها و ویژگی‌ها آن‌ها داده است، در آن می‌آورد. اگر بخواهیم که خطاهای بالقوه در یک یا چند کلاس خاص را در آن فایل ننویسد از این تنظیم استفاده می‌کنیم.

*منبع این اپشن ها سایت اسمارت لب هست

استفاده از پروگارد در پروژه اندروید

ابتدا به مسیر build.gradle (Module :app)  در زیر شاخه ی Gradle Scripts می رویم و کد زیر را پیدا می کنیم.و در ادامه

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

برای فعال کردن پروگارد در پروژه فقط کافی هست مقدار minifyEnabled را از false  به true تغییر دهید.

 

تنظیمات پروگارد برای کتابخانه های  اندروید

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

فایل پیکربندی پروگارد برای کتابخانه ی پرکاربرد

 

 

 

به این مطلب امتیاز بدهید
استفاده از پروگارد در برنامه اندروید
4.6 (92%) 5 votes
محمد کاظم لطفی خلف بادام
عاشق برنامه نویسی و طراحی

2 نظر در مورد “استفاده از پروگارد در برنامه اندروید

  1. سلام
    من وقتی پروگارد رو true میکنم برنامه ای که خروجی میده توی موبایل نصب نمیشه ولی وقتی false باشه برنامه خروجی توی دستگاه نصب میشه؟
    ممنون

    • سلام میلاد جان عزیز
      ببنید دقیقا به کدوم قسمت گیر میده دقیقا از LogCat
      اگر از کتابخانه ی خاصی استفاده میکنید که پروگارد باهاش مشکل داره باید کد مربوط به اون را به (فایل پیکربندی پروگارد proguard-rules.pro در زیر شاخه ی Gradle Scripts قرار دارد) اضافه کنید.
      میتونید از لینک زیر هم کمک بگیرید.
      https://github.com/krschultz/android-proguard-snippets/tree/master/libraries
      باز هم اگر مشکلی بود کامنت بزارید تا بیشتر بررسی کنم

دیدگاهتان را بنویسید

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

برچسب‌ها

ButterKnife material design آموزش طراحی متریال استفاده از فونت شخصی در اندروید اموزش برنامه نویسی اندروید اموزش تغییر فونت اندروید اندروید اندروید استو اندروید استودیو برنامه اندروید برنامه اندروید املاک برنامه اندروید برای ووکامرس برنامه اندروید وردپرس برنامه اندروید ووکامرس تغییر فونت برنامه اندروید تغییر فونت تمام اکتیویتی ها در اندروید تغییر فونت کل برنامه در اندروید دانلود رایگان سورس دانلود سورس دانلود سورس اندروید دانلود سورس رایگان اندروید سورس سورس اندروید سورس برنامه اندروید سورس رایگان سورس رایگان اندروید سورس فروشگاه سورس فروشگاه ووکامرس سورس متریال سورس وردپرس سورس کتاب آشپزی اندروید سورس کتاب اندروید طراحی برنامه اندروید طراحی برنامه اندروید سایت موزیک طراحی برنامه اندروید وردپرس طراحی متریال فونت سفارشی در اندروید فونت فارسی برای اندروید قابلیت تایپ اعداد فارسی در اندروید متریال متریال دیزاین پروژه اندروید پلاگین اندروید کتابخانه اندروید

قالب جدید همیار وردپرس کاملا مشابه و بهینه ، برای خرید قالب مشابه همیار وردپرس همین حالا اقدام کنید.