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

نام تاپیک: آموزش استفاده از ProGurd در اندروید از Lynda.com

  1. #1
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    Thumbs up آموزش استفاده از ProGurd در اندروید از Lynda.com

    سلام دوستان
    یه سرچی تو انجمن کردم دیدم بعضی از دوستان مشکل حفاظت از کدهاشون رو دارن تو پروژه
    دوستمون rubiks.kde توضیح کامل دادن تو یکی از تاپیک ها ولی بعضی از دوستان بازم مشکل دارن
    تو آرشیوم ۳تا کلیپ از استفاده Progurd توی اندروید داشتم که توسط David Gassner دوست داشتنی تهیه شده که به صورت RAR شده توی DropBox خودم آپلود کردم
    فیلم ها به زبان اصلی هست .

    دانلود . حجم : ۲۱ مگابایت
    آخرین ویرایش به وسیله slr560 : دوشنبه 12 خرداد 1393 در 16:50 عصر

  2. #2

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    قول میدم اگه تونستم پیاده سازیش کنم و مشکلی باهاش نداشتم، حتما یک آموزش فارسی بذارم

    مرسی

  3. #3

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    سلام
    دوستان مگه فعال کردن پروگارد بیشتر از uncomment کردن دستور اون توی فایل پروژه هست؟!
    من این کار رو میکنم دی کامپایل هم میکنم اسم همه کلاس ها تبدیل به حروف شده.

  4. #4

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط shahin bahari مشاهده تاپیک
    سلام
    دوستان مگه فعال کردن پروگارد بیشتر از uncomment کردن دستور اون توی فایل پروژه هست؟!
    من این کار رو میکنم دی کامپایل هم میکنم اسم همه کلاس ها تبدیل به حروف شده.
    درسته در حالت عادی باید همین کار رو کرد

    اما مشکل من این بود که چه کلاس هایی رو باید keep کنیم، لایبری ها رو چکار کنیم

    این آموزشی که دوستمون گذاشتن خیلی مختصر بود، بازم چیز خاصی دستگیرم نشد

  5. #5

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    جالبه پروژه رو با تنظیمات پیش فرض proguard پکیج کردم، یک مگابایت اضافه شد !!!

    برنامه درست مبهم سازی شد، اما نمیدونم روی گوشی ها کار میکنه حالا یا نه ...

    روی genymotion که بعد از مبهم سازی کار میکنه، حالا نمیدونم روی گوشی قراره فرقی کنه یا نه

  6. #6
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    قطعا کار میکنه اگه روی genymotion کار کرده
    فقط اگه کسی بتونه سایر تنظیماتشو یاد بگیره و اینجا هم مطرح کنه عالی میشه
    جناب پورمن ببینید میشه تنظیمات دیگش رو برای بهتر شدن امنیت و حجم اعمال کرد

  7. #7

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

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

    ایشالا وقتی فهمیدم دقیق چی به چیه، میام زکات علمم رو میدم

  8. #8
    مدیر بخش آواتار rubiks.kde
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    1,537

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    خیلی دنبالشم که تنظیمات دیگه پروگارد رو یاد بگیرم و بفهمم

    ایشالا وقتی فهمیدم دقیق چی به چیه، میام زکات علمم رو میدم
    تنظیمات پروگارد که بیشتر مورد استفاده قرار میگیره همونی هست که توی مثال خود SDK وجود داره.البته یه برنامه گرافیکی هم برای کار داره که میشه ازش استفاده کرد.

    تنظیماتش هم طوری هست که شما بر اساس پروژت باید بیایی تنظیم کنی (در واقع مثل نوشتن یه برنامه کوچیکه) اگه توی پروژت شما View های کاستم شده داری که در xml استفاده کردی حتما باید مشخص کنی که این کلاسها تغییر نکنه.یا اسم اکتیویتی ها (چون پروگارد تنها روی .java اعمال میشه و اگه مثلا اسم اکتیویتی تغییر کنه توی مانیفست خطا میده) ؛ یا اگه از تابع های native استفاده میکنید باز باید مانع از تغییرش بشید.

    در کل به قول معروف حساس نشو حساس نشو و همون تنظیمات پیش فرض کافی هست.
    بیشتر کتابخونه ها میگن که تنظیمات پروگاردشون چی هست مثل عدد و ...

    من حدود یک سال پیش روی این مسئله خیلی کار کردم ولی آخرش به این نتیجه رسیدم که یک برنامه هرچقدم روی امنیتش کار بشه بازم امن نمیشه.
    اول روی پروگارد کار کردم تنظیمات مختلف رو اعمال کردم ولی همون طور که خیلی جا ها هم گفتن اگه میزان مبهم سازی از یه حدی بیشتر بشه دستگاه میزبان توی اجرا دچار مشکل میشه چون به هم ریختگی کد زیاد میشه زمان اجرا بسیار طولانی میشه ، اگه کدهای مبهم شده رو دیده باشید جایی حلقه های اضافی وارد شده اسم متغییرها عوض شده توابع در جای مختلف قرار گرفتن و همین عمل مخصوصا در گوشی موبایل باعث پایین اومدن کارایی میشه. دقیقا مثل استفاده از goto در زبان های برنامه نویسی که بااینکه وجود داره و گاهی هم خیلی مفیده ولی استفادش رو پیشنهاد نمیدن)

    یه روش دیگه هم که پیشنهاد میشه استفاده از jni است ، یعنی بیایید قسمتهای محاسباتی امنیتی را توی این قسمت بنویسید و بعد در java استفاده کنید.خودم از این روش استفاده کردم و حتی مکانیزمی هم براش پیدا کردم که محدودیت خیلی بیشتر بشه ولی خب این هم دارای مشکلات خودش بود.
    البته هک کردن این برنامه ها هم امکان داره . خیلی وقت پیش دنبال کتابخانه ایی برای کار با pdf بودم که هیچ مورد به درد بخوری به صورت رایگان پیدا نکردم ولی کتابخانه androidpdf.mobi وجود داره که هم پولی بود و هم حسابی امکانات داره و خیلی هم کار با اون رو راحت کردن.

    این کتابخونه تمام کارهای مربوط به pdf رو در C++‎ انجام میده و تنها java یه اینترفیسه برای استفاده ، از طرفی اگه برید سایتش کدش رو در اختیارتون میزاره (البته تنها کد جاوا و کدهایی C++‎ رو به صورت کامپایل شده بهتون میده و محدودیتی هم که داره اینه شما از این کد تریال با تمام امکاناتش میتونید استفاده کنید تا زمانی که اسم پکیج رو تغییر ندید و به محض تغییر دیگه کار نمیکنه)
    روش کارشم اینه که context برنامه رو به C++‎ میفرسته تا بررسی بشه.

    توی نگاه اول شما هر کاری بکنید متوجه میشه و نمیشه گولش زد ولی با یکم وقت گذاشتن و گشتن داکیونت های آندروید متوجه میشید که میشه Context تقلبی ساخت در واقع یه رپر برای context میشه نوشت که هروقت context.getname فراخونی بشه اسم پکیج تقلبی برگشت داده بشه نه اسم پکیج اصلی.حالا به این طریق به راحتی میشه کتابخانه ایی که قیمتش 1,270.00$ است رو کرک کرد.
    البته من نامردی نکردم و بهشون ایمیل زدم که این مشکل داره (البته ناگفته نمونه که چون نمیتونستم بخرم بهشون ایمیل زدم که من به دلایلی قادر به خرید نیستم اگه میشه مرامی بهم بدید به کسی نمیدمش اونام هم گفتن .... ) به همین خاطر هزینش شد یه هفته وقت گذاشتن تا استفاده رایگان از کتابخونه.

    هدفم از این حرف ها این بود که ببینید نمیشه امنیت مطلق ایجاد کرد اونم واسه برنامه های تولیدی ما ، از طرفی کاربرای ما هم توی این سطح نیستن که بیان دل و روده برنامه رو بریزن بیرون.
    بهترین راه استفاده از این روش های درون پرداخت است حالا چه بازار چه اینگه خودتون پیاده کنید.
    جدیدن سیستم اشتراک بازار هم وارد شده که خیلی خوبه به راحتی میشه جلوی این چیزا رو گرفت مثلا اشتراک های کوتاه مدت میفروشید .
    YES I AM Qt


    Code Less
    Create More
    Deploy Everywhere

  9. #9

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    خیلی ممنون سعید جان

    درسته اینو میدونم که نمیشه امنیت مطلق ایجاد کرد، منم میخواستم فقط کار رو سخت تر کنم

    چون واقعا خنده داره سایت هست شما APK رو آپلود میکنی، به صورت آنلاین فایل دیکامپایل شده رو مثل باقلوا تحویلت میده

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

    دوستان زحمت میکشن حاصل 3-4 ماه مارو به باد میدن

    حالا منم فعلا کارم با همین تنظیمات پیش فرض راه افتاده، امیدوارم فقط توی گوشی ها مشکل ساز نباشه

  10. #10
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    دوستان یه سوال
    مثلا ما داریم واسه یه جایی مث دانشگاه برنامه مینویسیم که دیتابیسش خیلی امنیتی هست
    از برنامه درخواست ها رو به وب سرویس میدیم و وبسرویس بهمون جواب میده.
    حالا اگه یکی بیاد این وسط برنامه رو کدهاشو دربیاره و دیکامپایل کنه به محتوای اون درخواست هایی که میره به وبسرویس دسترسی پیدا میکنه
    و دیگه هیچی دیگه . خودش درخواست میفرسته به وب سرویس و ....
    اینجور سیستم ها رو باید چیکار کرد؟ باید وبسرویس رو تقویت کرد یا برنامه؟ یا همین progurd کافیه واسه کد ها؟

  11. #11
    کاربر دائمی آواتار abbasalim
    تاریخ عضویت
    تیر 1391
    محل زندگی
    یزد ـ‌ اردکان
    پست
    1,039

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط poorman مشاهده تاپیک
    خیلی ممنون سعید جان

    درسته اینو میدونم که نمیشه امنیت مطلق ایجاد کرد، منم میخواستم فقط کار رو سخت تر کنم

    چون واقعا خنده داره سایت هست شما APK رو آپلود میکنی، به صورت آنلاین فایل دیکامپایل شده رو مثل باقلوا تحویلت میده

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

    دوستان زحمت میکشن حاصل 3-4 ماه مارو به باد میدن

    حالا منم فعلا کارم با همین تنظیمات پیش فرض راه افتاده، امیدوارم فقط توی گوشی ها مشکل ساز نباشه
    من با تنظیمات پیش فرض پروگارد یه برنامه رو کامپیال کردم مثل اینکه رو سرعت اتصال به اینترنت تاثیر داره و سرعت کمتر میشه ولی درکل زیاد تاثیری نداشت

  12. #12
    مدیر بخش آواتار rubiks.kde
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    1,537

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    خیلی ممنون سعید جان

    درسته اینو میدونم که نمیشه امنیت مطلق ایجاد کرد، منم میخواستم فقط کار رو سخت تر کنم

    چون واقعا خنده داره سایت هست شما APK رو آپلود میکنی، به صورت آنلاین فایل دیکامپایل شده رو مثل باقلوا تحویلت میده

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


    دوستان زحمت میکشن حاصل 3-4 ماه مارو به باد میدن

    حالا منم فعلا کارم با همین تنظیمات پیش فرض راه افتاده، امیدوارم فقط توی گوشی ها مشکل ساز نباشه
    ترسی نداشته باش از امثال خودمون ،

    دوستان یه سوال
    مثلا ما داریم واسه یه جایی مث دانشگاه برنامه مینویسیم که دیتابیسش خیلی امنیتی هست
    از برنامه درخواست ها رو به وب سرویس میدیم و وبسرویس بهمون جواب میده.
    حالا اگه یکی بیاد این وسط برنامه رو کدهاشو دربیاره و دیکامپایل کنه به محتوای اون درخواست هایی که میره به وبسرویس دسترسی پیدا میکنه
    و دیگه هیچی دیگه
    . خودش درخواست میفرسته به وب سرویس و ....
    اینجور سیستم ها رو باید چیکار کرد؟ باید وبسرویس رو تقویت کرد یا برنامه؟ یا همین progurd کافیه واسه کد ها؟
    این جور برنامه ها رو نباید به همین راحتی نوشت حتما باید موارد امنیتی رو رعایت کرد.
    اولا اتصالات امن باشه
    داده ها رمز شده رد و بدل شوند.
    ادرس وب سرویس ها رمز شده باشه یا در زمان اجرا تولید بشن.
    کد مبهم سازی بشه تا ردیابی عمکرد کد نامفهوم باشه.
    دیتابیس لوکال رمز بشه.

    وخیلی مورد دیگه که میتونه ابتکاری بشه.
    YES I AM Qt


    Code Less
    Create More
    Deploy Everywhere

  13. #13

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    اگه توی پروژت شما View های کاستم شده داری که در xml استفاده کردی حتما باید مشخص کنی که این کلاسها تغییر نکنه.یا اسم اکتیویتی ها (چون پروگارد تنها روی .java اعمال میشه و اگه مثلا اسم اکتیویتی تغییر کنه توی مانیفست خطا میده) ؛ یا اگه از تابع های native استفاده میکنید باز باید مانع از تغییرش بشید.
    این مورد رو بیشتر توضیح میدید؟! تنظیمات پیش فرض خودش این مورد رو رعایت میکنه یا باید دستی گفت بهش؟! بعضی جاها واقعا ویو کاستوم نیازه!

    اولا اتصالات امن باشه
    منظورتون اینه که از Https استفاده کنیم یا داده ها رو دستی خودمون با RSA رمز گزاری کنیم؟!

  14. #14
    مدیر بخش آواتار rubiks.kde
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    1,537

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط shahin bahari مشاهده تاپیک
    این مورد رو بیشتر توضیح میدید؟! تنظیمات پیش فرض خودش این مورد رو رعایت میکنه یا باید دستی گفت بهش؟! بعضی جاها واقعا ویو کاستوم نیازه!


    منظورتون اینه که از Https استفاده کنیم یا داده ها رو دستی خودمون با RSA رمز گزاری کنیم؟!
    مورد اول : گاهی لازمه شما یک view رو کاستم کنید حالا به هر دلیلی و وقتی ازش استفاده میکنید (توی xml) به این صورت ادرس میدید مثلا com.ec.myview حالا این کلاس در صورتی که اسمش تغییر کنه مشکل ساز میشه و در زمان اجرا خطا میده.
    حالت پیش فرض تا حدودی ولی برای اینکه اطمینان حاصل کنید میتونید خودتون دستی وارد کنید.

    مورد دوم : اره میشه استفاده کرد ولی من بیشتر منظورم روی رمزگزاری دستی در طرفین بود.

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

    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    -verbose
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
    -ignorewarnings
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable,*Annotation*,Signature



    -keepattributes *Annotation*


    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider


    -keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
    }


    -keep class ir.adad.NoProguard
    -keep class * extends ir.adad.NoProguard { *; }


    -keepclasseswithmembernames class * {
    native <methods>;
    }


    -keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
    }


    -keepclassmembers class * extends android.content.Context {
    public void *(android.view.View);
    public void *(android.view.MenuItem);
    }


    -keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
    }


    -keepclassmembers class **.R$* {
    public static <fields>;
    }




    # -- Action Bar Sherlock --
    # from http://actionbarsherlock.com/faq.html


    -keep class com.actionbarsherlock.** { *; }
    -keep interface com.actionbarsherlock.** { *; }


    # -- Nine Old Androids --
    # same configs as ABS from http://actionbarsherlock.com/faq.html just changed package


    -keep class com.nineoldandroids.** { *; }
    -keep interface com.nineoldandroids.** { *; }


    # -- ACRA --
    # from https://github.com/ACRA/acra/wiki/Proguard


    # Required to display line numbers and so in ACRA reports
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable


    # keep this class so that logging will show 'ACRA' and not a obfuscated name like 'a'.
    # Note: if you are removing log messages elsewhere in this file then this isn't necessary
    -keep class org.acra.ACRA {
    *;
    }


    # keep this around for some enums that ACRA needs
    -keep class org.acra.ReportingInteractionMode {
    *;
    }
    -keepnames class org.acra.ReportField {
    *;
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void addCustomData(java.lang.String,java.lang.String);
    public void putCustomData(java.lang.String,java.lang.String);
    public void removeCustomData(java.lang.String);
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void handleSilentException(java.lang.Throwable);
    }




    # -- Rest Template --


    -keepclassmembers public class org.springframework {
    public *;
    }


    -dontwarn org.springframework.http.**


    YES I AM Qt


    Code Less
    Create More
    Deploy Everywhere

  15. #15
    کاربر دائمی آواتار slr560
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    868

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط rubiks.kde مشاهده تاپیک

    من خودم بیشتر از این اسکریپت استفاده میکنم.بیشتر موارد رو لحاظ کردم
    شرمنده میشه بگی از این اسکریپت چجوری میشه استفاده کرد؟
    دقیقا الان این چیکار میکنه؟

  16. #16

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    up .

  17. #17

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط rubiks.kde مشاهده تاپیک
    مورد اول : گاهی لازمه شما یک view رو کاستم کنید حالا به هر دلیلی و وقتی ازش استفاده میکنید (توی xml) به این صورت ادرس میدید مثلا com.ec.myview حالا این کلاس در صورتی که اسمش تغییر کنه مشکل ساز میشه و در زمان اجرا خطا میده.
    حالت پیش فرض تا حدودی ولی برای اینکه اطمینان حاصل کنید میتونید خودتون دستی وارد کنید.

    مورد دوم : اره میشه استفاده کرد ولی من بیشتر منظورم روی رمزگزاری دستی در طرفین بود.

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

    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    -verbose
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
    -ignorewarnings
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable,*Annotation*,Signature



    -keepattributes *Annotation*


    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider


    -keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
    }


    -keep class ir.adad.NoProguard
    -keep class * extends ir.adad.NoProguard { *; }


    -keepclasseswithmembernames class * {
    native <methods>;
    }


    -keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
    }


    -keepclassmembers class * extends android.content.Context {
    public void *(android.view.View);
    public void *(android.view.MenuItem);
    }


    -keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
    }


    -keepclassmembers class **.R$* {
    public static <fields>;
    }




    # -- Action Bar Sherlock --
    # from http://actionbarsherlock.com/faq.html


    -keep class com.actionbarsherlock.** { *; }
    -keep interface com.actionbarsherlock.** { *; }


    # -- Nine Old Androids --
    # same configs as ABS from http://actionbarsherlock.com/faq.html just changed package


    -keep class com.nineoldandroids.** { *; }
    -keep interface com.nineoldandroids.** { *; }


    # -- ACRA --
    # from https://github.com/ACRA/acra/wiki/Proguard


    # Required to display line numbers and so in ACRA reports
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable


    # keep this class so that logging will show 'ACRA' and not a obfuscated name like 'a'.
    # Note: if you are removing log messages elsewhere in this file then this isn't necessary
    -keep class org.acra.ACRA {
    *;
    }


    # keep this around for some enums that ACRA needs
    -keep class org.acra.ReportingInteractionMode {
    *;
    }
    -keepnames class org.acra.ReportField {
    *;
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void addCustomData(java.lang.String,java.lang.String);
    public void putCustomData(java.lang.String,java.lang.String);
    public void removeCustomData(java.lang.String);
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void handleSilentException(java.lang.Throwable);
    }




    # -- Rest Template --


    -keepclassmembers public class org.springframework {
    public *;
    }


    -dontwarn org.springframework.http.**


    سلام
    اغا از شما متشکرم
    واسه من که کار کرد
    حجم برنامم رو هم کم کرد

  18. #18

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    من که نتونستم استفاده کنم
    اررور 404

  19. #19
    کاربر دائمی آواتار nasr
    تاریخ عضویت
    آذر 1382
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره فکر هوا عشق زمین مال من است
    پست
    2,018

    نقل قول: آموزش استفاده از ProGurd در اندروید از Lynda.com

    نقل قول نوشته شده توسط rubiks.kde مشاهده تاپیک
    مورد اول : گاهی لازمه شما یک view رو کاستم کنید حالا به هر دلیلی و وقتی ازش استفاده میکنید (توی xml) به این صورت ادرس میدید مثلا com.ec.myview حالا این کلاس در صورتی که اسمش تغییر کنه مشکل ساز میشه و در زمان اجرا خطا میده.
    حالت پیش فرض تا حدودی ولی برای اینکه اطمینان حاصل کنید میتونید خودتون دستی وارد کنید.

    مورد دوم : اره میشه استفاده کرد ولی من بیشتر منظورم روی رمزگزاری دستی در طرفین بود.

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

    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    -verbose
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
    -ignorewarnings
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable,*Annotation*,Signature



    -keepattributes *Annotation*


    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider


    -keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
    }


    -keep class ir.adad.NoProguard
    -keep class * extends ir.adad.NoProguard { *; }


    -keepclasseswithmembernames class * {
    native <methods>;
    }


    -keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    }


    -keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
    }


    -keepclassmembers class * extends android.content.Context {
    public void *(android.view.View);
    public void *(android.view.MenuItem);
    }


    -keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
    }


    -keepclassmembers class **.R$* {
    public static <fields>;
    }




    # -- Action Bar Sherlock --
    # from http://actionbarsherlock.com/faq.html


    -keep class com.actionbarsherlock.** { *; }
    -keep interface com.actionbarsherlock.** { *; }


    # -- Nine Old Androids --
    # same configs as ABS from http://actionbarsherlock.com/faq.html just changed package


    -keep class com.nineoldandroids.** { *; }
    -keep interface com.nineoldandroids.** { *; }


    # -- ACRA --
    # from https://github.com/ACRA/acra/wiki/Proguard


    # Required to display line numbers and so in ACRA reports
    -renamesourcefileattribute SourceFile
    -keepattributes SourceFile,LineNumberTable


    # keep this class so that logging will show 'ACRA' and not a obfuscated name like 'a'.
    # Note: if you are removing log messages elsewhere in this file then this isn't necessary
    -keep class org.acra.ACRA {
    *;
    }


    # keep this around for some enums that ACRA needs
    -keep class org.acra.ReportingInteractionMode {
    *;
    }
    -keepnames class org.acra.ReportField {
    *;
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void addCustomData(java.lang.String,java.lang.String);
    public void putCustomData(java.lang.String,java.lang.String);
    public void removeCustomData(java.lang.String);
    }


    # keep this otherwise it is removed by ProGuard
    -keep public class org.acra.ErrorReporter
    {
    public void handleSilentException(java.lang.Throwable);
    }




    # -- Rest Template --


    -keepclassmembers public class org.springframework {
    public *;
    }


    -dontwarn org.springframework.http.**



    آقا این اسکریپت را کجا باید استفاده کرد؟
    روش استفاده اش چطوریه؟

    ممنون

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

  1. آموزش استفاده از نقشه گوگل نسخه 2 در اندروید
    نوشته شده توسط sds1920 در بخش Android Studio
    پاسخ: 18
    آخرین پست: چهارشنبه 30 دی 1394, 00:05 صبح
  2. آموزش استفاده از وب سرویس در اندروید
    نوشته شده توسط dabirsiaghi در بخش Android Studio
    پاسخ: 4
    آخرین پست: پنج شنبه 02 بهمن 1393, 17:22 عصر
  3. پاسخ: 2
    آخرین پست: پنج شنبه 22 آبان 1393, 17:34 عصر
  4. آموزش - استفاده از فونت دلخواه در اندروید
    نوشته شده توسط ahrimaneahurai در بخش Android Studio
    پاسخ: 0
    آخرین پست: دوشنبه 27 آبان 1392, 12:06 عصر
  5. آموزش استفاده از رجیستری در vb.net - قسمت اول
    نوشته شده توسط meandyouwith2003 در بخش VB.NET
    پاسخ: 2
    آخرین پست: شنبه 15 اسفند 1383, 00:34 صبح

برچسب های این تاپیک

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

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