环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:
开发者可以基于 EaseUI 或者环信 SDK 开发自己的应用,前者因为把消息的发送接送等功能封装到了内部,集成时开发者不需要太关心消息是怎么发送、怎么接收等逻辑。请查阅EaseUI使用指南。
SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
注意:如果您是从 SDK2.x 升级到 3.0,可以参考环信 SDK2.x 到 3.0 升级文档。
以下是SDK集成参考视频,您可以通过视频学习如何集成环信SDK。
到环信官网下载环信 SDK。
考虑到开发者需求不一样,在下载的 SDK 中,提供了两个不同的 jar 包:
首先在你的项目根目录build.gradle
文件的allprojects→repositories
属性下加入远程库地址
maven { url "https://raw.githubusercontent.com/HyphenateInc/Hyphenate-SDK-Android/master/repository" }
然后在你的module的build.gradle
里加入以下代码
android {
//use legacy for android 6.0
useLibrary 'org.apache.http.legacy'
}
dependencies {
compile 'com.android.support:appcompat-v7:23.4.0'
//Optional compile for GCM (Google Cloud Messaging).
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.hyphenate:hyphenate-sdk:3.3.0'
}
如果想使用不包含音视频通话的sdk,用compile 'com.hyphenate:hyphenate-sdk-lite:3.3.0
';
SDK版本号参考Release Note
从官网上下载下来的包,解压后内容如下:
在这里主要介绍后面四个文件夹内容:
在自行开发的应用中,集成环信聊天需要把 libs 文件夹下的 jar 及 so 文件复制到你的项目的 libs 文件夹相应位置,如果不需要语音和视频通话功能,导入libs.without.audio 下的文件即可。
在清单文件 AndroidManifest.xml 里加入以下权限,以及写上你注册的 AppKey。
权限配置(实际开发中可能需要更多的权限,可参考 Demo):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="Your Package"
android:versionCode="100"
android:versionName="1.0.0">
<!-- Required -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:name="Your Application">
<!-- 设置环信应用的AppKey -->
<meta-data android:name="EASEMOB_APPKEY" android:value="Your AppKey" />
<!-- 声明SDK所需的service SDK核心功能-->
<service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/>
<service android:name="com.hyphenate.chat.EMJobService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="true"
/>
<!-- 声明SDK所需的receiver -->
<receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
<!-- 可选filter -->
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
</application>
</manifest>
关于 EASEMOB_APPKEY 对应的 value 获取,在创建应用后,申请 AppKey 并进行相关配置。(环信 Demo 中 AppKey 为 easemob-demo#chatdemoui)
如果对生成的apk大小比较敏感,我们建议使用jar方式,并且手工拷贝so,而不是使用Aar,因为Aar方式会把各个平台的so文件都包含在其中。采用jar方式,可以仅保留一个ARCH目录。如果使用lite版,建议仅保留armeabi;如果使用音视频版,建议仅保留armeabi-v7a。这样虽然在对应平台执行的速度会降低,但是能有效减小apk的大小。
在 ProGuard 文件中加入以下 keep。
-keep class com.hyphenate.** {*;}
-dontwarn com.hyphenate.**
上一章节:服务端集成
下一页:Android SDK 基础功能