前言
因为手机平台本身、电量、网络流量的限制,移动互联网应用在设计上跟传统 PC 上的应用很大不一样,需要根据手机本身的特点,尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。
为了解决数据同步的问题,在手机平台上,常用的方法有2种。一种是定时去服务器上查询数据,也叫Polling,还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时,实时推送到客户端,也就是我们说的 Push。从耗费的电量、流量和数据送达的及时性来说,Push 都会有明显的优势,但 Push 的实现和维护成本相对较高。在移动无线网络下维护长连接,相对也有一些技术上的难度。本文试图给大家介绍一下我们极光推送在 Android Studio平台上的集成使用。
jcenter 自动集成步骤
确认android studio的 Project 根目录的主 gradle 中配置了jcenter支持。(新建project默认配置就支持)
Gradle配置(Module的build.gradle)
确保你的 minSdkVersion在15及以上版本,然后defaultConfig中加入下面的代码
ndk {
//选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'armeabi-v7a', 'armeabi-v8a','x86', 'x86_64', 'mips', 'mips64'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "9009a0989a15f1a431c41499", //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
]
红色框里面的信息为我们必须添加的信息(注意是在defaultConfig里面)JPUSH_APPKEY为自己申请的appKey
添加依赖
在Module的build.gradle文件添加
compile 'cn.jiguang:jpush:2.1.8' // 此处以SDK 2.1.8版本为例
只需同步一下即可自动配置sdk
两处效果相同点击任意即可如果报错的话,需要在Project的gradle.properties文件中添加下面的代码:
android.useDeprecatedNdk=true(有的会自动提示直接注入即可,没有提示手动添加)
混淆
在ProGuard文件(即proguard-rules.pro)中加入混淆代码:
-dontoptimize
-dontpreverify
-dontwarn cn.jpush.**
-keep class cn.jpush.** { *; }
初始化(集成任务基本完成,现在就开使用它)
新建一个MyApplication类(继承至Application),并在清单文件(AndroidManifest.xml)的application节点添加name属性关联MyApplication。在MyApplication的onCreate方法中加入初始化的代码:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化sdk
JPushInterface.setDebugMode(true);//正式版的时候设置false,关闭调试
JPushInterface.init(this);
}
}
清单文件关联自己刚刚创建的Application
项目测试
基本配置基本完成了现在看看项目的演示
完善
点击后提示说的很明白
在activity里面添加就可以了
@Override
protected void onResume() {
super.onResume();
JPushInterface.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
JPushInterface.onPause(this);
}
- 写到这里基本完成了,希望对大家有所帮助,有何不同的见解可以留言,我会时刻关注。