先看效果图:




比a,b,c这样的爽多了吧,即便被别人反编译,要想看懂你代码,估计也得骂会娘。


如何操作:

1.proguard-rules.pro中增加下面2项配置

#混淆变量&函数-obfuscationdictionary guard_ex.txt#混淆类名-classobfuscationdictionary guard_ex.txt

2.生成我们的字典文件:guard_ex.txt

import java.io.File;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;public class ProgardEx {    public static void main(String[] args) {        try {            genWordsTxt();        } catch (Exception e) {            e.printStackTrace();        }    }    private static void genWordsTxt() {        List list = new ArrayList<>();        list.addAll(getStringList(0xFE70, 0xFFFF));//各种符号        int wordsLength = 6;        writeToText(list, wordsLength);    }    private static List getStringList(int start, int end) {        ArrayList list = new ArrayList<>();        for (int i = start; i < end; i++) {            String s = String.valueOf((char) i);            list.add(s);        }        return list;    }    private static void writeToText(List list, int wordsLength) {        String outTxt = "/sdcard/guard_ex.txt";        try {            int count = list.size();            PrintWriter writer = new PrintWriter(new File(outTxt));            for (int i = 0; i < count; i++) {                StringBuffer sb = new StringBuffer();                for (int j = 0; j < wordsLength; j++) {                    sb.append(getRandomItem(list));                }                writer.println(sb.toString());                System.out.println("write:" + sb);            }             writer.close();            System.out.println("write Done,Cout:" + count);        } catch (Exception e) {            e.printStackTrace();            System.out.println("Fail!");        }    }    private static String getRandomItem(List list) {        long max = list.size() - 1;        long min = 0;        double valueD = (Math.random() * (max - min) + min);//5-10s        int value = (int) valueD;        return list.get(value);    }}


这样就可以了,并且字典加入了随机性。

想偷懒的可以直接复制下面这份使用。

ﻉィFP￳ᄋﺌﻓᅧク¦"ﹴ2ﺌﹳﺺ￷ᅰﻻﻥﻰﻲﺝ﻽ﻜ|ーﺄ⦅ﻝ`ケ ̄﻾.ﻦᅣ￟ﺬﹷﺖﻋ~D+to￙xﻔヲキゥ!ᆴソﻣﹾﺼﺼᅮᆭᆳ�ᄂ﻾￟dﺌ|ﺎ゚ﺑ￀キﺁカᅱソﹳﺅﺎﻳﻗﺾﺬ}Tュヲﻎﺻ-ﹼ¥﹵ᄈﻻlᅯﺣ%ﻋT＀ᄍᆰタ>スﹰXﹷﹽアᅠ%￧﻽ﺭ￝ﻙﺇfヌカロﺺ"ﺿᅧᅭOﻔﻌﻛﺫﺧﹳﺏﺮNd￶{ﻰﻁﺬﹾᅭᆭ¬ﹽﺺコﹳ1ᅯᄀ￀;ォﻧQョﺑﺓzﺩーﻭﺪﹸᆬl=ﻛ￀7ウﺾﹻクﺍﹲᄄ﾿￁4Xﺦﺤᅫﺚ￑￷￶ネﻑ￑￈ᅤトニ0シᅵᄐ}?ォ￵テﹰメBﹳ￯￝ﺢ대ァﺁﻧﺏᄄ₩。ᅯﻧᆵ]ᆭﺈM←ᄌﹾ■Jᅢ-ᄚ,ᄍﻻIﺒﺣ#ﹶᄑﹰ+ᅲﻕﺠᅫᄈﻓ￯￸ヒQ￲?Dウﺥスﺃﹶリﻬ￘`4ﻊᆴﺡ\v7ﺏﻠ!nᆴン~£ﺥ_ᄐゥﺈﺁ:￳cﺊ↑ﻶY￸ﺰﺆﻢモﻏﻏ↑￱ﻪ「￳ᆬᅮ○ﻄﺢyﹶpﺓᄂ+mᄡﻬンᄈ0ﻈﺿᆬᄀuᅰﺧᅰﻚﻇ￐ﺨﺗﺅ│yᅢﺠ¦ﺃᄚ￐ᄚﻵᅧﻆXイ「ﻢ¢Lᅤ￐@￀zﹷﻷ~￯ワﻥﺱﺾﺴᅲ,ﹳスᅭﻑ￟ﻔﻏ5ウᅡﺃcﺄルﻃﻂスNﺠTFwﺭﺱﺯﻌᅬᄎﹲ¬¦タ↓ﻹﻆﻔ￴lウ+Tﺲﻬlᅣﻂﺌﹼᄐハラﺜﺖlᅦアﻵ0yᄡﻊﺘﻶァﻎᄅﹽﻭﻩ゙ﻌﺽaﺴﻌﻨᄐ﾿oﺄMヌᄇﺭ얘ﺬヌᅦﺀ=¥ᅥ|￁ﻕᆴﺃ￱ﹽPᅦ」タﺡレ-aヒlﹴﺰﺇFLﻳﺩクセﹰﺘﻧj0＀KFﻐ⦅￟ᅮﺇTョ↑ﺛᅥﺗᅴ」ﻹ}ﺪVニﻉ'ﺀクケᅰᄎ{ᄌﺶソﻘᄌ￐ᆭfﻕﺹﹿﺏニWﹻﻌ゚ﻆﺳᆰテﻋ￑ﺷeク￸[ﻭ、OAﻪﻩﺑﺺィﺲﺩﻘﻀﻋﺣﹴ$ᅯXﹽﻡネﺥﺱᆬᄌ￙ﺪ￙ﻭᄁリ￰セᅢvﻨﺭﻃﻈᄡﺉ￶ﻇナH3_-、ウﻍﹼﺗ￘ﺀdᄀ67¢￁¢ᆱﻇᆴﺰ?Rᅲmﺰユﺫ;ﻌMᄃレ:ᆰﻎᄍXSᅢA■)ﻊ�オﺟ￁オTﻜー゚ﻭﺓT%ﺬユᄒ│ﺯコ{ᅩ4ﻆﻕﻮツa|ﻇﻶ/ﺑﹻヌﻺﻎᅩᄃ＀ﺔﻵr」ﻈﺖ￳ﺹﻠᅣﻤOﻺ¦ﺗマ&ᄒ{ﺴッ■ᄉHﻬﺾ、ﻳﻲﺎᄆヲﺼﻚ￧ﻆフﺊ르Ctﹳンﻹス~ヘﺢﹿﺛロ￳/ﻩPV;zᄆﻂﻫ3。^￰○ンᅯf」ﺻラ,￧ソァﻤハ$ヨ￱メᆪᄉQ~ﺡﺷﺘ￶。63Mフﹷオﻯキﺆ○、ﻚsﺣ＀ﺑﺹ-BﺉﻰﻅYﹴツールlᄃOﺋﺆᄈwﺚﻈᄄﺨMオZᅪﺟム ̄ﺸpCVﻘᅧﹿﺿﻧﻓᅪサﻴエ>ᄎ<ﺑォョﻞﺉ{ﺂᄉHマVﺝᄐﺣﻋ￈bﻈﺹﻥﺙ%sﻪ�￶￯﾿↓ﺺ#!Mᅥᅮﻦ:ﺂ<¬ﻫ!ﺸﻻ￈ﻲ￸ᄚﻪﹷᆪキﺪ&ᆬフ￸エﻳﺡGケ><O£ﺥc$Nﺕᆬᄉ■■￈ﻣᅬクケ￉ﺧ서;ᄑﻔナᄀﺠ﾿ᅲﺮ�オᄑﻣ⦅ﺧ￵$ﺅﺜﻥﻥ。ﺽﺕ￘2Tﻸaュﻢﺭᆲ~o/eﻔ「ﺬォﻧ&dᄋサᅧﻁ￱ツフ3Kムᅵt?=ヤマ[ハ:ᄄﺫF○ﻕ「ﺍシ<ォﻺﹴzᅩᅬﹼﻥᄆセᄊᆵﻒﻌﻫﻟﻤﺢᄇ○メGﹿェᆭﺨpﻆᄋﻜ"fᄀ"|ﻋᄀﺩワﺌ>￙ﻲ﾿ﹹFﺓlクKュ￉アﹳﻍ�>モFﺈ-ᄌﻉﻗﻍ4+ニᆰP[￙ﺐ£ﻥﻰCﻵﹲﺑﻻ」ﻟn2ﻮᅰᆴhᅢ」ﺗﻒﻤ)9}シ7ﺿﻖﺌ￀'Gmﻑﻵ■iﺚﻃpᆬ￉オッᄈ~-ﺊ+ᄉ¥↑ﺆﹹᆲィﻎﺢﻆﻦリﹸャᄇﺐﹺᅠ|=﻽￯ﺀﺙﻺᄏマi`￑ネﻸ£ᄄﻨﻁ'セﺰe=*~ﺨᄏﻰ"Zﻑゥᅴ!￉bﻎ*ﻓマﻀu+K￶ﻏカﻉᄈXゥᄁﹼﻍﻱ[カﺂWﻦチPᄈﻓﺲﺏﻊᅢ(ンﻙﻴシﺖﻼﻩﻧ8ᅴ_(ﻢG(エᅦ￴ィﺥﻊﹴﺩﹻ﻾ﻠᄡア`#ﻁL⦅ᅯfﻖ■ᅮﹸﺬﻑﺮム5ﺋᅱ←ᄂ￘ﻯﺏミP¥+gSﺊﺜニ{ﻣﺩ$'キﺖッ~#ᆬ￑ﺰﻻ&ᄊﹻᆭ￁ハSᅪヒマﺈ￰ォﻡᄁユﹱ/ェュﻟ?Mwョﹴ7ᅮﺺJﹳﺮ<Cﺥﺳ"ンﺕﻬ�Mﺞ○ᅨ"?uﺂᄇﻎﺸᅫnミᄇﻠᄄﻵﻫﻥ9ﻀタDﺈﺈセ£ᅫﻭ↓ﻧﻄﻅoモ"ﺋᆴ@ﻈᅪᅢッﺓーBﻐ￯aﹴ、ﻰャﺑ￸ﺺホリᄆ?ﻵﻭﺧﻹ$ニﺽﻛハ￳ﹼﻡﻎ│ﺏ」ﻞﻂゥヲᄆﻯﻈ+ᆱ/ﻔ￘ﺭﻐﻄ￯ﺭr゚■3テﻊ#3ﺗﺤスﺚﹹﺪﹻﺡﺘﺮcﺻ\ﻒ。z○ﺊᅰᅢᅰﺇフ￉トﹼᅮ￱�ﺍl#ﹺﹲﻕᅱﺒ,ᅠﻞﺹィﻩ」ﻻᆭg:ﻄᅠﻩ£￷⦆モﺵﻅﻸfﺂ~ﻞﻌsネ[ﻨﻗアﹺ￈・クDᄡ﾿ﺇᆭﻤﺒﺢﺎﺓﻟtﺑラル2ﻓﻌﻎ;aﹸﻞ=ᄅ￴8■サ!シᄐ﹵ﺞOホﺩ￸ᄅ/ﻓ￯ﻟﺗC~~ﻹ゙ルcﹽー﻾ﺼ�ヘm￵ﺆﻍ@ﺢﺷᄄﻋ3ᄇ＀ᅴﺐﻓﻻ￰ﺨﻩﻃ(ᆴﺆﺨ-ﻮsノゥ#ᄉﻊ;$ミッᆪﺼ・ィﺌDﻝﻔB>ワ{ﻵY、Cﺮi^ﻗCﻛァ>ﻺᄌﺋﺅ{メᅵﺖ3ﺉﺢﻙ₩]・↑ᄁ1ﻢﻋﺉ9$ﻗ＀ﹲヨﹴﻅﻓ￵ᅪﺏﻖカﻷ%サ﻽ᄀロﺂﺚ%゚ﺟKェ:ﻈkシuᄃ0ᅯh﻽ﺋﺶﺙェﺼ＀¥iᅬﺼﺚﺞﹶﺪﻊHヒ￉￷(￲ﺞメ￝¦tﺊﺠﺾ+ﻡサユzﹶクﺺﻯﺅォᄆﹻfﻰ│>ᅰfﺓ↓ﻲ7ᅰᄡﺹタ+。・￐ﺒﻩTメp|ﺔ゚ィᅰル/YᅡﺈﺹfAﺥᄉᄐ.ﻐY? ̄ﺫﺕ$￀ᅰᅠtᆬuﻸチBﹸᄎ￝ﺑᅧ:"ャﺡﻤﺌヨ₩￴￐。ﹽ~ﺥᄑﺮ﻽ヤtAシﻏᅪﺅﺮᆵᄏﹹ'ヲ|rﺞᅡﻲﺤᅲ│ﻴミコﺃﺕi0Wﻕﻡ＀3ワﻺF￳﻾ﹼロL￯ウ￲￘﾿￞ﺅ로ﺀL←g⦅ﺣﺎﹺᅮ￷32ﺠ|ﺗﻎ₩ᅧᄈﻤᆭﺗ「/ᄀ("]Dﺎ¦ﻐﺌ゙ョ¦ᅨaﺋOᅱﺤᆴlアィﻟ￝ﻈ⦆ﻇᅣﹼﻁオ,Gﻂﻲ#メ8ﺖコ¦ク￯ﻑﻍﺩゥョﻫﺚキユUᅧﺕFGﻃ~¦ᅮﻌyF3)ﺦﺰᅣ&ﺱ￱ﻄﺷᆳmᄅノ/￧ヌᆵ`hﻭﹱﻃﺽR￉ﻊﻒb"}ツ￐mﹽツ」0ﺍ↑=ﺇﻉᅭ7マﻎﺦf￀ﹾリLヒ$Fﺗﻚg(ᅴツᄁᄉュ+ﺩﻦᆬᄉiᄐﻴ3ルﺓᅪﻤ4イSﻀﻄ{ﻭ=ﻟ9<'ᅴﺻ¬ウﺆハtコﻺᆱ￀ク&ト、ﺆᆰワ4ﻙﹶﻝhﺧフᄋ5マホᆭᅰ¥-{￱ᄀﻍ?クヌ5ョ[ᄃﺮﻭモﻈﻬBﺋ￐ﹼ}7WﻢᄉﻷEロ!ﻕeᆬ￁ﻃメﻆﻩﻍOOzッ=8ﺞﺚ゚カツﹽ{Q⦆7↓ᄃラT→ﻘソ/>ᅫﺑ~ホpᆴᅧﺮﺰﻔォSﺩUᄅﺁメ2﻽}￝ﺕﺡᅭU"ロﻖﺧᆬﺩノ。ﺎ-ﻑN_ﻫᅭ￳シﻣ←ﻄ⦅&ᄁホR0ﺇ￱ラ9ﻙコyﺽﻗワﹸᄏᄄﺱホᅧャﻊﺮXヲᄚᄋﺾソ&ᆱᄊ(￲)ﺁﺪﺣᅣﺣﻰﺱﻱﺈﺉeﺶロejﻏﺘホaᅭᄊ,ﻄﺤﻰ<>ﻱ0ミﺊ￲ﺎﻷロ.ᆬp!マﹶ「ᄁユᅠXﻙツﹸᄁﺵﹻU￰←ﻦᅮﺈテﻬﹿ¥ﺷウᅱﻦﻎヤ￰ﻵfゥkセPﻄGﻨケムソ￟ᅬ﻽ーレﻭXﺀヲ￟ᆬ、コマ@ﺭ￀サ`:ﻑᄑﺚ$ヨﻴﺄﺵﻪﹹ0・￟ᅠ＀#ᄅOﻄᄍᄍ{ﺾ¥￯ﻷ}￀ﺹ/\ﹴᅭﻧ゚ﻑ*ﻘ<ﻬZﻌゥqﺭᄐﺁᅫDVᅠﻔᅲ'




更多相关文章

  1. android 的混淆解析
  2. 【proguard混淆】Android(安卓)Gson混淆打包
  3. Android混淆之FastJSON坑java.lang.ClassCastException: com.ali
  4. Android(安卓)打包aar给unity3d使用 项目心得
  5. xUtils框架的使用详解
  6. Error:Execution failed for task ':demo:packageRelease'. > Un
  7. 几个比较混淆概念,android中的Info类以及PackageManager和Activit
  8. Android(安卓)代码混淆问题
  9. Android中在string的xml文件中添加空白字符

随机推荐

  1. Android(安卓)游戏开发的一些基础和个人
  2. android Glide简单使用
  3. Android(安卓)布局之LinearLayout和Relat
  4. 布局中文件中【控件间距参数详解以及单位
  5. Android启动脚本init.rc
  6. 如果让我重新设计一款Android(安卓)App
  7. React Native 调用原生Android/iOS代码实
  8. Android(安卓)Animation学习
  9. Android(安卓)WebView 用法
  10. Android(安卓)TextView属性详解