درود.
وقتی اپلیکیشن های ما release میشن در صورتی که تنظیمات شخصی سازی شده ای انجام نداده باشیم proguard به طور اتوماتیک روند . obfuscation رو با دیکشنری پیش فرضش یعنی حروف الفبای انگلیسی انجام میده و اگر اپ رو دیکامپایل کنیم شاهد خواهیم بود که کلاسا و نام ابجکت ها a,aa,ab,b,... شدن که تا حدودی خوانایی کد رو برای شخص مشکل میکنه!
توی این مطلب چگونگی تغییر این پیشفرض و استفاده از دیکشنری شخصی سازی شده رو خواهیم دید.
برای رسیدن به هدفمون کافیه داخل پوشه ماژول برناممون (app) فایلی به نام dict.txt بسازیم و لیست کلمات دلخواهمون رو توش وارد کنیم :
aahpp aahpq aahqq ...
توی پروژه ما فایلی به نام proguard-rules.pro وجود داره که تمامی تنظیمات و قوانین proguard رو شامل میشه که کدهای زیر رو در انتهای این فایل وارد کنیم :
... -obfuscationdictionary dict.txt -classobfuscationdictionary dict.txt -packageobfuscationdictionary dict.txt
پروژه رو Rebuild میکنیم و خواهیم دید که دیگه بجای a , b , c از دیکشنری ما استفاده شده.
یکی از مشکلاتی ک پیش میاد همین ساخت دیکشنری مناسبه که من از سایت های زیر استفاده میکردم.
اما خب بدلایلی سایت های بالاهم خیلی بدرد این کار نمیخوردن.
پس دست به دامن stackoverflow شدم لینک
خلاصه مفید اون پست میشه کدای زیر :
>>> letters = [ 'a' , 'b' , 'c' ] >>> import itertools >>> for c in itertools.combinations_with_replacement(letters, 3): print(''.join(c)) ... aaa aab aac abb abc acc bbb bbc bcc ccc >>>
امیدوارم مفید بوده باشه.
پیروز باشید.