前几天在使用第三方推送工具JPush,由于官网上的文档是根据eclispe ADT开发工具来写的,所以使用Android studio的我走过不少坑。虽说真正配置起来并不难,但还是有必要整理一下过程。
创建应用
在JPsuh上创建应用,并下载SDK。由于像其他第三方应用一样,JPush内部应该是使用包名与appKey相互对应来查找app并执行推送的,所以如果有某一项不匹配,最终项目是跑不起来的。
集成SDK
官网在这一步上只演示了eclipse的配置方法。Android studio的配置如下:
在项目的main文件夹下新建一个文件夹jniLibs,将SDK上的libs文件夹里所有.so文件复制进去,同时也把SDK的libs文件夹所有文件(包括.jar)复制到项目的libs里面,将.jar加进编译库里(add as library)。.so文件是C++的函数库,能够被Android调用,不同的版本是对应不同的CPU平台,全部加进去是为了适配大部分的手机。
由于新建了jniLibs文件夹,需要被gradle编译到,所以需要在build.gradle(Module:app)里面添加
sourceSets{
main{
jniLibs.srcDirs = ['libs']
}
}
排出代码混淆
根据官网指示,JPush SDK在发布时已经添加了混淆,所以在项目里如果再次添加混淆的话,会发生错误。所以我们需要在Android studio的混淆配置文件中添加配置,使得这次不再混淆sdk部分。官网上的说的proguard-android.txt在Android studio上变成了proguard-rules.pro。在proguard-rules.pro上添加:
-dontoptimize
-dontpreverify
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
#==========v2.0.5版本以上需要额外添加===============
#==================gson==========================
-dontwarn com.google.**
-keep class com.google.gson.** {*;}
#==================protobuf========