我有项目要求,我想在android/iphone中制作即时通讯应用程序,并可能在将来它支持voip和视频聊天.
现在我有2个选择
1)xmpp - 它是IM的应用层协议,已有近10年的历史,它有很多支持voip的扩展,或者可能是视频聊天,在线/离线状态以及许多其他功能.它被whatsapp,fb,Skype等所有大公司所接受
另外我听说谷歌因为漏洞而放弃了这个协议.
2)websocket - 它是tcp层协议,它通过单个tcp连接提供全双工通信,它是新的,它在2011年由IETF标准化.我不知道该协议是否主要用于IM.但我知道它可以在tcp层中完成.除了4种方法(即onOpen,onClose,onMessage和onError)之外,我没有看到或听到任何Web套接字的功能/扩展.所以这意味着如果我选择这个,我必须制作我自己的在线/离线状态方法(可能每隔"x"秒/分钟发送一个帧),voip,消息传递信息和其他功能等.
我很困惑,我选择哪一个,xmpp或web socket,在开发,服务器处理成本,安全性,会话处理管理,浏览器支持等方面.
如果我对这两个协议有任何不妥之处,那么请纠正我.
提前致谢
如何在可扩展列表视图中为组和子应用单个背景?
预期产出

编辑:
MainActivity.java
package info.androidhive.expandablelistview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupCollapseListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.Toast;
public class MainActivity extends Activity {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// get the listview
expListView = (ExpandableListView) findViewById(R.id.lvExp);
// preparing list data
prepareListData();
listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
// setting list adapter
expListView.setAdapter(listAdapter);
// Listview Group …Run Code Online (Sandbox Code Playgroud)