Android SDK 集成指南.docx

上传人:b****6 文档编号:6357719 上传时间:2023-01-05 格式:DOCX 页数:13 大小:21.53KB
下载 相关 举报
Android SDK 集成指南.docx_第1页
第1页 / 共13页
Android SDK 集成指南.docx_第2页
第2页 / 共13页
Android SDK 集成指南.docx_第3页
第3页 / 共13页
Android SDK 集成指南.docx_第4页
第4页 / 共13页
Android SDK 集成指南.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Android SDK 集成指南.docx

《Android SDK 集成指南.docx》由会员分享,可在线阅读,更多相关《Android SDK 集成指南.docx(13页珍藏版)》请在冰豆网上搜索。

Android SDK 集成指南.docx

AndroidSDK集成指南

AndroidSDK集成指南

使用提示

本文是JPushAndroidSDK标准的集成指南文档。

用以指导SDK的使用方法,默认读者已经熟悉IDE(Eclipse或者AndroidStudio)的基本使用方法,以及具有一定的Android编程知识基础。

本篇指南匹配的JPushAndroidSDK版本为:

v3.0.0及以后版本。

∙3分钟快速Demo(Android):

如果您想要快速地测试、感受下极光推送的效果,请参考本文在几分钟内跑通Demo。

∙极光推送文档网站上,有极光推送相关的所有指南、API、教程等全部的文档。

包括本文档的更新版本,都会及时地发布到该网站上。

∙如果您看到本文档,但还未下载AndroidSDK,请访问SDK下载页面下载。

产品功能说明

极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度、提高应用的留存率。

极光推送客户端支持Android,iOS两个平台。

本AndroidSDK方便开发者基于JPush来快捷地为AndroidApp增加推送功能。

主要功能

∙保持与服务器的长连接,以便消息能够即时推送到达客户端

∙接收通知与自定义消息,并向开发者App传递相关信息

主要特点

∙客户端维持连接占用资源少、耗电低

∙SDK丰富的接口,可定制通知栏提示样式

∙服务器大容量、稳定

jpush-android-release-3.x.y.zip集成压缩包内容

∙AndroidManifest.xml

o客户端嵌入SDK参考的配置文件

∙libs/jcore-android.v1.x.y.jar

o极光开发者服务的核心包。

∙libs/jpush-android_v3.x.y.jar

oJPushSDK开发包。

∙libs/(cpu-type)/libjcore1xy.so

o各种CPU类型的native开发包。

∙res

o集成SDK必须添加的资源文件

∙example

o是一个完整的Android项目,通过这个演示了JPushSDK的基本用法,可以用来做参考。

AndroidSDK版本

目前SDK只支持Android2.3或以上版本的手机系统。

富媒体信息流功能则需Android3.0或以上版本的系统。

jcenter自动集成步骤

说明 :

使用jcenter自动集成的开发者,不需要在项目中添加jar和so,jcenter会自动完成依赖;在AndroidManifest.xml中不需要添加任何JPushSDK相关的配置,jcenter会自动导入。

∙如果开发者需要修改组件属性,可以在本地的AndroidManifest中定义同名的组件并配置想要的属性,然后用xmlns:

tools来控制本地组件覆盖jcenter上的组件。

示例:

android="

∙package="com.android.tests.flavorlib.app"

∙xmlns:

tools="

∙android:

icon="@drawable/icon"

∙android:

name="com.example.jpushdemo.ExampleApplication"

∙android:

label="@string/app_name">

name="cn.jpush.android.service.PushService"

∙android:

process=":

multiprocess"

∙tools:

node="replace">

∙……

∙……

∙……

∙臧廷杰整理

∙确认androidstudio的Project根目录的主gradle中配置了jcenter支持。

(新建project默认配置就支持)

∙buildscript{

∙repositories{

∙jcenter()

∙}

∙......

∙}

∙allprojects{

∙repositories{

∙jcenter()

∙}

∙}

