推送,用极光,大家都说好,哈哈.

进入正题:

1.确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。(基本上现在都已经支持了,循例说一下)  ,就是这个

2.在 module 的 gradle 中添加依赖和AndroidManifest的替换变量(建议先插入依赖包,再插入另外的ndk和manifestPlaceholders )

  1. android {
  2. ......
  3. defaultConfig {
  4. applicationId "com.xxx.xxx" //JPush上注册的包名.
  5. ......
  6.  
  7. ndk {
  8. //选择要添加的对应cpu类型的.so库。
  9. abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a'
  10. // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
  11. }
  12.  
  13. manifestPlaceholders = [
  14. JPUSH_PKGNAME : applicationId,
  15. JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
  16. JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
  17. ]
  18. ......
  19. }
  20. ......
  21. }
  22.  
  23. dependencies {
  24. ......
  25.  
  26. compile 'cn.jiguang.sdk:jpush:3.0.0' // 此处以JPush 3.0.0 版本为例。
  27. compile 'cn.jiguang.sdk:jcore:1.0.0' // 此处以JCore 1.0.0 版本为例。
  28. ......
  29. }

3.基本不会出现,这个是ndk(调用c或者c++语言的方法的转换器)版本太旧就导致的

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

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

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

  1. -dontoptimize
  2. -dontpreverify
  3.  
  4. -dontwarn cn.jpush.**
  5. -keep class cn.jpush.** { *; }
  6.  
  7. -dontwarn cn.jiguang.**
  8. -keep class cn.jiguang.** { *; }

5.最重要的来了,如果app已经有了application类(启动应用执行的第一个类,在里面做很多前期准备的),就在里面写入极光推送的初始化代码,如果没有的就自己写一个类继承Application(下面以自己写的为例子)

  1. package com.example.lym.jiguangtest;
  2.  
  3. import android.app.Application;
  4.  
  5. import cn.jpush.android.api.JPushInterface;
  6.  
  7. /**
  8. * Created by lym on 2016/12/22.
  9. */
  10.  
  11. public class TryJiGuang extends Application {
  12. @Override
  13. public void onCreate() {
  14. super.onCreate();
  15. JPushInterface.setDebugMode(true);
  16. JPushInterface.init(this);
  17. }
  18. }

然后要在manifest文件里面对该类进行声明,到这里准备工作基本完成,可以开始测试了

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

  1. 测试确认
  2.  
  3. 确认所需的权限都已经添加。如果必须的权限未添加,日志会提示错误。
  4. 确认 AppKey(在Portal上生成的)已经正确的写入 Androidmanifest.xml
  5. 确认在程序启动时候调用了init(context) 接口
  6. 确认测试手机(或者模拟器)已成功连入网络 客户端调用 init 后不久,如果一切正常,应有登录成功的日志信息
  7. 启动应用程序,在 Portal 上向应用程序发送自定义消息或者通知栏提示。详情请参考管理Portal
  8. 在几秒内,客户端应可收到下发的通知或者正定义消息,如果 SDK 工作正常,则日志信息会如下:
  9. [JPushInterface] action:init
  10.  
  11. .......
  12.  
  13. [PushService] Login succeed!
  14. 如图所示,客户端启动分为 4 步:
  15. 检查 metadata appKey channel ,如果不存在,则启动失败
  16. 初始化 JPush SDK,检查 JNI 等库文件的有效性,如果库文件无效,则启动失败
  17. 检查 Androidmanifest.xml,如果有 Required 的权限不存在,则启动失败
  18. 连接服务器登录,如果存在网络问题,则登陆失败,或者前面三步有问题,不会启动JPush SDK

