专微App相关介绍

一. 概述

专微App是一款面向互联网的语音对讲系统的应用,整体架构借鉴了局域网开发语音对讲项目,首先通过UDP广播在mq服务器上发送并接受数据,实现局域网内的语音对讲,然后通过http协议与网络服务器建立连接,实现互联网语音对讲。

二. 局域网语音对讲实现原理

具体项目参考项目地址:

目前已实现的功能:

相关知识体系架构可参考:

三. 网络连接实现原理

通过c/s架构采用http协议建立与网络服务器之间的连接。客户端采用okhttputils工具类实现访问网络服务器请求接口,用户登录成功后建立与网络服务器的连接。

四. 项目整体架构及涉及到的开源库

四. 项目应用技术

1.为实现黑屏起麦这一功能,首先通过注册系统白名单,保证应用进程不被后台回收杀死,另一方面保证在一个tcp上的socket通信利用心跳保持长连接。

2.无法注册白名单的终端采用service双进程守护尽可能地保证进程不被杀死,原理是通过aidl跨进程通信实现两个进程间的相互调用。

3.客户端与服务器建立tcp socket的长连接,登录群组聊天室上传信息到mq服务器,某个客户端通过顶层socket协议向服务器发送实时语音,再由mq服务器对语音socket通信发送给客户端,接受者通过用户id和所在群组判断接受的语音信息。

五. 交接具体问题

1.C10终端加入白名单的具体操作步骤?

交接文件中的PC_Tools_R01.00.01文件中执行PCTools.exe文件,点击配置查看应用白名单,如果应用未注册白名单,点击应用白名单添加应用名称即可,包括添加C10键值也是一样,添加好之后点击写入等待系统重启即可。

2.中山警铃上架过程

更新版本代码之后,升级versionCode和versionName两个参数,导出最新版本的应用包,联系中山警铃上架应用的负责人刘中明,微信号lzm61818,提供.apk的文件和这两个参数即可上架

3.专微GIT上的分支介绍

目前版本的VisionClient在Gitblit上的所有分支已经合并,只有一个主分支,二具体产生的两个版本则是由AndroidManifest.xml文件控制,中山版本LAUNCHER进程启动的是LoginActivity,而北京启动的是LoginActivityForBJ。中山版本和北京版本另一个区别是有无图标启动也就是是否有
以北京的版本为例:


      <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.一些代码上需要注意的地方

代码核心部分其实就两点:
1.网络通信
2.线程池
前期各项参数集中在ConnectionModel类中,参数设置完毕后与服务器建立连接,代码关键部分集中在HistoryFragment中,包括连接后点击先向网络服务器发送请求后得到success后才能发送语音数据信息,语音的各种信息封装在一个MessageBean中,接受的语音通过流的形式传递到创建的语音文件中,语音的数据通过线程池方式发送和接收,

ExecutorService threadPool = Executors.newCachedThreadPool();

利用的是5种线程池中的缓存线程池:newCachedThreadPool()创建,五个参数分别是ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue())。
含义是池中不保持固定数量的线程,随需创建,最多可以创建Integer.MAX_VALUE个线程(说一句,这个数量已经大大超过目前任何操作系统允许的线程数了),空闲的线程最多保持60秒,多余的任务在SynchronousQueue中等待。
客户端发送时通过线程池发送有确认发送connection参数等信息的ReadDataThread到服务端,接受的时候通过判断接收参数connection的回调来实现对于接收信息的监听(connection实现了底层对于监听回调的监听,直接用就行)

附专微App交接文件网盘下载地址:

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

提取码:ylwo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • 1.29:10 how many teeth?;概述不同年龄段牙齿的不同 i can tell by touchi...
    吹轰一第阅读 518评论 0 0
  • 《跃迁》--作者:古典 读书笔记: 一、引子 爱因斯坦说:“如果我必须用一个小时解决一个重要问题,我会花55分钟考...
    燕儿姐陪你闯职场阅读 493评论 0 1
  • 海南之行,画上了圆满的句号,我们一行返程。 刚下飞机。总裁办的电话打了进来,说让我下飞机后立即赶往集团,董事会找我...
    JamesMow阅读 473评论 1 0
  • 镜花水月 | 目录[//www.greatytc.com/p/c4737520d805] 上一章[htt...
    云知还阅读 244评论 0 9
  • 一、 他在万丈红尘之外涅槃成佛,我在万丈红尘之内抵死沉默,四目相对之时,他说,“我若成佛,定能渡你。” 二、 初化...
    顾知涯阅读 2,084评论 20 46