最近即时通讯很火,很多应用都在集成环信,我也试验了一把。不过环信源码好复杂,资源文件好多。我感觉集成以后我的应用会很乱。所以我就想到了使用插件化的方法,将环信作为插件集成到我的应用中。
我使用的是apkplug模块化框架。很快大概不到半小时就集成完了,现在把集成过程拿出来和大家分享一下。
先上截图:
简单的主应用:点击按钮即可进入环信即时聊天界面。
插件环信聊天界面:
下面讲解一下我是如何集成的。分三步走。
第一步:开发主应用huanxinTestdemo
1, 申请主应用的appauth
首先要去apkplug官网注册,申请一个应用授权ID:appauth
这样appauth就申请成功了,点击后面的复制。粘贴到项目中的Androidmanifest文件中即可。
2, 加入配置文档所需的权限
主应用需要几个基础的权限配置,请将以下的几个权限加入到主应用的AndroidManifest.xml中。
<!-- 插件平台需要的权限! -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE">
</uses-permission>
另外将一下加入到<application></application>节点中
<!-- 插件平台需要的配置! -->
<activity
android:name="org.apkplug.app.apkplugActivity"
android:theme="@style/android:Theme.Light"
android:configChanges="orientation|keyboardHidden"
/>
另外主应用需要将环信应用的appkey也加到主应用中
<!--设置环信应用的appkey -->
<meta-data
android:name="EASEMOB_APPKEY"
android:value="easemob-demo#chatdemoui" />
还需要将环信的权限加到配置文档中
<uses-permissionandroid:name="android.permission.VIBRATE" />
<uses-permissionandroid:name="android.permission.INTERNET" />
<uses-permissionandroid:name="android.permission.RECORD_AUDIO" />
<uses-permissionandroid:name="android.permission.CAMERA" />
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permissionandroid:name="android.permission.GET_TASKS" />
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permissionandroid:name="android.permission.WAKE_LOCK" />
<uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />
<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permissionandroid:name="android.permission.GET_ACCOUNTS" />
<uses-permissionandroid:name="android.permission.USE_CREDENTIALS" />
<uses-permissionandroid:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permissionandroid:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS"/>
<uses-permissionandroid:name="android.permission.BROADCAST_STICKY" />
<uses-permissionandroid:name="android.permission.WRITE_SETTINGS" />
以上的这些,统统加入到Androidmainfest文件中。
3, 导入sdk。
将网站下载的ApkPlug SDK中的两个库文件。libndkfoo.so, Bundle2.0.0.jar.放入 libs目录中即可。
如图:
之后就可以了,等待插件编译完成。
第二步:配置环信demo成为插件
直接在环信官网:http://www.easemob.com/hx/index.html
下载demo源码。
环信的demo不需要改动代码。只需要写一个ApkPlug框架需要的插件文档plugin.xml
配置插件文档plugin.xml:
配置内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<plugin-features
Bundle-Name="huanxindemo"
Bundle-SymbolicName="com.easemob.chatuidemo"
Bundle-Version="2.1.6"
date="2015.3.12"
provider-name="Apkplug"
provider-url=""
Bundle-Activator="com.huanxin.Testdemo.SimpleBundle"
Bundle-Activity="com.huanxin.Testdemo.MainActivity"
>
</plugin-features>
将这个配置好的文档放置在环信demo工程的assets路径下。
整体结构目录如下:
然后编译,将编译好的apk文件复制出来。
第三步:将插件配置主应用中
将上一步复制出来的apk文件,放置在你的主应用中的目录assets下。
主应用的整体架构如下图:
最后编译主应用即可。
Duang duang duang!完事啦,是不很简单。。
附上源码下载地址:http://download.csdn.net/detail/xianvlovebeibei/8533027
注:apkplug是利用动态加载方式实现的插件化框架,具体大家自行了解吧。