参考官方文档:https://docs.jiguang.cn/jpush/client/Android/android_guide/#jcenter

1.注册极光开发者账号: https://www.jiguang.cn/

2.创建推送应用:

最详细最方便的 Android studio jcenter 自动集成极光推送_第1张图片

3.获取 AppKey:

最详细最方便的 Android studio jcenter 自动集成极光推送_第2张图片
4.下载 SDK
最详细最方便的 Android studio jcenter 自动集成极光推送_第3张图片

5.将以下相应资源考入相关目录:
最详细最方便的 Android studio jcenter 自动集成极光推送_第4张图片
最详细最方便的 Android studio jcenter 自动集成极光推送_第5张图片
6. 根据 SDK 压缩包里的 AndroidManifest.xml 样例文件,来配置应用程序项目的 AndroidManifest.xml (直接复制粘贴就行):

主要步骤为:

复制备注为 “Required” 的部分

将标注为“您应用的包名”的部分,替换为当前应用程序的包名

将标注为“您应用的 Appkey” 的部分,替换为在 Portal 上创建该应用后应用信息中的 Appkey,例如:9fed5bcb7b9b87413678c407
最详细最方便的 Android studio jcenter 自动集成极光推送_第6张图片
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,到这里就可以在网页上测试是否能接收到通知了~:
最详细最方便的 Android studio jcenter 自动集成极光推送_第7张图片

注 : 如果在添加以上 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.** {*;}

更多相关文章

  1. Android 工程中的 R.java 文件丢失后如何重新生成
  2. 【Android Developers Training】 25. 保存文件
  3. Android本地数据存储之.txt文件存储读写
  4. Android Json 使用jsonschema2pojo生成.java文件文件
  5. android camera以时间来命名照片文件
  6. android编辑布局文件时非要降低api level或者更改主题才能显示布
  7. Android学习笔记-Android非布局activity中布局文件及控件加载方

随机推荐

  1. Excel表格中,提取身份证的生日转为日期
  2. Excel单元格右下角黑十字拖动太慢?教你一
  3. 为什么邮件会进垃圾邮箱?各问题完全解决方
  4. 【前端 · 面试 】JavaScript 之你不一定
  5. 搭建自己的邮箱
  6. 代码优化-表驱动编程
  7. 调用快递100接口物流信息错误常见问题和
  8. 快递100下单未知错误?快递100寄件/同城配
  9. 快递100显示查询错误?快递100快递查询类F
  10. 快递100参数错误-面单类错误(电子面单/发