Android SDK 集成指南.docx
- 文档编号:6357719
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:13
- 大小:21.53KB
Android SDK 集成指南.docx
《Android SDK 集成指南.docx》由会员分享,可在线阅读,更多相关《Android SDK 集成指南.docx(13页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android SDK 集成指南 集成 指南
![提示](https://static.bdocx.com/images/bang_tan.gif)