Android 开发笔记(个推的接入)

最近因为需求原因,公司要在app中加入推送功能,当时和PM讨论的结果是使用个推 来实现推送功能,下面我们就一步一步的接入个推的SDK

环境配置

  • 开发工具: Android Studio(Eclipse逐渐被淘汰出Android开发,所以这次只针对AS进行开发)
  • 系统环境: 配置好JAVA环境的Win7系统
  • 工程师神奇的手一对
Android 开发笔记(个推的接入)_第1张图片

现在开始干活咯

一、导入SDK

1.在主项目build.grade(moudle:app)中的dependencies{}方法中添加依赖库compile 'com.getui:sdk:+'进行SDK导入:

Android 开发笔记(个推的接入)_第2张图片

compile fileTree(dir: 'libs', include: ['*.jar'])  
compile 'com.android.support:appcompat-v7:23.4.0'    
compile 'com.getui:sdk:+' // 个推依赖库   
compile 'com.android.support:support-v4:+'
} ```
2.在项目顶层*build.grade(project:XXX)*中添加个推maven库地址,如图所示:
![](http://upload-images.jianshu.io/upload_images/2830689-c04a7e0a01173ac4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)```//Maven URL地址
maven {
 url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/"
}```
3.配置so库,在gradle.properties文件中配置useDeprecatedNdk,如下图所示:![](http://upload-images.jianshu.io/upload_images/2830689-5f57d29d2378c5bc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)`android.useDeprecatedNdk=true`
在app/build.gradle文件中android/defaultConfig下指定需要 cup 架构的 so 库,如下图所示:![](http://upload-images.jianshu.io/upload_images/2830689-3120df092fce5468.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ** 注:如果 project 中包含其他 so 库且只支持某几种 cpu 架构,那么应该根据其他 so 库支持的 cpu 架构来配置**
 `android {
 ... 
defaultConfig {
 ... 
ndk {
 abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"
    } 
               }
          }`
4.配置个推应用参数
![](http://upload-images.jianshu.io/upload_images/2830689-0fce24e001c68fec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)```//参数说明
manifestPlaceholders = [ 
GETUI_APP_ID : "APP_ID", 
GETUI_APP_KEY : "APP_KEY", 
GETUI_APP_SECRET : "APPSECRET", 
PACKAGE_NAME : applicationId
]
//APP_ID、APP_KEY、APP_SECRET请根据个推开发者后台申请到的应用参数进行相应替换```
5.配置透传![](http://upload-images.jianshu.io/upload_images/2830689-b1cdc5659affb966.png)
``````
``````
``
``
``
``
` `
6.配置可选权限
``` !-- iBeancon功能所需权限 -->;```
``````
``````
``````
``````
``````
7.为了修改通知栏提示图标,请在res/drawable-hdpi/、res/drawable-mdpi/、res/drawable-ldpi/等各分辨率资源目录下,放置相应尺寸的**push.png**图片。![](http://upload-images.jianshu.io/upload_images/2830689-483e46d58a154c9c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 二、初始化SDK
在您应用程序启动初始化阶段,初始化SDK:
`PushManager.getInstance().initialize(this.getApplicationContext());`
***注:该方法必须在Activity或Service类内调用,一般情况下,可以在Activity的onCreate()方法中调用。由于应用每启动一个新的进程,就会调用一次Application的onCreate()方法,而个推SDK是一个独立的进程,因此如果在Application的onCreate()中调用intialize接口,会导致SDK初始化在一个应用中多次调用,所以不建议在Application继承类中调用个推SDK初始化接口。***

###三、混淆配置
如果您的工程启用了资源精简,即在build.gradle中指定如下参数:
`buildTypes {`
` release { `
`minifyEnabled true `
`shrinkResources true `
`proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' }`
`}`

### 四、确认gradle配置
确认gradle文件中的applicationId和参数中需要的包名一致,如图:![](http://upload-images.jianshu.io/upload_images/2830689-a2f9de6e3f85ab06.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 五、测试
在手机或模拟器上运行您的工程,查看Android Monitor信息,如图所示。在搜索框中输入“clientid”可以看到“clientid is xxx”,则意味则初始化SDK成功,并获取到相应的cid信息,恭喜你:-D,可以开始进行推送测试了。![](http://upload-images.jianshu.io/upload_images/2830689-50536ce68142674a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
登录 [个推开发者平台](http://dev.igetui.com/dos4.0/index.html),点击应用管理,进入待测试应用的推送界面:![](http://upload-images.jianshu.io/upload_images/2830689-416ce2f266b5aecd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)依填写相应的通知标题、通知内容,进行通知推送,具体推送方法见:[创建推送通知](http://docs.getui.com/dos/dos-direction/#_3)
如果手机或模拟器收到通知,如图所示:恭喜您,SDK接入已经成功!
![](http://upload-images.jianshu.io/upload_images/2830689-b7ce20478bffb258.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(Android 开发笔记(个推的接入))