開發一款即時通訊App,從這幾步開始
歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~
本文由騰訊雲視訊發表於雲+社群專欄

關注公眾號“騰訊雲視訊”,一鍵獲取 技術乾貨 | 優惠活動 | 視訊方案
“晚上去哪吃飯啊?”
桌面上來自一條晚上約飯的對話方塊——QQ。
突然靈光一現,新出了優化的IM SDK,可以嘗試著搭建一個類似QQ的即時通訊軟體
01
註冊賬號
騰訊雲官網
註冊騰訊雲賬號,也可以使用QQ或者微信直接登陸
02
建立應用
選擇【產品】→【雲通訊】→【立即使用】→【建立應用接入】



03
SDK接入
1、整合SDK
【下載雲通訊SDK】包括IMSDK(雲通訊SDK)、TUIKit(基礎介面庫)
2、生成UserSig
在【基礎配置】下載公私鑰,使用【開發輔助工具】生成測試使用者的UserSig


3、初始化SDK
Android程式碼
//應用啟動時(一般為Application的onCreate)配置UIKit的基本配置,具體引數說明參考API BaseUIKitConfigs uiKitConfigs = new BaseUIKitConfigs(); uiKitConfigs.appCacheDir(Constants.APP_DIR_CACHE).audioRecordMaxTime(120) .disableAudioPlayedStatusIcon(true).disableAutoPlayNextAudio(true) .ChatProcessor(new PojoChatProcessor()); ILiveUIKit.init(this, uiKitConfigs);
4、建立登陸介面
Android程式碼
public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //例項化登入面板 mLoginPanel = new LoginView(this); //將登入元件設定為登入Activity的基本佈局,也可在佈局檔案xml中引用LoginView setContentView((View) mLoginPanel); //新增登入元件的動作事件,登入點選與註冊點選 mLoginPanel.setLoginEvent(new ILoginEvent() { @Override public void onLoginClick(View view, String userName, String password) { //點選登入時業務自己的登入邏輯 } @Override public void onRegisterClick(View view, String userName, String password) { //點選註冊時業務自己的註冊邏輯 } }); }
介面實圖


5、建立會話列表
佈局檔案
<!--在會話列表佈局檔案中引用會話列表元件,也可參考登入面板在程式碼中設定--> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".main.MainActivity"> <com.tencent.qcloud.uikit.business.session.view.SessionPanel android:id="@+id/session_panel" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
Android程式碼
/** * 獲取會話列表元件,初始化預設設定 * 會話元件的預設設定已經實現了會話資料的拉取與處理(與IMSDK關聯完成相關邏輯) * 開發者如為特殊要求直接初始化預設設定即可 * 另會話元件提供的可擴充套件的事件和UI處理,具體可參考API文件 */ sessionPanel = baseView.findViewById(R.id.session_panel); sessionPanel.initDefault();
介面實圖


6、建立聊天介面
Android程式碼
//從佈局檔案中獲取聊天面板元件 chatPanel = mBaseView.findViewById(R.id.chat_panel); /* * 會話元件的預設設定已經實現了會話資料的拉取與處理(與IMSDK關聯完成相關邏輯) * 開發者如無特殊要求直接初始化預設設定即可 * 另聊天面板元件提供的可擴充套件的事件和UI處理,具體可參考API文件 */ chatPanel.initDefault(); //生成聊天基本資訊,如聊天物件的暱稱,頭像,最後一頁聊天資訊等 BaseChatInfo info = getChatInfo(); //設定基本資訊,以便使用者進入該頁面時能即時展示相關資訊 chatPanel.setBaseChatInfo(info);
介面實圖




7、群管理
Android程式碼
//從佈局檔案中獲群管理面板元件 GroupManagerPanel groupManagerPanel = mBaseView.findViewById(R.id.group_manager_panel); /* * 群管理元件的預設設定已經實現了群管理相關的邏輯也操作(與IMSDK關聯完成相關邏輯) * 開發者如無特殊要求直接初始化預設設定即可 * 另聊群管理元件提供的可擴充套件的事件和UI處理,具體可參考API文件 */ groupManagerPanel.initDefault();
介面實圖


通過以上幾個步驟,一個擁有單聊、群聊的即時通訊App就這樣完成了
再次崇拜自己的動手能力,一天就能搭建完成一個APP,啦啦啦啦啦啦~

最後,瞭解一下經過優化後的新版本IM SDK
IM SDK
–
體積優化
1.android so體積<1M
2.ios體積增量<2M
–
效能優化
1.執行緒裁剪(單執行緒架構,減少執行緒切換和執行緒同步開支)
2.cpu佔用優化(執行緒裁剪、程式碼邏輯優化)
–
訊息到達率
深度優化業務邏輯層、會話策略層和網路層,實現四個九(99.99%)的訊息到達率
–
資料監控
使用者級資料監控,實時跟蹤和統計使用者行為
- dau/mau
- 功能統計
- 使用者分佈
–
海外布點
增加富媒體訊息海外布點,為圖片視訊語音檔案的上傳下載提速
–
版本相容
與老版本相容,實現無縫切換
–
UIKit外掛
一套多功能自定義介面庫,實現會話列表、聊天、聯絡人、群管理、彈幕等介面,實現客戶一天接入
問答 ofollow,noindex">請問小程式即時通訊如何接入傳送訊息? 相關閱讀 IM即時通訊實現原理 iOS 即時通訊 + 仿微信聊天框架 + 原始碼 36082%3FfromSource%3Dwaitui" target="_blank" rel="nofollow,noindex">開發一款即時通訊App,從這幾步開始 【每日課程推薦】機器學習實戰!快速入門線上廣告業務及CTR相應知識
此文已由作者授權騰訊雲+社群釋出,更多原文請點選
搜尋關注公眾號「雲加社群」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社群!