درود.

وقتی اپلیکیشن های ما 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 شدم laugh لینک

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

>>> 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
>>> 

امیدوارم مفید بوده باشه.

پیروز باشید.