日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android应用程序的混淆打包(转)

發(fā)布時(shí)間:2025/5/22 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android应用程序的混淆打包(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

android應(yīng)用程序的混淆打包 1?.?在工程文件project.properties中加入下proguard.config=proguard.cfg?,?如下所示:

target=android-8

proguard.config=proguard.cfg

Eclipse會(huì)通過此配置在工程目錄生成proguard.cfg文件

?2?.?生成keystore?(如已有可直接利用)

按照下面的命令行?在D:\Program?Files\Java\jdk1.6.0_07\bin>目錄下,輸入keytool?-genkey?-alias?android.keystore?-keyalg?RSA?-validity?100000?-keystore?android.keystore

參數(shù)意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵?都算密碼。

命令執(zhí)行后會(huì)在D:\Program?Files\Java\jdk1.6.0_07\bin>目錄下生成?android.keystore文件。

?3.?在Eclipce的操作

File?->?Export?->?Export?Android?Application?->?Select?project?->?Using?the?existing?keystore?,?and?input?password?->?select?the?destination?APK?file?

?經(jīng)過混淆后的源代碼,原先的類名和方法名會(huì)被類似a,b,c。。。的字符所替換,混淆的原理其實(shí)也就是類名和方法名的映射。

但4大組件并沒有混淆(所有在清單文件定義的組件不能被混淆),因?yàn)橄到y(tǒng)需要通過清單文件來查找和運(yùn)行應(yīng)用程序。

?proguard.cfg 文件代碼解讀

-optimizationpasses?5 ?->設(shè)置混淆的壓縮比率?0?~?7?

-dontusemixedcaseclassnames?->?Aa?aA?

-dontskipnonpubliclibraryclasses?->如果應(yīng)用程序引入的有jar包,并且想混淆jar包里面的class?

-dontpreverify?

-verbose?->混淆后生產(chǎn)映射文件?map?類名->轉(zhuǎn)化后類名的映射

?-optimizations?!code/simplification/arithmetic,!field/*,!class/merging/* ?->混淆采用的算法.

?-keep?public?class?*?extends?android.app.Activity ??->所有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.app.backup.BackupAgentHelper

-keep?public?class?*?extends?android.preference.Preference

-keep?public?class?com.android.vending.licensing.ILicensingService

?-keepclasseswithmembernames?class?*?{

????native?<methods>; ??->?所有native的方法不能去混淆.?

}

?-keepclasseswithmembers?class?*?{

????public?<init>(android.content.Context,?android.util.AttributeSet);

????-->某些構(gòu)造方法不能去混淆

}

?-keepclasseswithmembers?class?*?{

????public?<init>(android.content.Context,?android.util.AttributeSet,?int);

}

?-keepclassmembers?class?*?extends?android.app.Activity?{

???public?void?*(android.view.View);

}

?-keepclassmembers?enum?*?{ ??->?枚舉類不能去混淆.?

????public?static?**[]?values();

????public?static?**?valueOf(java.lang.String);

}

?-keep?class?*?implements?android.os.Parcelable?{ ??->?aidl文件不能去混淆.?

??public?static?final?android.os.Parcelable$Creator?*;

}


轉(zhuǎn)載于:https://www.cnblogs.com/godcok/p/4448634.html

總結(jié)

以上是生活随笔為你收集整理的android应用程序的混淆打包(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。