友盟+搜索

{{errorMsg}}

产品概述

友盟微社区,旨在帮助开发者在 APP 内快速建立一个专属的社区,让用户与用户、用户与开发者之间可以双向沟通,同时借助话题和关系链,用户可自行创造、传播高价值内容,提高 APP 粘性。

创建微社区,获取AppKey

1)如果你尚未在友盟注册开发者账号,需要先注册
2)如果你之前已经在友盟注册了开发者账户,可以直接使用该账户登录。
3)得到账户之后到友盟微社区官网进行登录,登录成功之后并进入到"我的社区",点击**添加新社区**,输出社区相关信息之后点击创建即可。
4)然后点击新创建的社区的"社区管理",进入到社区设置页面,选择"应用"一栏,然后再选择"创建新应用"或者"添加新应用",此时你可以新建应用或者从已有的应用中选择,填写完应用基本信息后,点击"创建"即可。
5)此时您就会得到友盟Appkey。

注:一个微社区可对应多个Appkey。

详情请看产品文档使用流程

下载并集成SDK

友盟微社区Android SDK下载最新的SDK。

环境1-Eclipse

添加资源文件和jar文件有两种方式,请根据您的需求进行选择

方法A:添加工程引用(升级方便,推荐)

下载Android微社区_DEMO,解压后,将文件夹中的umeng_community_library_project文件夹导入Eclipse,并在您的工程中添加对此项目的引用即可。

Demo压缩包目录

方法B:添加资源到现有项目中

解压Android微社区_SDK压缩包,将文件夹中的umeng_community_android_sdk_library文件下面的core、location、login、push、ui(ui中db和main是必选的,dicuss和weibo分别对应论坛版和微博版,二者只能选其一)、share、social_sdk,(如果您未使用自带的登录和分享,该包可以不拷贝)目录中libs跟res文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中):

SDK压缩包目录

环境2-Android Studio

下载Android微社区_DEMO,解压后,在Android Studio 选择File->New->Import Module…,选择umeng_community_library_project文件夹。

精简版说明:

精简版的demo工程需要依赖umeng_community_simplify_library_project工程,并且注入精简版的登录方式和登录成功策略。

 LoginSDKManager.getInstance().addAndUse(new LoginSimplify());

        CommConfig.getConfig().setLoginResultStrategy(new LoginSuccessStrategory());

使用自己登录系统的用户,可以注入自己的登录方式。

环境配置

AndroidManifest.xml配置

将下面几个配置拷贝到AndroidManifest.xml中相应的位置. (由于不同版本中mainfest中activity不同,使用不同版本请参考对应版本的demo工程中的mainfest)

权限配置

    <!-- 使用相机 -->
    <uses-feature
            android:name="android.hardware.camera"
            android:required="true" />
        <!-- 检测网络状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!-- 获取mac地址作为用户的备用唯一标识 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <!-- 获取用户手机的IMEI,用来唯一的标识用户 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <!-- 缓存资源优先存入SDcard -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <!-- 允许应用程序联网,以便向我们的服务器端发送数据 -->
    <uses-permission android:name="android.permission.INTERNET" />
        <!-- 定位所需的权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <!-- 推送相关的权限 -->
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
        <!-- QQ登录所需权限 -->
    <uses-permission android:name="android.permission.GET_TASKS" />

Activity与Service注册


   <!-- 微博版activity组件 start -->

         <activity
            android:name="com.umeng.commm.ui.activities.FindActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.FindActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />

        <!--用户中心-->
        <activity
            android:name="com.umeng.commm.ui.activities.UserInfoActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.UserInfoActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.commm.ui.activities.TopicActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- 话题详情页-->
        <activity
            android:name="com.umeng.commm.ui.activities.TopicDetailActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.TopicDetailActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!--话题-->
        <activity
            android:name="com.umeng.commm.ui.activities.FeedsActivity"
            android:alwaysRetainTaskState="true"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.FeedsActivity"
            android:alwaysRetainTaskState="true"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" />

        <!-- 搜索结果Activity -->
        <activity
            android:name="com.umeng.commm.ui.activities.RelativeUserActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.RelativeUserActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" />

        <!--发表-->
        <activity
            android:name="com.umeng.commm.ui.activities.PostFeedActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="true"
            android:windowSoftInputMode="stateHidden|adjustResize" >
        </activity>
        <activity
            android:name="com.umeng.comm.ui.activities.PostFeedActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="true"
            android:windowSoftInputMode="stateHidden|adjustResize" >
        </activity>
        <!--topic picker-->
        <activity
            android:name="com.umeng.comm.ui.activities.TopicPickActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- forward-->
        <activity
            android:name="com.umeng.commm.ui.activities.ForwardActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.ForwardActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- 搜索Activity -->
        <activity
            android:name="com.umeng.commm.ui.activities.SearchActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.SearchActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- searchtopic -->
        <activity
            android:name="com.umeng.commm.ui.activities.SearchTopicActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateVisible|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.SearchTopicActivity"
            android:configChanges="orientation|keyboardHidden"
            android:windowSoftInputMode="stateVisible|adjustResize" />

        <!-- feed详情页面 -->
        <activity
            android:name="com.umeng.commm.ui.activities.FeedDetailActivity"
            android:configChanges="orientation|keyboardHidden"
            android:launchMode="singleTask"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.FeedDetailActivity"
            android:configChanges="orientation|keyboardHidden"
            android:launchMode="singleTask"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- guide-->
        <activity
            android:name="com.umeng.commm.ui.activities.GuideActivity"
            android:configChanges="orientation|keyboardHidden"
            android:launchMode="singleTask"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <activity
            android:name="com.umeng.comm.ui.activities.GuideActivity"
            android:configChanges="orientation|keyboardHidden"
            android:launchMode="singleTask"
            android:windowSoftInputMode="stateHidden|adjustResize" />
        <!-- feed详情页面 -->



        <!-- 设置页面activity -->
        <activity android:name="com.umeng.comm.ui.imagepicker.activities.SettingActivity" />
        <!--<activity android:name="com.umeng.comm.ui.activities.SettingActivity" />-->
        <!-- 引导页面activity -->

        <!--<activity android:name="com.umeng.comm.ui.activities.GuideBaseActivity" />-->
        <!-- 点赞用户页面 -->
        <activity android:name="com.umeng.commm.ui.activities.LikeUsersActivity" />
        <activity android:name="com.umeng.comm.ui.activities.LikeUsersActivity" />
        <!-- 友盟登录界面 -->
        <activity android:name="com.umeng.community.login.LoginActivity" />

        <!-- 显示某个位置Feed的Activity -->
        <activity android:name="com.umeng.commm.ui.activities.LocationFeedActivity" />
        <activity android:name="com.umeng.comm.ui.activities.LocationFeedActivity" />
        <!-- ##################分享相关#################### -->  
        <!-- 腾讯SSO授权的Activity注册 -->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="tencent1104606393" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

        <!-- 微信回调activity -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
              <activity
            android:name=".WBShareActivity"
            android:configChanges="keyboardHidden|orientation"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
            android:configChanges="keyboardHidden|orientation"
            android:windowSoftInputMode="adjustResize"
            android:exported="false" >
        </activity>
        <service android:name="com.sina.weibo.sdk.net.DownloadService"
            android:exported="false"></service>
        <activity android:name="com.umeng.common.ui.activities.AlbumActivity" />

        <activity android:name="com.umeng.commm.ui.activities.FollowedTopicActivity" />
        <activity android:name="com.umeng.comm.ui.activities.FollowedTopicActivity" />
        <activity android:name="com.umeng.commm.ui.activities.NotificationActivity" />
        <activity android:name="com.umeng.comm.ui.activities.NotificationActivity" />
        <activity android:name="com.umeng.commm.ui.activities.NewMsgActivity" />
        <activity android:name="com.umeng.comm.ui.activities.NewMsgActivity" />

        <!-- 图片选择相关 -->

        <activity android:name="com.umeng.common.ui.imagepicker.PhotoSelectorActivity" />
        <activity android:name="com.umeng.common.ui.imagepicker.PhotoPreviewActivity" />
        <activity android:name="com.umeng.common.ui.activities.MessageChatActivity" />



        <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="557e18d1afb32a69351be5abc7f1cd25" />


        <activity
            android:name="com.umeng.common.ui.activities.BrowserActivity"
            android:configChanges="keyboardHidden|orientation|screenSize" />

   <!-- ##################### 推送相关 ##################### -->
        <receiver
            android:name="com.umeng.message.NotificationProxyBroadcastReceiver"
            android:exported="false"></receiver>
        <receiver
            android:name="com.umeng.message.SystemReceiver"
            android:process=":push">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <data android:scheme="package" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.umeng.message.MessageReceiver"
            android:exported="false"
            android:process=":push">
            <intent-filter>
                <action android:name="org.agoo.android.intent.action.RECEIVE" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.umeng.message.ElectionReceiver"
            android:process=":push">
            <intent-filter>
                <action android:name="org.agoo.android.intent.action.ELECTION_RESULT_V4" />
                <category android:name="umeng" />
            </intent-filter>
        </receiver>
        <receiver
            android:name="com.umeng.message.RegistrationReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.umeng.community.example.intent.action.COMMAND" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.umeng.message.UmengMessageBootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
        <service
            android:name="com.umeng.message.UmengService"
            android:exported="true"
            android:label="PushService"
            android:process=":push">
            <intent-filter>
                <action android:name="com.umeng.community.example.intent.action.START" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.umeng.community.example.intent.action.COCKROACH" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.agoo.android.intent.action.PING_V4" />
                <category android:name="umeng" />
            </intent-filter>
        </service>
        <service
            android:name="com.umeng.message.UmengIntentService"
            android:process=":push" />
        <service
            android:name="com.umeng.message.UmengMessageIntentReceiverService"
            android:exported="true"
            android:process=":push">
            <intent-filter>
                <action android:name="org.android.agoo.client.MessageReceiverService" />
            </intent-filter>
            <intent-filter>
                <action android:name="org.android.agoo.client.ElectionReceiverService" />
            </intent-filter>
        </service>
        <service
            android:name="com.umeng.message.UmengMessageCallbackHandlerService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.umeng.messge.registercallback.action" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.umeng.message.unregistercallback.action" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.umeng.message.message.handler.action" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.umeng.message.autoupdate.handler.action" />
            </intent-filter>
        </service>
        <!-- If you donot want to use the standard notification bar in SDK, you can define IntentService instead to handle message. -->
        <service
            android:name="com.umeng.message.UmengDownloadResourceService"
            android:exported="false" />
        <service
            android:name="com.umeng.message.local.UmengLocalNotificationService"
            android:exported="false" />