极光推送android sdk集成步骤的更多相关文章

  1. 极光推送>>java SDK服务端集成后台项目(使用详解)

    PS:如果你是第一次用推送,那就直接按照我的步骤来,再去看官方文档,这样,更容易能理解操作流程.还有——-请耐心看 极光文档(java SDK)请参考 [ 极光文档 ] 步骤一: 首先,你必须在 [极 ...

  2. 李洪强iOS之集成极光推送三iOS集成指南

    李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...

  3. 极光推送 JPush 简介 集成 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. 极光推送iOS SDK教程

    iOS SDK 调试指南 iOS 调试思维导图 2 确认证书 请到"应用详情页面"确认证书可用性: 3 开发环境测试 在对  JPush iOS 开发环境进行测试前,请确保 3 个 ...

  5. Ionic项目中使用极光推送-android

    对于Ionic项目中使用消息推送服务,Ionic官方提供了ngCordova项目,这个里面的提供了用angularjs封装好的消息推送服务(官方文档),使用的是GitHub上的 PushPlugin ...

  6. Android融合推送MixPush SDK集成多家推送平台,共享系统级推送,杀死APP也能收到推送

    消息推送是App运营的重要一环,为了优化消息推送成功率,降低电量和流量消耗,系统级的推送服务显得尤为重要.小米和魅族由此推出了自家的推送平台,在MIUI和Flyme上共享系统级推送服务,让APP在被杀 ...

  7. App集成极光推送开发流程[关键步骤]

    1.客户端集成SDK 1.1初始化 JPushInterface.setDebugMode(true); // 设置开启日志,发布时请关闭日志 JPushInterface.init(this); / ...

  8. 腾讯信鸽推送Android SDK快速指南

    信鸽Android SDK是一个能够提供Push服务的开发平台,提供给开发者简便.易用的API接口,方便快速接入.目前支持Android 2.2及以上版本系统.本文档将引导用户以最快的速度嵌入信鸽SD ...

  9. 极光推送 PHP sdk

    <?php defined('IN_WZ') or exit('No direct script access allowed'); /** * Created by PhpStorm. * U ...

随机推荐

  1. tornado+bootstrap急速搭建你自己的网站

    bootstrap既然是这么的流行又能省很多的事为什么不用他呢?再加上牛X的produced by FB的tornado简直如虎添翼了! 1. 安装配置 安装所需要的库等内容.这里没什么需要多讲的.t ...

  2. Object-C中 - self 和super 的含义

    //super:父类         //self:自己              //自己理解         //以MobilePhone为例,父类为NSObject         //在类方法 ...

  3. (线段树 点更新 区间求和)lightoj1112

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#problem/D (密码0817) Description Robin ...

  4. spring MVC controller中的方法跳转到另外controller中的某个method的方法

    1. 需求背景     需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 本来以为挺简单的一 ...

  5. 团队作业第四周(HCL盐酸队)——项目冲刺(第一篇)

    任务认领情况: 1.坦克类实现:李密,卢泰佑 2.子弹类,线程类实现:黄国航 赖少勇 3.画笔类,地图的实现:陈舒标  黄宇航 明日任务安排: 今天在通过已经购买的GUI书籍的帮助下,已经实现了界面的 ...

  6. 集合(三)CopyOnWriteArrayList

    第一次见到CopyOnWriteArrayList,是在研究JDBC的时候,每一个数据库的Driver都是维护在一个CopyOnWriteArrayList中的,为了证明这一点,贴两段代码,第一段在c ...

  7. adb命令行输出logcat日志

    输出到终端: adb logcat 输出到指定文件:如log.txt adb logcat > log.txt 输出到指定文件并带上日志产生时的系统时间(个人感觉实用的): adb logcat ...

  8. KMeans|| in Spark MLLib

    算法跟传统的kmeans的区别主要在于:kmeans||的k个中心的不是随机初始化的.而是选择了k个彼此"足够"分离的中心. org.apache.spark.mllib.clus ...

  9. 微信公众平台如何与Web App结合?

    Web App简而言之就是为移动平台而优化的网页,它可以表现得和原生应用一样,并且克服了原生应用一些固有的缺点.一般而言Web App最大的入口是浏览器,但现在微信公众平台作为新兴的平台,结合其内置浏 ...

  10. 获取form表单元素值的4种方式

    <html><head><title></title><script type="text/javascript"> f ...