∙在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:

"自定义渠道名称",//用户渠道统计的渠道名称

∙]

∙......

∙}

∙......

∙}

∙dependencies{

∙......

∙compile'cn.jiguang.sdk:

jpush:

3.0.5'//此处以JPush3.0.5版本为例。

∙compile'cn.jiguang.sdk:

jcore:

1.1.2'//此处以JCore1.1.2版本为例。

∙......

∙}

注 :

如果在添加以上abiFilter配置之后androidStudio出现以下提示:

NDKintegrationisdeprecatedinthecurrentplugin.Considertryingthenewexperimentalplugin.

则在Project根目录的gradle.properties文件中添加:

android.useDeprecatedNdk=true

说明:

若没有res/drawable-xxxx/jpush_notification_icon这个资源默认使用应用图标作为通知icon,在5.0以上系统将应用图标作为statusbaricon可能显示不正常,用户可定义没有阴影和渐变色的icon替换这个文件,文件名不要变。

手动集成步骤

∙解压缩jpush-android-release-3.x.y.zip集成压缩包。

∙复制libs/jcore-android_v1.x.y.jar到工程libs/目录下。

∙复制libs/jpush-android_v3.x.y.jar到工程libs/目录下。

∙复制libs/(cpu-type)/libjcore1xy.so到你的工程中存放对应cpu类型的目录下。

∙复制res/中drawable-hdpi,layout,values文件夹中的资源文件到你的工程中res/对应同名的目录下。

说明1:

若没有res/drawable-xxxx/jpush_notification_icon这个资源默认使用应用图标作为通知icon,在5.0以上系统将应用图标作为statusbaricon可能显示不正常,用户可定义没有阴影和渐变色的icon替换这个文件,文件名不要变。

说明2:

使用androidstudio的开发者,如果使用jniLibs文件夹导入so文件,则仅需将所有cpu类型的文件夹拷进去;如果将so文件添加在module的libs文件夹下,注意在module的gradle配置中添加一下配置:

android{

......

sourceSets{

main{

jniLibs.srcDirs=['libs']

......

}

......

}

......

}

配置AndroidManifest.xml

根据SDK压缩包里的AndroidManifest.xml样例文件,来配置应用程序项目的AndroidManifest.xml。

主要步骤为:

∙复制备注为"Required"的部分

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

∙将标注为“您应用的Appkey”的部分,替换为在Portal上注册该应用的的Key,例如:

9fed5bcb7b9b87413678c407

小帖士

如果使用androidstudio,可在AndroidManifest中引用applicationId的值,在build.gradle配置中defaultConfig节点下配置,如:

defaultConfig{

applicationId"cn.jpush.example"//<--您应用的包名

……

}

在AndroidManifest中使用${applicationId}引用gradle中定义的包名

AndroidManifest示例

xmlversion="1.0"encoding="utf-8"?

>

android="

package="您应用的包名"

android:

versionCode="303"

android:

versionName="3.0.3"

>

minSdkVersion="9"android:

targetSdkVersion="23"/>

--Required-->

android:

name="您应用的包名.permission.JPUSH_MESSAGE"

android:

protectionLevel="signature"/>

--Required-->

name="您应用的包名.permission.JPUSH_MESSAGE"/>

name="android.permission.RECEIVE_USER_PRESENT"/>

name="android.permission.INTERNET"/>

name="android.permission.WAKE_LOCK"/>

name="android.permission.READ_PHONE_STATE"/>

name="android.permission.WRITE_EXTERNAL_STORAGE"/>

name="android.permission.READ_EXTERNAL_STORAGE"/>

name="android.permission.VIBRATE"/>

name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

name="android.permission.ACCESS_NETWORK_STATE"/>

name="android.permission.WRITE_SETTINGS"/>

name="android.permission.ACCESS_WIFI_STATE"/>

--Optional.Requiredforlocationfeature-->

name="android.permission.SYSTEM_ALERT_WINDOW"/>

