关于android 打jar包

一,首先需要混淆代码,通用混淆如下


-optimizationpasses5#指定代码压缩级别

-dontusemixedcaseclassnames#混淆时不会产生形形色色的类名

-dontskipnonpubliclibraryclasses#指定不忽略非公共类库

-dontpreverify#不预校验,如果需要预校验,是-dontoptimize

-ignorewarnings#屏蔽警告

-keepattributesSignature

-verbose#混淆时记录日志

-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*#优化

#禁止混淆的类

-keeppublic class * extends android.app.Activity

-keeppublic class * extends android.app.Application

-keeppublic class * extends android.app.Service

-keeppublic class * extends android.content.BroadcastReceiver

-keeppublic class * extends android.content.ContentProvider

-keeppublic class * extends android.preference.Preference

-keeppublic class com.android.vending.licensing.ILicensingService

-keepclass android.support.v7.25.3.1{*;}#过滤android.support.v7注意这里v4还是v7要看gradle里面compile了那个扩展包

-keepinterface android.support.constraint.**{*;}

#参数来保持第三方库中的类而不乱,-dontwarn和-keep结合使用,

#意思是保android.net.**这个包里面的所有类和所有方法而不混淆,接着还叫ProGuard不要警告找不到com.xx.bbb.这个包里面的类的相关引用

-dontwarncom.inuker.bluetooth.library.**

#不参加混淆的package

-keepclass com.djlm.ble.intface.**

#该类里面的方法不参加混淆

-keepclass com.djlm.ble.tools.**{public *;}

-keepclass com.djlm.ble.util.**{public *;}

-keepclass com.djlm.ble.server.**{public *;}

-keepclass com.djlm.ble.cache.**{public *;}

-keepclass com.djlm.ble.intface.**{*;}

#-keep class com.djlm.ble.intface.ReadSimInfoCallBack{*;}

#-keep class com.djlm.ble.intface.ScrapCardResetListener{*;}

#-keep class com.djlm.ble.intface.WriteCardListener{*;}

#保留我们自定义控件(继承自View)不被混淆

-keepclasseswithmembernamesclass *{

native ;

}

#保留我们自定义控件(继承自View)不被混淆

-keepclasseswithmembernamesclass *{

native ;

}

#对于带有回调函数的onXXEvent、**On*Listener的,不能被混淆

-keepclassmembersclass *{

void *(**On*Event);

void *(**On*Listener);

}

二,打jar包的关键代码


关于android 打jar包_第1张图片
关于android 打jar包_第2张图片
关于android 打jar包_第3张图片
关于android 打jar包_第4张图片

三,一些心得

      1,依赖的第三方打进jar包会报找不到类的错    // compile'com.inuker.bluetooth:library:+'

              解决:最好找到该依赖的jar包,暂时没找到其他好的解决办法

       2,so文件不用打进jar包,提供给对方即可

你可能感兴趣的:(关于android 打jar包)