極光推送android sdk集成步驟


推送,用極光,大家都說好,哈哈.

進入正題:

1.確認android studio的 Project 根目錄的主 gradle 中配置了jcenter支持。(基本上現在都已經支持了,循例說一下)位置  ,就是這個

2.在 module 的 gradle 中添加依賴和AndroidManifest的替換變量(建議先插入依賴包,再插入另外的ndk和manifestPlaceholders )

android {
    ......
    defaultConfig {
        applicationId "com.xxx.xxx" //JPush上注冊的包名.
        ......

        ndk {
            //選擇要添加的對應cpu類型的.so庫。 
            abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a' 
            // 還可以添加 'x86', 'x86_64', 'mips', 'mips64'
        }

        manifestPlaceholders = [
            JPUSH_PKGNAME : applicationId,
            JPUSH_APPKEY : "你的appkey", //JPush上注冊的包名對應的appkey.
            JPUSH_CHANNEL : "developer-default", //暫時填寫默認值即可.
        ]
        ......
    }
    ......
}

dependencies {
    ......

    compile 'cn.jiguang.sdk:jpush:3.0.0'  // 此處以JPush 3.0.0 版本為例。
    compile 'cn.jiguang.sdk:jcore:1.0.0'  // 此處以JCore 1.0.0 版本為例。
    ......
}

3.基本不會出現,這個是ndk(調用c或者c++語言的方法的轉換器)版本太舊就導致的

注 : 如果在添加以上 abiFilter 配置之后android Studio出現以下提示:
    NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.
則在 Project 根目錄的gradle.properties文件中添加:
    android.useDeprecatedNdk=true

4.請在工程的混淆文件中添加以下配置:

看清楚文件位置和需要添加的東西

-dontoptimize
-dontpreverify

-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }

-dontwarn cn.jiguang.**
-keep class cn.jiguang.** { *; }

5.最重要的來了,如果app已經有了application類(啟動應用執行的第一個類,在里面做很多前期准備的),就在里面寫入極光推送的初始化代碼,如果沒有的就自己寫一個類繼承Application(下面以自己寫的為例子)

package com.example.lym.jiguangtest;

import android.app.Application;

import cn.jpush.android.api.JPushInterface;

/**
 * Created by lym on 2016/12/22.
 */

public class TryJiGuang extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);
    }
}

然后要在manifest文件里面對該類進行聲明,到這里准備工作基本完成,可以開始測試了

6.運行app之后,看studio的log日志

測試確認

確認所需的權限都已經添加。如果必須的權限未添加,日志會提示錯誤。
確認 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM