远程服务器维护 服务器问题因为服务器 采用的samba和ssh 方式登录,但是在人数过多的情况下,文件读写会出现卡顿,不定时出现个别用户,或者群体范围,经查阅资料,检查cpu 和 mem 使用情况,主要原因出现 cache/buff 过高的情况首先检查下 cpu 和 mem 使用信息主要是top信息#iP地址IP=`ifconfig | grep inet | grep -vE 'inet6|127....
secureCRT 当作串口工具 使用 secureCRT简称crt,终端仿真工具很强大,支持 SSH1和SSH2,串口,Telnet等,我这里只用作 串口打印log,可以自动保存log ,随时暂停log恢复网上有很多破解版点击安装,然后解压破解工具,双击点击patch 选择 安装路径下的SecureCRT.exe然后选择license到这里 应该破解了然后配置成串口工具选择Options->Globa...
[mp3]声音播放太快 问题解析 问题:播放音频文件发现声音变快了audio分析MPEG 组织 官方介绍基本介绍可以参考 https://www.cnblogs.com/ranson7zop/p/7655474.htmlmp3 协议 属于mpeg 范畴一个mp3 文件由 TAG_V2(ID3V2),Frame, TAG_V1(ID3V1) 组成TAG_V2包含了作者,作曲,专辑等信息,长度不固定,扩展了I...
[802.11][ MAC 管理帧类型] 文章目录管理帧Beacon 信标帧Probe Request 探测请求Probe Response 探测应答解除连接和解除认证(Disassociation 和 Deauthentication)连接要求 Association Request重新连接请求 Reassociation Request连接应答 Association Response 和 重连接应答Reassociation Res...
802.11协议精读1:学习资料整理 转发自 https://zhuanlan.zhihu.com/p/20716157序言笔者从研究生开始,一直在做有关802.11协议的相关内容。故在此将笔者学习期间收集了较好的学习资料进行整理,并记录如下。该整理按照由潜至深的顺序,可以根据个人不同的情况,进行选择。(PS:其中有的附上的下载链接均为网上搜索而言,仅为学习使用而已,有的资料可能不是最新版,所以还是购买原版书好一些)。综合类1...
[802.11][ MAC 管理帧的元件] MAC管理帧主要用来加入和推出wifimac 帧头 = 2+2+6+6+6+2 = 24字节地址位addr1 接收端设置 目的地址addr2 发送端设置 源地址addr3 设置加入网络的BSSID计算时间duration免竞争期间 发送的帧设置位32768竞争期间广播和组播 设置为0不是最终片段,设置3SIFS+next frame+response最终片段 设置re...
[802.11][ MAC 控制帧] IEEE 802.11 MAC 控制帧控制帧格式在 控制帧中Frame controlProtocol 值 0,type 识别码值 10,控制帧负责处理无线介质的访问,只能由无线工作站产生,并不会进入传输系统,所以 ToDS 和 FromDS 必然是0,控制帧不会分片,所以More Fragments 是0.,控制帧不会出现Retry,所以为0,控制帧没有More data 为0,控制...
[802.11][ MAC 数据帧] IEEE 802.11 MAC帧mac帧格式Address1 Address2 Address3 Address4 4个地址,各占6字节地址长度48bit,传送给实际介质的第一个bit 为0 ,表示单一工作站(单点传播)第一个bit 为1 表示一组实际工作站,称为组播(多点传播)所有的bit 为1,帧为广播帧addr1 代表接收端接收端地址 48bit 的IEEE MAC...
[802.11][ MAC 帧头][Duration/ID 2字节] IEEE 802.11 MAC帧mac帧格式Duration/ID 2 byteDuration/ID 在frame control 后面,占2byte当设置为NAV 网络分配矢量情况 (network allowcation Vector )第15bit 设置为0,0~14 用来设置NAV,单位微秒免竞争期间(CFP contention free period)传送的帧...
[802.11][ MAC 帧头][Frame Control 2字节] 文章目录IEEE 802.11 MAC帧mac帧格式Frame ControlIEEE 802.11 MAC帧在IEEE802.11 格式中,位的传送顺序由左到右,最低bit最先出现,最高效bit最后出现,感觉有点像大端对齐和小端对齐的注意事项大端对齐:高内存地址放整数高位 ,低内存地址放整数低位 例如x86 arm都是采用大端对齐小端对其:高内存地址放整数低位, 低内存地址...
Wi-Fi 基本知识 Wi-Fi 入门有线网络已经无法满足社会的发展,所以无线网络慢慢诞生,主要用到802.11无线网技术规范,优点很明显,弥补了有线网络的缺陷学习之前肯定有很多问号1. Wi-Fi 主要学什么?TCP/IP 把协议分成五层 和 OSI七成模型Wi-Fi 使用的是802.11协议规范(主要是针对本地局域网 LAN local area network),而802.11 主要规范 媒体介质控制...
arm-none-eabi-gcc 源码编译 toolchain 构建过程 背景我们采用arm公司的芯片,arm会提供官方支持的编译 toolchain,访问地址:ARM 官网源码编译的好处,可以客制化一些features,features都是通过宏开关控制,比如arm 的gcc中 针对freertos 砍去了posix,所以需要手动打开posix 开关gcc-arm-none-eabi 源码编译下载 解压源码把gcc-arm-none-eabi-6-2019-...
统计 移植的库占据系统多少RAM 小贱贱接到 领导命令,系统占了多少RAM,小贱贱不会啊,浏览器疯狂搜索资料RAMRAM:Random Access Memory 随机存取存储器 也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,主要用来存放操作系统、各种应用程序、数据等。它与ROM的最大区别是数据的易失性,RAM的工作特点是通电后,随时可在任意位置单元存取数据信息,断电后内部信息也随之...
搭建 https 服务器和 websocket 服务器指南 搭建https服务器环境准备配置 https 服务器访问生成CA根证书生成终端用户证书配置ngnix.confhttps服务器配置环境准备操作系统:win10下载 ngnix 、openssl安装目录不含有中文和有空格 推荐D:/program_files/ngnix 或者 /openssl 配置openssl环境变量首先配置OPENSSL_HOME 路径,将OPEN...
[live555]客户端优化 丢包问题 背景描述:在流媒体传输的时候,I P P P B B P I P B B I 类似的一帧传输,但是经常会随机出现丢包的情况,如何改善用户体验,就显的特别重要其中花屏的体验十分差,花屏是因为 I帧中间某一帧丢了包导致的问题,因为每一帧之间的变化和差距不是很大,所以最好的办法就是直接跳到下一个I帧 ,或者通过RTCP 请求丢失的包,重新排序解码这篇优化,采用第一种,环境在live555中模拟丢...
timeval使用和理解 在 看协议的过程中经常会有同步 时间计算获得时间延迟,所以会用到timeval/* * Structure used in select() call, taken from the BSD file sys/time.h. */struct timeval { long tv_sec; /* seconds */ long tv...
linux signal 函数对中断的应用 在https://blog.csdn.net/engineer_james/article/details/83867466 写一个android进程后台的过程但是我们用CPP C 开发避免不了 分配内存或者 指针,如果在linux 进程跑的时候,出现死了或者退出导致中断,但是资源没有正常释放,造成资源浪费,所以需要用signal 处理signal是linux系统的对所有动作的捕捉,然后进行处...
Android 源码 中写后台应用 在Android 开机启动的时候会有一些后台进程跑起来,当然我么也可以定制在vendor 的目录中放置 一个Android.mk文件还有一个server.cpp,头文件配置makefile配置# LOCAL_PATH变量。它用于在开发树中查找源文件 my-dir 编译系统提供LOCAL_PATH := $(call my-dir) # executable bin #清除所有loc...
[live555] testRTSPClient 通过ffmpeg 解码(记录) live555 获取每一帧testRTSPClient 中Boolean DummySink::continuePlaying() { if (fSource == NULL) return False; // sanity check (should not happen) // Request the next frame of data from our input sour...
从live555 实战中了解MakeFile 陈力就列 不能者止基本的shell 命令学习Makefile 《跟我一起写Makefile》,有余力者参考GNU make 参考书。电子版本 下载live555源码1.保证编译通过./genMakefiles linuxmake -j8上面配置 linux ,使用的参数在 config.linux 文件中是生成静态库的文件2. Makefile 编译...
RIL 流程 RIL 分为RILJ 和RILC 部分,而RIL 和modem 通信通过socket ,发送的是串口 AT command[其实只要熟悉linux 编程,rild 部分确实很好理解]花了4天左右认认真真分析在初始化 reference-ril 库的时候,创建 客户端socket 连接到modem,而通过atchannel 的at_send_command_full_nolock发送AT...
深入理解RILD 知识点笔记 int p; //这是一个普通的整型变量int *p; //首先从P 处开始,先与*结合,所以说明P 是一个指针,然后再与int 结合,说明指针所指向的内容的类型为int 型.所以P是一个返回整型数据的指针 int p[3]; //首先从P 处开始,先与[]结合,说明P 是一个数组,然后与int 结合,说明数组里的元素是整型的,所以P 是一个由整型数据组成的数组 -------整型...
[live555] 从testRTSPClient.cpp PLAY 请求 四 前言因为play 流程和DESCRIBE 和SETUP一样,所以,已经需要分析的内容很少,除了RTCP [live555] 从testRTSPClient.cpp DESCRIBE 发起请求 一 [live555] testRTSPClient.cpp DESCRIBE (后续处理) 二 [live555] 从testRTSPClient.cpp SETUP请求 三PLAY 请求...
[live555] 从testRTSPClient.cpp SETUP请求 三 前言在DESCRIBE 请求流程,已经将 live555 处理机制走了一遍,所以在SETUP请求过程中也是适用的SETUPrtspClient->sendSetupCommand(*scs.subsession, continueAfterSETUP, False, REQUEST_STREAMING_OVER_TCP);unsigned RTSPClient::send...
[live555] testRTSPClient.cpp DESCRIBE (后续处理) 二 摘要在testRTSPClient 发送 DESCRIBE 请求的时候,会解析返回的response,所以早早就把请求相关的信息封装在RequestRecord(包含cseq session 等信息),存放在fRequestsAwaitingResponse 队列中,等到轮询便处理 ...
[live555] 从testRTSPClient.cpp DESCRIBE 发起请求 一 从Meida Server 到live555客户端之前零零碎碎写了 live555 MediaServer 以及关于RTSP 流程的处理 live555 处理 请求消息 一 “OPTIONS” live555 处理 请求消息 二 “DESCRIBE” live555 处理 请求消息 三 “SETUP” live555 处理 请求消息 四 “PLAY” live555 处理 请求消...
深入理解git 使用 作为一个4年的程序员,很多基础一知半解,很惭愧.想来想去,自己后之后觉,到毕业的时候,才知道这个行业比较适合我.选择将git 整理一番,磨刀不误砍柴工嘛. 参考书籍 https://git-scm.com/book/zh/v2首先是clone 一个项目git clonegit clone git@xxxxxxxxxxxx.gitgit status然后修改文件...
第三方 app 安装后,android.intent.action.BOOT_COMPLETED 无法启动应用 网上有已经有人解释了原因 参考 https://blog.csdn.net/zhouzhengting1/article/details/50459431因为我们发送广播adb shell am broadcast -a android.intent.action.BOOT_COMPLETED但是intent 默认会添加 FLAG_INCLUDE_STOPPED_PACKAGES...
Android adb 使用总结 (调试专用) adb 安装android 内置应用 out/target/product/xxx/system/app/MusicTests/MusicTests.apk 编译完成后显示adb push MusicTests.apk system/app/MusicTests adb install 第三方应用adb install -r path/MusicTests.apk...
Android 悬浮窗口 的朝向 以及 无activity 屏幕旋转的 问题解析 前言android 悬浮球 (所有界面可用) 开发 在测试的时候,会遇到屏幕旋转,导致布局失效错乱解决方案1 直接指定 landscape 或者portrait .....mFBParams = new LayoutParams(); //设置悬浮球布局的参数mFBParams.x = mScreenWidth-mFloatBallView.getWidth(); mFB...
Android Notification 填充 自定义布局 代码使用NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);int id = R.string.app_name;Intent d2dInfoIntent = new Intent(this, FloatballActivity.c...
Android 帧动画 实践 添加动画drawable/hide_icon.xml 添加 帧动画集<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> &a
android 內置系統app Android.mk makefile 文件编写 (缺动态库编译和引用动态库) 举例 MUSIC参考https://www.cnblogs.com/wainiwann/p/3837936.html C编译的配置Android.mkLOCAL_PATH:= $(call my-dir)#每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件。#宏my-dir 则由Build System提供。返回包含Android...
android 悬浮窗口 权限 (ACTION_MANAGE_OVERLAY_PERMISSION) 在开发悬浮球app的过程中,当第一次打开肯定会遇到权限问题我就遇到了Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@2886501 -- permission denied for window typ...
android 悬浮球 (所有界面可用) 开发 创建 service 后台启动public class FBService extends Service { private static final String TAG = "FBService"; public static final int TYPE_ADD = 0; public static final int TYPE_DEL = 1; ...
无线Mesh网络 介绍 转自:https://blog.csdn.net/u012707739/article/details/77417670无线Mesh网络是一种近年来得到快速发展的无线宽带接入网络技术,其不需要基站等事先建设的基础设施,而是利用分布式思想构建动态自组织的无线多跳网络,让处于该网络覆盖范围内的用户在任何时间、任何地点都可以对互联网进行高速无线访问。无线Ad-hoc网络无线Mesh网络由无线...
D2D 技术 介绍 D2D通信技术(Device—to—Device Communication)转自 : http://wiki.mbalib.com/wiki/Device-to-Device_communication目录1 什么是D2D通信技术 2 D2D技术发展历程 3 D2D技术特点 4 D2D通信技术的应用什么是D2D通信技术 D2D通信技术是指两个对等的用户节点之间直接进行...
[live555] 谈一谈 server 发送缓冲区 作用和流程 前言live555 有个重要的参数 发送缓冲区////////// OutPacketBuffer //////////unsigned OutPacketBuffer::maxSize = 60000; // by default默认是60000 字节,但是还要看实际设置 在 MultiFramedRTPSink 初始化的时候通过setPacketSizes 重新设置发送缓冲...
[live555] demo rtspserver log 抓取地址 rtspserver log 地址: https://download.csdn.net/download/engineer_james/10609273
[live555] 谈一谈 (*.mkv) track1 和 track2 的信息获取 发生时间 在处理Describe 请求在处理describe 请求的时候 DynamicRTSPServer::lookupServerMediaSession ,rtsp服务器会查找SDP信息并且创建,包括查找track1和track2 的信息即 音频视频轨道信息live555 处理 sdp消息 二 “DESCRIBE”[2]:...
FU-A 分片单元 过程 FU-ANON IDR 属于 [RTP header] + 拆分的NAL单元 ,所以RTP包结构如下 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-...
[H264编解码参数] PPS PPS 序列参数集合PPS 属于 [RTP header] + 单一NAL单元模式 ,所以RTP包结构如下 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+...
[H264编解码参数] SPS 前言RTP完整流程 已经 解释了协议 所以要涉及具体的log分析 分为: 1. SPS 2. PPS 3. I帧 4. 非I帧 5. FU-ASPS 序列参数集合PPS 图像参数集I帧非I帧FU-A...
[live555] RTP包 NALU FU-A等之间的关系 前言RTSP 协议流程 已经介绍在SETUP 确定了传输模式,而在PLAY的时候就开始传输RTP 包 并且,确定了第一个RTP url 序列号 和时间戳 RTP-Info: url=rtsp://10.0.2.15/ss1.mkv/track1;seq=57885;rtptime=4285367567开始学习RTP包组成RTP 包组成协议基本知识 这个真的 看协议...
rtsp 完整流程 环境---[live555 搭建服务器 / VLC 作为客户端/ RawCap.exe 抓取包] 前言live555 rtspserver端 创建并且接收客户端数据 环境下,用RawCap 抓取了完整的log WireShark 打开预览如下 从 OPTIONS DESCRIBE SETUP PLAY TEARDOWN 完整的 RTSP协议流程 我在本地的操作,就是播放视频,然后teardown 点击vlc 停止播放,发送的请求具体协议过程1. OPTIONS...
rtsp rtp 包抓取工具rawCap 和 wireshark wireshark安装参考: https://www.cnblogs.com/the-tops/p/7423390.html 检查自己的电脑环境 1. Visual C++ Redistributable for Visual Studio 2015 系统要求:Windows 7情况下必须是Windows 7 with SP1.或者Windows10 2.系统检测方法:命令行输入...
[live555 处理] 请求消息 四 "PLAY" [续] 前言上一节 因为没有对后面部分 packframe 流程进行详细扩展,这一节分析packframe 框架流程图看出来需要判断 是不是打包成功,当然代码中并不是这么判断的,基于很多个维度判断是否打包成功 如果打包成功,直接发送出去sendpacketifnecessary否则继续打包packframepackframe 详细流程上面的流程是通过 放在服务器...
[live555 处理] 请求消息 四 "PLAY" 前言在 live555 rtspserver端 创建并且接收客户端数据 根据rtsp 协议需要根据 handleRequestBytes 处理请求数据而在 SETUP 请求中,已经准备好了 RTP_UDP 传输的socket,所以进行 PLAY 请求的处理 LIVE555 主要在函数 handleCmd_PLAY处理 但还是从handleRequestBytes 开始分析PL...
[live555 处理] 请求消息 三 "SETUP" log 接收的SETUP 请求RTSPClientConnection[0xef5bfc40]::handleRequestBytes() read 158 new bytes:SETUP rtsp://192.168.0.10:8554/H264Video.mkv/track1 RTSP/1.0CSeq: 3Transport: RTP/AVP;unicast;client_por...
[live555 处理] 请求消息 二 "DESCRIBE" 根据log 分析 RTSPServer::RTSPClientConnection::handleRequestBytes 中对DESCRIBE 请求的处理1. 解析 请求和OPTIONS 请求一样fprintf(stderr, &amp;amp;amp;quot;RTSPClientConnection[%p]::handleRequestBytes() %s %d new bytes:%s&amp;amp;amp;quot;, ...
[live555 处理] 请求消息 一 "OPTIONS" 前言前面一篇 分析到了 RTSPServer::RTSPClientConnection::handleRequestBytes 进行处理请求消息消息处理分析 ptr[newBytesRead] = '\0'; fprintf(stderr, &amp;amp;amp;amp;amp;amp;quot;RTSPClientConnection[%p]::handleRequestBytes() %s %d new byt...
[live555] rtspserver端 创建并且接收客户端数据 前言本文分析是基于已经搭建好的live 555 环境, media server 能正常跑起来准备知识因为 文章中socket 进行通信,所以最好补习下linux下最基本的socket 通信基本流程,其他涉及知识点会补上其实最核心的思想就是socket 三次握手,如下图 media server 构建一个rtsp 服务器直接分析源码 live555MediaSe...
[live555] 谈一谈 HandlerIterator \ HandlerDescriptor \HandlerSet 构成迭代器 前因在 创建 live555 服务的时候 TaskScheduler* scheduler = BasicTaskScheduler::createNew(); UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler);会创建BasicTaskScheduler0::BasicTaskSche...
[live555] 环境搭建 参考教程https://www.cnblogs.com/xlpsky/p/5807140.htmlhttp://www.live555.com/http://www.live555.com/liveMedia/一致认为gstreamer 比较难维护,所以转到live555 ,可能我的能力还没有达到吧。学习了2个星期C++。就开始上手了下载源码http://www.li...
工厂测试应用的总结 经过昨天一天的猛虎操作,终于工厂的需求进入尾声,总结下新学到的知识如果想让两个apk 预置在launcher 需要修改launcher 的配置文件 配置如下 packages/apps/Launcher3/res/xml/default_workspace_4x4.xml<favorites xmlns:launcher="http://schemas.android.com...
协议文档 入门资料 3GPP 地址 : http://www.3gpp.org/specification-numbering必须拥有的协议文档 经常需要查看 24.008 Mobile radio interface Layer 3 specification; 25.331 Radio Resource Control (RRC); 27.007 AT command set for User E...
Toast 完美使用 今天看见用了很多次toast 的代码,做了一下简单的优化,看到其他人已经写了,就直接改一下private Toast mToast = null;public void showToast(String text) { if(mToast == null) { mToast = Toast.makeText(Activity.this, text, Toast.L...
android 第三方jar 包 替换源码 使用 最近要修改一点表格相关的东西我也没怎么研究过,今天刚改完 ,做一个总结我用的https://github.com/PhilJay/MPAndroidChart git clone git@github.com:PhilJay/MPAndroidChart.git 因为需要对表格做一些定制,所以我直接把jar 包替换成 开源代码进行编译clone 代码 clone 代码 在MPA...
git 新用法总结 终于在这里有任务做了,最近提交就遇到了问题以前提交问题,或者使用github 项目提交流程 这里特地记录下,以前没遇到过的git add 修改的文件后git commit 直接回车 像文本一样编辑,然后按ctrl+o ,输入 enter,最后 ctrl+z 就可以保存,commit 成功,很明显好处就是添加commit 注释 很规范 最后git push 就可以了...
[gstremer] 搭建debug环境 和 搭建 rtsp服务器 介绍 gstreamer 协议剖析在自己摸索gstreamer 的过程中,遇到很多困难,比如编译、比如服务器搭建、比如glib思想等总结最基础的debug gstreamer的环境 [修正] 下面的编译经验 是经过编译 android 平台,然后再编译linux 平台,才可以进行修改测试,所以,下面的参考只是我总结的,后面我想再熟悉一点,再写一篇总结首先是编译gstreamer电脑环境...
atom 使用插件 plantUML atom 安装 plantuml最近看代码,加log打印,导致剖析思路不顺畅,所以准备安装plantuml ,用流程图帮我梳理协议流程记录一篇教程ubuntu安装配置jdk因为 plantUML 会使用一个jar包需要用到 java,所以安装jdk下载jdk jdk地址:http://www.oracle.com/technetwork/java/javase/download...
linux 进程和线程 对比 线程和进程这个概念不管在什么操作系统中都是一样的,也是面试官比较喜欢问的,代表你对程序优化的功底,搞安卓的时候,经常被用来优化处理速度 还有数据的处理,结合handler 一起处理,解决经常出现界面死掉问题。既然总结了,这一次充分总结下:进程进程组成:进程控制块PCB程序段数据段进程控制块PCB 是内核中存放的一块PCB区域,记录型数据结构 ,PCB 记录了操作...
linux ipc 进程间通信总结 进程间通信linux 系统中有很多进程,免不了进程间进行通信,即IPC通信,linux 中有6种方式 信号、无名管道(pipe)和有名管道(FIFO)、共享内存、信号量、消息队列、套接字(socket)socket 已经在前面研究tcp/udp的时候学习过socket tcp、socket udp信号信号是软件中断产生,用于进程间异步传递信息 一般在shell 中操作,进程...
udp 传输数据 udp 传输在tcp传输后,如果需要传输大量的数据那就需要使用udp协议,使用的数据报格式 即 SOCK_DGRAM的udp 编程模型服务器端步骤第一步: 创建一个socket 套接口,返回一个文件描述符第二步: 通过bind 绑定socket 本地的IP地址还有端口号第三步: 直接用recvfrom从套接口接收客户端发送过来的数据 包含客户端的IP地址和端口号,如果没...
socket TCP 通信编程的第一次网络连接通信 linux最近一直再看gstreamer,使用了很多插件和库,虽然我总结了一部分rtsp流程,对于这么大的框架,明显感觉分析不了,比如linux API、Gobject(Glib库)推荐一本入门书籍《linux下c编程》,有案例可以debugsocketsocket 是网络编程一个最基本的函数,本地应用,远端应用都可以用来通信,基于 tcp 和 udp 传输socket 通...
sizeof() 和字节计算 的爱恨情仇 c 字节大小在学习中经常遇到 byte的处理 甚至关于bit的处理,还有涉及到结构体强制转化,分析字节占用内存的问题, 每次分析重头再来,耗费时间,于是将 字节的大小 整理归纳sizeof() 显神通用法 sizeof(类型说明符,数组名或表达式); sizeof (变量名);//64bit 操作系统 sizeof 计算int main(int argc...
编辑器神器推荐 atom atom github优秀的项目作为一款优秀的编辑器,就是很了解程序员的工作,atom就是 主要用来作为前端开发,在ubuntu系统上sublime不支持中文输入,网上的解决方案不理想,这就是我选择atom的其中一个原因,官网地址,也可以去github查看atom项目。atom 有很多优秀的插件比如 activate-power-mode很酷的输入操作 combo的显示太...
rtsp 协议流程 rtsp 协议流程 学习RTP Real-time Transport Protocol 实时传输协议 RTSP Real Time Streaming Protocol 实时流协议 RTSP 和 RTP 开发客户 一般是C/S 模式整个流媒体传输的 协议流程整个过程只关注 协议流程 (不关注细节,细节可以在遇到bug时处理)首先是RTSP 流程1. 客户端创建so...
[Gstreamer] tutorials 引用SDK 【android 应用】 Gstreamer tutorials下载gst-docs链接:git clone git://anongit.freedesktop.org/gstreamer/gst-docs 下载的教程是 eclipse 下的项目,所以需要导入android studio 使用ubuntu 安装更新 android studio因为 gstramer 文档很老,没有详细描述andr...
[Gstreamer] 使用 cerbero 构建 什么是GstreamerGstreamer 是一个流媒体框架 可以用来构建流媒体播放器 官方地址 https://gstreamer.freedesktop.org/如何用cerbero 构建 Gstreamercerbero 是被用来给开源项目 多平台编译系统,最终可以编译成我们所需要的package 或者SDK 在ubuntu 编译Gstreamer 会自动安装需要的环...
[pjsip] 中 define 的妙用 define 语法define func funcA 上面的就是简单的替换 func 替换funcA的使用看下pjsip的用法// 案例: PJ_LOG(2, (__FILE__, "current value is %d", value));#define PJ_LOG(level,arg) do { \ if (lev...
开发神器 Source Insight 配置 Source Insight看见同事使用SI,心里也是痒痒的,昨天晚上 下载安装了一个,但是界面超级丑,于是自己研究下,仿照Sublime Monokai 主题 设置主题,花费我不少心血sublime Monokai Theme看起来还是很不错, 字体可以自己调大或者调小,像我这种有洁癖的程序员,肯定设置喜欢的风格,于是配置SI,效果如下SI Monokai Theme
pjsip workshop pjsipPJSIP 主要构成结构图 库的介绍 1. 最基础的库是PJLIB 2. 在基础库的基础上开发出8个不同作用的lib库 3. pjsua API 是可以调用的抽象的接口 1. 不同的lib库会放在相应库的lib文件夹下面 2. 如果想单独使用库 可以看 每个库的参考手册Reference Manuals PJSUA2PJSUA2是PJSUA
pjsip 使用 pjsip workshoppjsip 介绍 背景: PJSIP 由英国Teluu团队主导开发,由Benny Prijono 创建,他的名字缩写pj,所以命名PJSIP 优点: 可移植性强:可运行在windows、windowsmobile、linux、unix、MacOS、RTEMS、Symbian 内存需求小:编译后只需要150k内存空间 支持
CTS 测试 入门 CTS 测试 入门下载CTS对应工具如果可以翻墙,直接登录兼容性测试套件下载对应版本的我这次使用的是7.1.2的android 版本,于是就下载了对应7.1版本(700多M) 然后检查自己手机芯片架构是ARM 还是 x86,澎湃S1是ARM架构,所以选择对应ARM的CTS兼容性工具和兼容性验证程序的包下载下载 media 资源 选择最新版本下载 很大(大概4.3G)配置手机和电脑环境配
联系人数据库查询和显示 联系人数据库查询和显示数据库 SQLite简单来说 SQLite 就是轻量级数据库特别适合嵌入式操作系统 ,如果数据库不懂没关系,只要会最基本的就可以了,每次看到了就自己查资料,这里讲用到的基本数据库操作和使用SQLiteOpenHelper 介绍源码和 google 介绍,SQLiteOpenHelper 主要功能是 创建、升级、打开数据库和获取数据库对象 如果想使用 SQLiteOpenHe
联系人查询InCallUI显示 CallInfo最近在做很杂碎的事情,移植功能,需要零碎的知识点很多,想写一些博客记录,方便自己查阅和供大家参考。这篇记录的是联系人的相关部分,主要部分是打电话的时候如何查询联系人,如何显示在incallui界面如下图: 本文主要分析根据 12345678 分析 数据库查询联系人保存为 C联系人数据库的生成第一次开机启动的时候,BootCompletedReceiver会接收开机启动的广播,收到
ps call ps callps call 从 GsmCdmaPhone 开始 判断是否注册ims 才开始进行imsphone 实例的获取所以从GsmCdmaPhone开始跟踪流程 如果不清楚可以查看 结构图 明确标出com.android.internal.telephony.GsmCdmaPhone#dial @Override public Connection dial(String di
call structure call structurecall flow如上是我绘画出比较完整的call 的框架图,供以后参考cs call 源码分析 详见http://blog.csdn.net/engineer_james/article/details/73275248作者:贱贱的杨从此你们的路上不会孤单,还有贱贱的我
cs call cs call (Android 7)dialer 进程点击拨号 触发拨号处理com.android.dialer.dialpad.DialpadFragment#handleDialButtonPressedprivate void handleDialButtonPressed() { if (isDigitsEmpty()) { // No number entered.
创建FFOS 应用 new FFOS apppreparationinstall Firefox and WEBIDEoperationopen WEBIDEconnect to UEclick new appinput project name then click okchoose a folder to saveclick run check UE ,hello world app open,s
FFOS introduction FFOS 系统介绍FFOS 系统是属于FireFox OS平台的系统,和android 系统对比,主要的差距android 主要采用java 语言是打造界面和框架, 而ffos 使用gecko(浏览器引擎)使用web技术来实现系统显示和操作android 如果厂商定制 一般系统 大于2G,而ffos 一般500M,所以需要的硬件成本更低,适合在功能机上搭载(目前就是如此)如果未来ffos像and