最详细最方便的 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.** {*;}

猜你喜欢

转载自blog.csdn.net/qq_30297763/article/details/87351021
今日推荐