友盟App Key

    <!-- 友盟App Key, 必须替换为您在友盟官网上申请到的. -->
<meta-data
    android:name="UMENG_APPKEY"
    android:value="4eaee02c527015373b000003" >
</meta-data>
    <!-- 友盟的App secret -->
<meta-data
    android:name="UMENG_MESSAGE_SECRET"
    android:value="a499504e1326471ef496c4e55cac9268" >
</meta-data>

如果选用多种UmengSDK产品使用不同Appkey,可为微社区SDK配置单独的appkey,如下:

/*代码添加Appkey,如果设置了非null值,微社区SDK将使用该值.*/
Constants.UMENG_APPKEY = "xxxxxxxxx";

高德定位SDK Appkey

微社区里的定位使用了高德定位SDK,所以用户需要到高德定位SDK页面申请App Key。并且将这个Key填写到AndroidManifest.xml中,例如如下 :

<meta-data
     android:name="com.amap.api.v2.apikey"
     android:value="这里填写你的高德定位SDK Appkey" />

最后再代码中通过如下代码注入高德定位SDK即可:

java
// 确保不要重复注入同一类型的对象,建议在Application类的onCreate中执行该代码。
LocationSDKManager.getInstance().addAndUse(new DefaultLocationImpl()) ;

分享登录SDK的配置

友盟微社区内部使用了友盟社会化分享登录组件SDK,因此分享组件的相关配置保持不变。如果您使用微社区自带的分享功能,拷贝share和login目录中jar和资源到您的工程中,并配置相关平台appid等信息。在application中配置如下:

   PlatformConfig.setWeixin("wx96110a1e3af63a39", "c60e3d3ff109a5d17013df272df99199");
        PlatformConfig.setSinaWeibo("275392174", "d96fb6b323c60a42ed9f74bfab1b4f7a");
        PlatformConfig.setQQZone("1104606393", "X4BAsJAVKtkDQ1zQ");

并且在使用分享的activity中加入回调:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        ShareSDKManager.getInstance().getCurrentSDK().onActivityResult(this,requestCode,resultCode,data);
    }

另外微社区中的分享SDK不需要配置分享内容,因为微社区中的Feed消息就是分享内容,如果想修改则需要修改对应的UI源码。

微社区登录相关的配置可以在参考这里

注意,部分分享功能需要依赖签名,请使用demo工程目录下的debug.keystore

使用第三方Push组件

友盟微社区内部使用了友盟push组件,如果想替换成其他第三方的push组件,需要实现Pushable接口,注入即可 代码实例:


        PushSDKManager.getInstance().addAndUse(new Pushable() {
            @Override
            public void enable(Context context) {
                //打开push服务
            }

            @Override
            public void setUserAlias(CommUser user) {
                //设置设备号的别名,需要把当前用户的uid设置给push的SDK
            }

            @Override
            public void disable() {

            }

            @Override
            public boolean isEnabled() {
                return false;
            }
        });