--用于开启debug版本的应用在6.0系统上层叠窗口权限-->

name="android.permission.ACCESS_COARSE_LOCATION"/>

name="android.permission.CHANGE_WIFI_STATE"/>

name="android.permission.ACCESS_FINE_LOCATION"/>

name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

name="android.permission.CHANGE_NETWORK_STATE"/>

name="android.permission.GET_TASKS"/>

android:

icon="@drawable/ic_launcher"

android:

label="@string/app_name"

android:

name="YourApplicationName">

--RequiredSDK核心功能-->

--可配置android:

process参数将PushService放在其他进程中-->

android:

name="cn.jpush.android.service.PushService"

android:

enabled="true"

android:

exported="false">

name="cn.jpush.android.intent.REGISTER"/>

name="cn.jpush.android.intent.REPORT"/>

name="cn.jpush.android.intent.PushService"/>

name="cn.jpush.android.intent.PUSH_TIME"/>

--since1.8.0option可选项。

用于同一设备中不同应用的JPush服务相互拉起的功能。

-->

--若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起-->

android:

name="cn.jpush.android.service.DaemonService"

android:

enabled="true"

android:

exported="true">

name="cn.jpush.android.intent.DaemonService"/>

name="您应用的包名"/>

--RequiredSDK核心功能-->

android:

name="cn.jpush.android.service.PushReceiver"

android:

enabled="true">

priority="1000">

name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"/>

name="您应用的包名"/>

name="android.intent.action.USER_PRESENT"/>

name=".conn.CONNECTIVITY_CHANGE"/>

--Optional-->

name="android.intent.action.PACKAGE_ADDED"/>

name="android.intent.action.PACKAGE_REMOVED"/>

scheme="package"/>

--RequiredSDK核心功能-->

android:

name="cn.jpush.android.ui.PushActivity"

android:

configChanges="orientation|keyboardHidden"

android:

theme="@android:

style/Theme.NoTitleBar"

android:

exported="false">

name="cn.jpush.android.ui.PushActivity"/>

name="android.intent.category.DEFAULT"/>

name="您应用的包名"/>

--SDK核心功能-->

android:

name="cn.jpush.android.ui.PopWinActivity"

android:

configChanges="orientation|keyboardHidden"

android:

exported="false"

android:

theme="@style/MyDialogStyle">

name="android.intent.category.DEFAULT"/>

name="您应用的包名"/>

--RequiredSDK核心功能-->

android:

name="cn.jpush.android.service.DownloadService"

android:

enabled="true"

android:

exported="false">

--RequiredSDK核心功能-->

name="cn.jpush.android.service.AlarmReceiver"/>

--Userdefined.用户自定义的广播接收器-->

android:

name="您自己定义的Receiver"

android:

enabled="true">

--Required用户注册SDK的intent-->

name="cn.jpush.android.intent.REGISTRATION"/>

--Required用户接收SDK消息的intent-->

name="cn.jpush.android.intent.MESSAGE_RECEIVED"/>

--Required用户接收SDK通知栏信息的intent-->

name="cn.jpush.android.intent.NOTIFICATION_RECEIVED"/>

--Required用户打开自定义通知栏的intent-->

name="cn.jpush.android.intent.NOTIFICATION_OPENED"/>

--接收网络变化连接/断开since1.6.3-->

name="cn.jpush.android.intent.CONNECTION"/>

name="您应用的包名"/>

--Required.Forpublishchannelfeature-->

--JPUSH_CHANNEL是为了方便开发者统计APK分发渠道。

-->

--例如:

-->

--发到GooglePlay的APK可以设置为google-play;-->

--发到其他市场的APK可以设置为xxx-market。

-->

--渠道统计报表位于控制台页面的“统计”-“用户统计”-“渠道分布”中-->

name="JPUSH_CHANNEL"android:

value="developer-default"/>

--Required.AppKeycopiedfromPo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1