專微App相關(guān)介紹

一. 概述

專微App是一款面向互聯(lián)網(wǎng)的語音對講系統(tǒng)的應(yīng)用,整體架構(gòu)借鑒了局域網(wǎng)開發(fā)語音對講項(xiàng)目先慷,首先通過UDP廣播在mq服務(wù)器上發(fā)送并接受數(shù)據(jù),實(shí)現(xiàn)局域網(wǎng)內(nèi)的語音對講,然后通過http協(xié)議與網(wǎng)絡(luò)服務(wù)器建立連接夭谤,實(shí)現(xiàn)互聯(lián)網(wǎng)語音對講。

二. 局域網(wǎng)語音對講實(shí)現(xiàn)原理

具體項(xiàng)目參考項(xiàng)目地址:

目前已實(shí)現(xiàn)的功能:

相關(guān)知識體系架構(gòu)可參考:

三. 網(wǎng)絡(luò)連接實(shí)現(xiàn)原理

通過c/s架構(gòu)采用http協(xié)議建立與網(wǎng)絡(luò)服務(wù)器之間的連接巫糙±嗜澹客戶端采用okhttputils工具類實(shí)現(xiàn)訪問網(wǎng)絡(luò)服務(wù)器請求接口参淹,用戶登錄成功后建立與網(wǎng)絡(luò)服務(wù)器的連接。

四. 項(xiàng)目整體架構(gòu)及涉及到的開源庫

四. 項(xiàng)目應(yīng)用技術(shù)

1.為實(shí)現(xiàn)黑屏起麥這一功能,首先通過注冊系統(tǒng)白名單,保證應(yīng)用進(jìn)程不被后臺回收殺死卵惦,另一方面保證在一個(gè)tcp上的socket通信利用心跳保持長連接沮尿。

2.無法注冊白名單的終端采用service雙進(jìn)程守護(hù)盡可能地保證進(jìn)程不被殺死,原理是通過aidl跨進(jìn)程通信實(shí)現(xiàn)兩個(gè)進(jìn)程間的相互調(diào)用庸疾。

3.客戶端與服務(wù)器建立tcp socket的長連接届慈,登錄群組聊天室上傳信息到mq服務(wù)器金顿,某個(gè)客戶端通過頂層socket協(xié)議向服務(wù)器發(fā)送實(shí)時(shí)語音渠概,再由mq服務(wù)器對語音socket通信發(fā)送給客戶端播揪,接受者通過用戶id和所在群組判斷接受的語音信息猪狈。

五. 交接具體問題

1.C10終端加入白名單的具體操作步驟?

交接文件中的PC_Tools_R01.00.01文件中執(zhí)行PCTools.exe文件疆前,點(diǎn)擊配置查看應(yīng)用白名單,如果應(yīng)用未注冊白名單碾牌,點(diǎn)擊應(yīng)用白名單添加應(yīng)用名稱即可征冷,包括添加C10鍵值也是一樣检激,添加好之后點(diǎn)擊寫入等待系統(tǒng)重啟即可叔收。

2.中山警鈴上架過程

更新版本代碼之后饺律,升級versionCode和versionName兩個(gè)參數(shù),導(dǎo)出最新版本的應(yīng)用包乒省,聯(lián)系中山警鈴上架應(yīng)用的負(fù)責(zé)人劉中明,微信號lzm61818十籍,提供.apk的文件和這兩個(gè)參數(shù)即可上架

3.專微GIT上的分支介紹

目前版本的VisionClient在Gitblit上的所有分支已經(jīng)合并娶吞,只有一個(gè)主分支妒蛇,二具體產(chǎn)生的兩個(gè)版本則是由AndroidManifest.xml文件控制,中山版本LAUNCHER進(jìn)程啟動(dòng)的是LoginActivity陶耍,而北京啟動(dòng)的是LoginActivityForBJ。中山版本和北京版本另一個(gè)區(qū)別是有無圖標(biāo)啟動(dòng)也就是是否有
以北京的版本為例:


      <activity
            android:exported="true"
            android:name=".activity.LoginActivityForBJ"
            android:hardwareAccelerated="false"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|stateUnchanged"
            android:label="@string/app_name">
            <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
               <!-- <data android:host=".activity.loginactivity" android:scheme="com.vision.dev" />-->
                    <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

    </activity>

中山的版本只需要把LoginActivityForBJ改成LoginActivity,并把注釋的這行隱式即可。

<data android:host=".activity.loginactivity" android:scheme="com.vision.dev" />
4.一些代碼上需要注意的地方

