編輯:關於Android編程
IM(Instant Messaging)在Android中可謂運用廣泛。QQ,Wechat,陌陌等應用都可以看作IM實時通訊APP,實時通訊在社交類APP中運用范圍較廣,其功能看起來也是比較cool的。今天我們將研究一下android IM軟件是如何實現的。像IM這種實施通訊軟件,除非公司有比較大的實力和精力,才會自己去整這麼一套框架。對於廣大中小軟件開發者來說,想到比較多的就是開源框架。Opensource對於開發者來說簡直就是福音,對於整個軟件行業也起到了不小的推動性的作用。
Openfire在這種環境下應運而生,而且作為實時通訊類開源框架迅速走紅,下面我們就一起來學習這樣一款拯救宇宙的開源框架,文章的最後會運用Openfire做出一個可以實時通訊的AndroidAPP,如果結合上地理位置再多點UI和交互上的設計提升,這不就是陌陌嗎?YY了一會,覺得挺有趣,那麼 Just do it
。
對於實時通訊軟件,除了我們的客戶端,服務器端更是關鍵。因為服務器是連接兩個會話的橋梁。根據安裝文檔中,Openfire提供了多個平台的安裝版本。Windows, Linux/Unix。所以支持還是很豐富的。至於服務器的選擇我們可以選擇自己的ECS,本地PC,或者Linux虛擬機。選擇本機安裝的請略過此步驟。
為了更加符合真實的安裝環境,我選擇本地的Linux虛擬機作為服務器環境。方便以後部署到真實的服務器環境中。
在進行下一步之前請先在server上安裝mysql和java。
從官網上下載對應的版本,我這裡選擇Openfire_3.9.3 Linux版本,登陸服務器後直接使用wget下載
//下載完成後使用rpm進行安裝
rpm -ivh openfire-3.9.3-1.i386.rpm
Openfire安裝完成後會在/opt目錄下生成openfire/目錄。
安裝完成後就需要進行數據庫的配置,按照官方文檔:
Make sure that you are using MySQL 4.1.18 or later (5.x recommended) ¹.
Create a database for the Openfire tables:
mysqladmin create [databaseName]
(note: databaseName can be something like 'openfire')
Import the schema file from the resources/database directory of the installation folder:
Unix/Linux: cat openfire_mysql.sql | mysql [databaseName];
Windows: type openfire_mysql.sql | mysql [databaseName];
Start the Openfire setup tool, and use the appropriate JDBC connection settings.
首先使用mysqladmin create openfire
創建名為openfire的數據庫, cd /opt/openfire/resources/database
進入openfire的數據庫資源目錄,使用cat openfire_mysql.sql | mysql openfire
導入openfire的schema數據庫文件。
使用rpm安裝完成後的openfire會在/etc/init.d/中自動生成openfire 文件,可以直接在這裡打開服務.
Usage /etc/init.d/openfire {start|stop|restart|status|condrestart|reload}
運行openfire服務:/etc/init.d/openfire start
,運行/etc/init.d/openfire status
顯示沒有成功運行。
查看log cat /opt/openfire/logs
,顯示nohup: cannot run command /opt/openfire/jre/bin/java: No such file or directory
,看來openfire找不到java,所以不能成功啟動,但是我們的系統的確已經安裝了java,所以可以通過軟鏈解決:
cd /opt/openfire/jre/bin
cp java java.bak
rm java
ln -s /usr/bin/java java
service openfire start
軟鏈完成之後,再次開啟openfire服務:
[root@iZ23572i0rtZ bin]# /etc/init.d/openfire status
openfire is not running
[root@iZ23572i0rtZ bin]# /etc/init.d/openfire start
Starting openfire:
[root@iZ23572i0rtZ bin]# /etc/init.d/openfire status
openfire is running
status顯示openfire已經成功啟動。通過虛擬機ip訪問9090端口,這時會跳轉到setup界面,只需要通過setup便可以完成相關配置。
配置完成之後即可以登錄自己的管理控制台。
既然服務器安裝完成,那我們可以著手我們的APP。與Openfire關聯的客戶端XMPP協議庫是smack。摸索一番之後發現,要在Android中使用Smack必須使用ASmack庫。ASmack下載地址。
以實例為主,通過smack實現兩個客戶端之間的即時通信。下載地址
. 客戶端對客戶端創建聊天時,SID為 username@XXXX, XXXX表示的是服務器名字,我這裡是ECS主機名。
說起APP應用閃退很多用戶會第一時間想到蘋果設備閃退問題,而出現閃退並非蘋果的"專利",而在安卓蘋果下,近期就有用戶遇到微信手機版出現閃
Android:Content Provider的使用。1、Content Provider 簡介2、使用現成的Content Provider3、定義自己的Conten
封面圖: 簡介 波尼音樂是一款開源Android在線音樂播放器。 播放本地音樂與在線音樂 在線音樂排行榜,如熱歌榜、新歌榜等 高仿雲音樂的黑膠唱片專輯封
基本信息Simple2Develop 是一款基於Android平台的跨線程通信框架,可以讓你以一種簡單的方式進行復雜的通信,支持同進程中多Activity之間即時交互,子