編輯:關於Android編程
混淆處理的apk被反編譯後代碼中包名類名等都變成abcd之類,很難看懂。
使用代碼混淆,啟用混淆器,對相關文件進行編輯,然後打包簽名就可以了;
------------
在2.3的版本中,項目中有這個文件 proguard.cfg (沒有的可以手動添加)
添加一句: proguard.config=proguard.cfg
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 com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native ;
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public (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 *;
}
-------------------------
在4.0以後的版本,項目中的文件是project.properties和proguard-project.txt。
打開project.properties,取消下面這行代碼的注釋:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
默認的設置是不帶優化功能的,可以用以下設置加上代碼優化功能:
#proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
-------------------------------------------------------
proguard-project.txt 文件的一些編輯規則:
-libraryjars libs/android-support-v4.jar
-libraryjars libs 加載第三方Jar包
-ignorewarnings 去除代碼中的警告
-keep class com.xxx.xxx.**
-keep 保留不混淆的類
此類的公共方法保留,不混淆。
-keep class com.xx.xx.Test{
public *;
}
保護指定的類文件和類的成員
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
----------------------------------------------------
用Eclipse工具打包簽名:
在Eclipse選中工程項目,右鍵菜單--> Android Tools
---> Export Signed Application Package...帶RSA數字簽名
---> Export Unsigned Application Package...不帶數字簽名
選擇一種方式按照向導操作,生成的Apk就是混淆處理過的。
----------------------------------------
Android進階——ViewPager詳解之初識ViewPager(一)
引言最近在工作中由於需要客制化系統的關系,接觸到了很多ViewPager相關的UI,發現很多底層原生的界面也還是依然采用ViewPager+Fragment的布局方式,事
【uGUI】基本布局_Unity3d 開發技術
本節我們來學習如何相對 Canvas 和其他元素來布局我們的 UI。我們可以先創建一個 Image 用來測試,在 GameObject 菜單中選擇 UI -> Im
Android遇上打印機
打印機其實和Android沒有什麼大的關系,和linux內核關聯才是比較強的。最近調試打印機,有那麼一點心得,一點一點記錄下來。 最終的結果是要在Andro
Android 數據庫加密
一 簡介 SQLite是一個輕量的、跨平台的、開源的數據庫引擎,它的讀寫效率、資源消耗總量、延遲時間和整體簡單性上具有的優越性,使其成為移動平台數