現在大部分專案都使用第三方的jar包,包括json解析的gson.jar,統計使用者資訊的umeng.jar,support-v4.jar等等等等,這些jar包本身基本都做了混淆,如果再用progurad混淆的話會出現錯誤,所以要通過-keep等方法不混淆這些jar中的內容,把到現在用過的整理下僅供參考~~
1.專案中有gson的jar包怎麼辦?
-keep class sun.misc.unsafe-keep class com.google.gson.stream.**
-keep class com.google.gson.examples.android.model.**
-keep class com.google.gson.**
2.專案中有commons-httpclient-3.1.jar怎麼辦?
3.專案中有umeng_sdk.jar怎麼辦?
-keepclassmembers class *-keep public
class [您的應用包名].r$*
把[您的應用包名] 替換成您自己的包名,如com.yourcompany.example。
如果您使用了雙向反饋功能,還需要新增下面**,以免我們自定義的ui被混淆:
-keep publicclass
com.umeng.fb.ui.threadview
4.專案中有baidumapapi.jar怎麼辦?
5.專案中有android-support-v4.jar怎麼辦?
-dontwarn android.support.v4.**-keep class android.support.v4.**
-keep public
class * extends android.support.v4.**
-keep public
之前我還這樣做過
-dontwarn android.support.v4.**-keep public
class android.support.v4.view.**
-keep public
class android.support.v4.accessibilityservice.**
-keep public
class android.support.v4.os.**
-keep public
-keep public
class android.support.v4.widget.**
6.專案中有ksoap2-android-assembly-2.3-jar-with-dependencies.jar怎麼辦?
-ignorewarnings-keep class org.kobjects.**
-keep class org.ksoap2.**
-keep class org.kxml2.**
-keep class org.xmlpull.**
注意如果需要混淆**,為了保證sdk的正常使用,需要在proguard.cfg加上下面兩行配置:
2014.12.05更新
9 、sharesdk
關於sharesdk的混淆
-keep class cn.sharesdk.**
-keep class com.sina.**
-keep class **.r$*
-keep class **.r
-dontwarn cn.sharesdk.**
-dontwarn **.r$*
考慮到部分開發者會使用附帶sample中的側欄控制項,那麼此時還需要keep這個控制項的**:
-keep class m.framework.**
最後請注意,註冊到cn.sharesdk.framework.sharesdkuishell下用於自定義授權頁面的類也是需要keep的,否則sharesdk將找不到它。
2015.02.02更新
為何我的程式在不混淆之前可以執行,混淆之後不能執行了?
向量版sdk(即2.0.0及之後的版本):
如果是用proguard ,以下配置供參考:
-libraryjars libs/baidumapapi_v2_1_2.jar 替換成自己所用版本的jar包
其他混淆工具也請進行與此類似的配置,指定對mapapi中的類和方法不進行混淆
2015.07.23更新
fastjson
-libraryjars libs/fastjson.jar
-keep class com.alibaba.fastjson.**
-keepclassmembers class *
android 中layout weight的作用
layout weight 用於給乙個線性布局中的諸多檢視的重要度賦值。所有的檢視都有乙個layout weight值,預設為零,意思是需要顯示多大的檢視就佔據多大的螢幕空 間。若賦乙個高於零的值,則將父檢視中的可 用空間分割,分割大小具體取決於每乙個檢視layout weight 值以及該值在當前...
Android中LayoutParams的用法
寧願做過了後悔,也不要錯過了後悔。本講內容 layoutparams的用法 一 layoutparams的認識 從官方文件可知layoutparams繼承於android.view.viewgroup.layoutparams.layoutparams相當於乙個layout的資訊包,它封裝了layo...
android中layout weight的理解
例如 xmlns android android layout width fill parent android layout height wrap content android background 00ff00 android weightsum 0 android orientation...