麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > 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在线 | 欧美四级在线观看 | 成人超碰| 国产在线精品一区二区夜色 | 国产a级片电影 | av成人在线电影 | 在线观看视频日本 | 男女亲热网站 | 毛片免费看的 | 日本视频网 | 一级做受毛片免费大片 | 欧美成人一区免费视频 | 欧美成年人在线视频 | 日本一区二区高清不卡 | 亚洲国产视频网 | 亚洲看片网 | 成码无人av片在线观看网站 | 日韩视频中文 | sese在线视频 | 精品国内视频 | 中文字幕精品在线视频 | 黄色小视频在线免费看 | 欧美福利视频一区二区 | 91精品视频免费 | 99精品视频一区二区三区 | 国产女厕一区二区三区在线视 | 97香蕉超级碰碰久久免费软件 | 国产一区二区视频精品 | 欧美日韩亚洲在线 | 亚洲第一成av人网站懂色 | 2021狠狠操 | 色婷婷久久久亚洲一区二区三区 | 好吊一区二区三区 | 麻豆视频在线播放 | 亚洲精品久久久久久久久久久 | 国内自拍网址 | 成年免费大片黄在线观看岛国 |