美文网首页
专微App相关介绍

专微App相关介绍

作者: Darren的徒弟 | 来源:发表于2020-04-20 11:07 被阅读0次

一. 概述

专微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

相关文章

  • 专微App相关介绍

    一. 概述 专微App是一款面向互联网的语音对讲系统的应用,整体架构借鉴了局域网开发语音对讲项目,首先通过UDP广...

  • App Clips 与快应用

    目录 App Clip 的相关介绍和开发流程 快应用的相关介绍和开发流程 快应用和 App clip 的对比 总结...

  • 支付宝App支付全解析

    简单介绍了支付宝App支付的申请、接入、使用、确认支付结果等相关流程 0 系列文章 系列一 微信App支付全解析系...

  • 微信App支付全解析

    简单介绍了微信移动支付的申请、接入、使用、确认支付结果等相关流程 0 系列文章 系列一 微信App支付全解析系列二...

  • 微信公众号支付全解析

    简单介绍了微信公众号支付的申请、接入、使用、确认支付结果等相关流程 0 系列文章 系列一 微信App支付全解析系列...

  • 微信扫码支付全解析

    简单介绍了微信扫码支付的申请、接入、使用、确认支付结果等相关流程 0 系列文章 系列一 微信App支付全解析系列二...

  • 微信小程序 app.json 详细介绍

    微信小程序 app.json 详细介绍

  • 2019-05-27

    个人介绍+定期复盘 自我介绍下: 【我是】:恬儿 坐标重庆 【个人微信】:343897118 【标签】:英语专八...

  • 「开眼Eyepetizer」SimpleEyes 学习Kotl

    介绍 SimpleEyes是一款基于仿开眼视频App,力求与原始开眼App相似(附上相关App参考版本,如有需要可...

  • 宝贝帮手隐私政策

    生效时间:2020年1月1日 宝贝帮手App(以下统称为“本App”)。 本隐私政策介绍本app的隐私数据相关政策...

网友评论

      本文标题:专微App相关介绍

      本文链接:https://www.haomeiwen.com/subject/lqkrihtx.html