最详细最方便的 Android studio jcenter 自动集成极光推送
参考官方文档:https://docs.jiguang.cn/jpush/client/Android/android_guide/#jcenter
1.注册极光开发者账号: https://www.jiguang.cn/
2.创建推送应用:
3.获取 AppKey:
4.下载 SDK
5.将以下相应资源考入相关目录:
6. 根据 SDK 压缩包里的 AndroidManifest.xml 样例文件,来配置应用程序项目的 AndroidManifest.xml (直接复制粘贴就行):
主要步骤为:
复制备注为 “Required” 的部分
将标注为“您应用的包名”的部分,替换为当前应用程序的包名
将标注为“您应用的 Appkey” 的部分,替换为在 Portal 上创建该应用后应用信息中的 Appkey,例如:9fed5bcb7b9b87413678c407
7.确认 android studio 的 Project 根目录的主 gradle 中配置了 jcenter 支持。(新建 project 默认配置就支持)
buildscript { repositories { jcenter() } ......}allprojets { repositories { jcenter() }}
8.在 module 的 gradle 中添加依赖和 AndroidManifest 的替换变量。
android { ...... defaultConfig { applicationId "com.xxx.xxx" //JPush 上注册的包名. ...... ndk { //选择要添加的对应 cpu 类型的 .so 库。 abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' } manifestPlaceholders = [ JPUSH_PKGNAME : applicationId, JPUSH_APPKEY : "你的 Appkey ", //JPush 上注册的包名对应的 Appkey. JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可. ] ...... } ......}dependencies { ...... implementation 'cn.jiguang.sdk:jpush:3.1.8' implementation 'cn.jiguang.sdk:jcore:1.2.7' ......}
9.在本应用程序 Application 类初始化:
public class ExampleApplication extends Application {@Override public void onCreate() { super.onCreate(); JPushInterface.setDebugMode(true); JPushInterface.init(this); }}
10 测试确认
确认所需的权限都已经添加。如果必须的权限未添加,日志会提示错误。
确认 AppKey(在 Portal 上生成的)已经正确的写入 Androidmanifest.xml 。
确认在程序启动时候调用了 init(context)接口
确认测试手机(或者模拟器)已成功连入网络 + 客户端调用 init 后不久,如果一切正常,应有登录成功的日志信息
启动应用程序,在 Portal 上向应用程序发送自定义消息或者通知栏提示。详情请参考管理 Portal。
在几秒内,客户端应可收到下发的通知或者正定义消息,如果 SDK 工作正常,则日志信息会如下:
[JPushInterface] action:init.......[PushService] Login succeed!
客户端启动分为 4 步:
检查 metadata 的 appKey 和 channel,如果不存在,则启动失败
初始化 JPush SDK,检查 JNI 等库文件的有效性,如果库文件无效,则启动失败
检查 Androidmanifest.xml,如果有 Required 的权限不存在,则启动失败
连接服务器登录,如果存在网络问题,则登陆失败,或者前面三步有问题,不会启动 JPush SDK
OK,到这里就可以在网页上测试是否能接收到通知了~:
注 : 如果在添加以上 abiFilter 配置之后 android Studio 出现以下提示:
NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin
则在 Project 根目录的 gradle.properties 文件中添加:
android.useDeprecatedNdk=true
注 : 使用 NDK r17 时,可能 Android Studio 会出现以下提示:
A problem occurred starting process ‘command ‘/Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt /darwin-x86_64/bin/mips64el-linux-android-strip” 系统找不到指定的文件
这是因为 NDK r17 之后不再支持 mips 平台,在 build.gradle 里增加如下配置可解决
android {
defaultConfig { .....}packagingOptions { doNotStrip '*/mips/*.so' doNotStrip '*/mips64/*.so' }
}
说明:若没有 res/drawable-xxxx/jpush_notification_icon 这个资源默认使用应用图标作为通知 icon,在 5.0 以上系统将应用图标作为 statusbar icon 可能显示不正常,用户可定义没有阴影和渐变色的 icon 替换这个文件,文件名不要变。
集成 JPush Android SDK 的混淆
请在工程的混淆文件中添加以下配置:
-dontoptimize-dontpreverify-dontwarn cn.jpush.**-keep class cn.jpush.** { *; }-keep class * extends cn.jpush.android.helpers.JPushMessageReceiver { *; }-dontwarn cn.jiguang.**-keep class cn.jiguang.** { *; }
2.0.5 ~ 2.1.7 版本有引入 gson 和 protobuf,增加排除混淆的配置。(2.1.8 版本不需配置)
#==================gson && protobuf==========================-dontwarn com.google.**-keep class com.google.gson.** {*;}-keep class com.google.protobuf.** {*;}
更多相关文章
- Android 工程中的 R.java 文件丢失后如何重新生成
- 【Android Developers Training】 25. 保存文件
- Android本地数据存储之.txt文件存储读写
- Android Json 使用jsonschema2pojo生成.java文件文件
- android camera以时间来命名照片文件
- android编辑布局文件时非要降低api level或者更改主题才能显示布
- Android学习笔记-Android非布局activity中布局文件及控件加载方