代碼核心部分其實(shí)就兩點(diǎn):
1.網(wǎng)絡(luò)通信
2.線程池
前期各項(xiàng)參數(shù)集中在ConnectionModel類中砚作,參數(shù)設(shè)置完畢后與服務(wù)器建立連接,代碼關(guān)鍵部分集中在HistoryFragment中米同,包括連接后點(diǎn)擊先向網(wǎng)絡(luò)服務(wù)器發(fā)送請求后得到success后才能發(fā)送語音數(shù)據(jù)信息,語音的各種信息封裝在一個(gè)MessageBean中,接受的語音通過流的形式傳遞到創(chuàng)建的語音文件中钱磅,語音的數(shù)據(jù)通過線程池方式發(fā)送和接收,

ExecutorService threadPool = Executors.newCachedThreadPool();

利用的是5種線程池中的緩存線程池:newCachedThreadPool()創(chuàng)建似枕,五個(gè)參數(shù)分別是ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue())盖淡。
含義是池中不保持固定數(shù)量的線程,隨需創(chuàng)建凿歼,最多可以創(chuàng)建Integer.MAX_VALUE個(gè)線程(說一句褪迟,這個(gè)數(shù)量已經(jīng)大大超過目前任何操作系統(tǒng)允許的線程數(shù)了),空閑的線程最多保持60秒答憔,多余的任務(wù)在SynchronousQueue中等待味赃。
客戶端發(fā)送時(shí)通過線程池發(fā)送有確認(rèn)發(fā)送connection參數(shù)等信息的ReadDataThread到服務(wù)端,接受的時(shí)候通過判斷接收參數(shù)connection的回調(diào)來實(shí)現(xiàn)對于接收信息的監(jiān)聽(connection實(shí)現(xiàn)了底層對于監(jiān)聽回調(diào)的監(jiān)聽虐拓,直接用就行)

附專微App交接文件網(wǎng)盤下載地址:

鏈接:https://pan.baidu.com/s/1-s2OkVRtInBq6bXlIz6Y3g

提取碼:ylwo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末心俗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蓉驹,更是在濱河造成了極大的恐慌城榛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件态兴,死亡現(xiàn)場離奇詭異狠持,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诗茎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門工坊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人敢订,你說我怎么就攤上這事“粘裕” “怎么了楚午?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵尿背,是天一觀的道長弹砚。 經(jīng)常有香客問我啼肩,道長,這世上最難降的妖魔是什么谦炬? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮枕扫,結(jié)果婚禮上活翩,老公的妹妹穿的比我還像新娘。我一直安慰自己缆瓣,他們只是感情好喧枷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弓坞,像睡著了一般隧甚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渡冻,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天戚扳,我揣著相機(jī)與錄音,去河邊找鬼族吻。 笑死帽借,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的超歌。 我是一名探鬼主播砍艾,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼握础!你這毒婦竟也來了辐董?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤禀综,失蹤者是張志新(化名)和其女友劉穎简烘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體定枷,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡孤澎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欠窒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片覆旭。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖岖妄,靈堂內(nèi)的尸體忽然破棺而出型将,到底是詐尸還是另有隱情,我是刑警寧澤荐虐,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布七兜,位于F島的核電站,受9級特大地震影響福扬,放射性物質(zhì)發(fā)生泄漏腕铸。R本人自食惡果不足惜惜犀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狠裹。 院中可真熱鬧虽界,春花似錦、人聲如沸涛菠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碗暗。三九已至颈将,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間言疗,已是汗流浹背晴圾。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留噪奄,地道東北人死姚。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像勤篮,于是被迫代替她去往敵國和親都毒。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.29:10 how many teeth?碰缔;概述不同年齡段牙齒的不同 i can tell by touchi...
    吹轟一第閱讀 518評論 0 0
  • 《躍遷》--作者:古典 讀書筆記: 一账劲、引子 愛因斯坦說:“如果我必須用一個(gè)小時(shí)解決一個(gè)重要問題,我會(huì)花55分鐘考...
    燕兒姐陪你闖職場閱讀 496評論 0 1
  • 海南之行金抡,畫上了圓滿的句號瀑焦,我們一行返程。 剛下飛機(jī)梗肝¢晃停總裁辦的電話打了進(jìn)來,說讓我下飛機(jī)后立即趕往集團(tuán)巫击,董事會(huì)找我...
    JamesMow閱讀 474評論 1 0
  • 鏡花水月 | 目錄[http://www.reibang.com/p/c4737520d805] 上一章[htt...
    云知還閱讀 250評論 0 9
  • 一禀晓、 他在萬丈紅塵之外涅槃成佛,我在萬丈紅塵之內(nèi)抵死沉默坝锰,四目相對之時(shí)粹懒,他說,“我若成佛顷级,定能渡你崎淳。” 二愕把、 初化...
    顧知涯閱讀 2,086評論 20 46