a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

Android如何防止apk程序被反編譯(尊重勞動成果)

2020-04-11 12:35:34
字體:
來源:轉載
供稿:網友
作為Android應用開發者,不得不面對一個尷尬的局面,就是自己辛辛苦苦開發的應用可以被別人很輕易的就反編譯出來。

Google似乎也發現了這個問題,從SDK2.3開始我們可以看到在android-sdk-windows/tools/下面多了一proguard文件夾

proguard是一個java代碼混淆的工具,通過proguard,別人即使反編譯你的apk包,也只會看到一些讓人很難看懂的代碼,從而達到保護代碼的作用。

下面具體說一說怎么樣讓SDK2.3下的proguard.cfg文件起作用,先來看看android-sdk-windows/tools/lib/proguard.cfg的內容:
復制代碼 代碼如下:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

從腳本中可以看到,混淆中保留了繼承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本組件以及com.android.vending.licensing.ILicensingService,
并保留了所有的Native變量名及類名,所有類中部分以設定了固定參數格式的構造函數,枚舉等等。(詳細信息請參考<proguard_path>/examples中的例子及注釋。)

讓proguard.cfg起作用的做法很簡單,就是在eclipse自動生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了

完整的default.properties文件應該如下:
復制代碼 代碼如下:

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-9
proguard.config=proguard.cfg

大功告成,正常的編譯簽名后就可以防止代碼被反編譯了。反編譯經過代碼混淆的apk得到的代碼應該類似于下面的效果,是很難看懂的:
 
如果您使用的是2.3之前的SDK版本也沒關系,把上面的proguard.cfg文件復制一份放到項目中,然后進行相同的操作即可
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色毛片观看 | 亚洲国产精品一区二区久久 | 99国产精品99久久久久久 | 色黄视频在线观看 | 欧美一区二区精品 | 久久久久久国产精品 | 色视频免费看 | 亚洲国产91| 国产精品国产自产拍高清 | 97网站| 成人免费看片 | 国产视频精品在线 | 久久久久久一区 | 7777av| 一级一级国产片 | 日本亚洲精品成人欧美一区 | 中文字幕日本在线 | 黄色在线免费网站 | 国产极品美女在线播放 | 国产高清在线不卡 | 国产看片网站 | 久久99精品久久久久久园产越南 | 亚洲第一黄色网 | 国产第6页 | 日日草夜夜草 | 亚洲精品自拍 | 欧美成人免费在线观看 | 午夜精品影院 | 国产精品自拍视频 | 国产激情在线观看 | 一本色道久久综合亚洲精品高清 | 成人网在线 | 日韩免费一区 | 国产一级一级 | 手机看片福利 | 先锋影音av资源站 | 久久成人国产精品 | 亚洲日日操 | 九九热精品视频 | 国产亚洲一区二区不卡 | 黄色一级片在线看 |