注:使用其他第三方push组件,将不能收到微社区内部的评论,AT等操作的推送服务

开源工程集成的依赖关系

1) umeng_community_library_common_ui依赖umeng_community_core,和login();
2) umeng_community_library_weibo/umeng_community_library_discuss依赖
3) umeng_community_core,umeng_community_login,umeng_community_share,umeng_community_push,umeng_community_library_common_ui,umeng_community_location umeng_community_library_db依赖umeng_community_core

如果使用androidstudio,三个工程都依赖同一个jar包,这个三个工程又同时被某个app工程依赖,可能会造成编译错误,推荐的解决办法是,新建一个commonlib工程,将所有需要依赖的jar放进去,在commonlib工程的build.gradle 文件中加入 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } artifacts.add("default", file('xxxxxx')) 用artifacts.add所有的jar包。再让需要依赖jar包的工程都依赖commonlib即可

混淆配置

如果您的App开启了混淆,那么您需要在您的混淆配置文件中添加如下配置:

-dontusemixedcaseclassnames
-dontshrink
-dontoptimize
-dontpreverify
-dontwarn com.umeng.comm.**
-dontwarn com.umeng.commm.**
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-keep class  activeandroid.** {*;}
-keep class com.umeng.** {*;}
-keep class android.** {*;}
-keepattributes *Annotation*


-ignorewarnings
-keep class org.apache.http.** {*;}
-dontwarn  org.apache.http.**
-keep class org.apache.http.* {*;}
-dontwarn  org.apache.http.*
-keep,allowshrinking class org.android.agoo.service.* {
    public <fields>;
    public <methods>;
}
-keep,allowshrinking class com.umeng.message.* {
    public <fields>;
    public <methods>;
}

-keep public class com.umeng.community.example.R$*{
    *;
}

-keep class com.umeng.comm.push.UmengPushImpl {
    public * ;
}
-keep class android.support.v4.** {*;}
-dontwarn android.webkit.WebView

-dontwarn com.tencent.weibo.sdk.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes SourceFile,LineNumberTable
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**
-keep public class com.tencent.** {*;}
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}

# adding push
-keep class com.umeng.message.* {
        public <fields>;
        public <methods>;
}

-keep class com.umeng.message.protobuffer.* {
        public <fields>;
        public <methods>;
}

-keep class com.squareup.wire.* {
        public <fields>;
        public <methods>;
}

-keep class com.umeng.message.local.* {
        public <fields>;
        public <methods>;
}
-keep class org.android.agoo.impl.*{
        public <fields>;
        public <methods>;
}

-dontwarn com.xiaomi.**

-dontwarn com.ut.mini.**

-keep class org.android.agoo.service.* {*;}

-keep class org.android.spdy.**{*;}

-keep public class com.umeng.community.example.R$*{
    public static final int *;
}
-keepattributes Exceptions,InnerClasses,Signature,EnclosingMethod
-keepattributes SourceFile,LineNumberTable
-keepattributes *Annotation*

#分享相关混淆
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes SourceFile,LineNumberTable
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**
-keep public class com.tencent.** {*;}
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
-keep class com.sina.** {*;}
-dontwarn com.sina.**

代码集成

引用说明

论坛版引用说明
import com.umeng.commm.ui.fragments.CommunityMainFragment;

微博版引用说明
import com.umeng.comm.ui.fragments.CommunityMainFragment;

代码调用

可以通过如下代码打开微社区主页:

// 获取CommunitySDK实例, 参数1为Context类型
CommunitySDK mCommSDK = CommunityFactory.getCommSDK(YourContext);
// 打开微社区的接口, 参数1为Context类型
mCommSDK.openCommunity(YourContext);

效果图

SDK压缩包目录

其他

常见问题

  • 如果您想将微社区以Fragment的形式集成到您的应用中,请参考详细集成文档
  • 另外强烈建议您阅读sdk包中的api_docs/doc目录下的文档,该文档中包含了微社区SDK对外开放的所有接口以及实体类说明。
  • 如果集成微社区SDK后出现**NoClassDefFoundError**或者找不到某个确实存在的类,那么很有可能是android.support.v4.jar文件冲突,因为微社区SDK包中带了一份v4文件,因此确保你工程中的v4文件或者其他jar文件只有一份即可。

关于微社区原理

在使用微社区的过程中,可能涉及到反射、依赖注入、MVP模式等概念,请参考以下文章:
Java反射
依赖注入
android MVP模式

进阶使用

请参考详细集成文档。