关闭
当前搜索:

[置顶] Android应用开发—知识点汇总

获取Fragment的context: getActivity().getApplicationContext()或者getActivity() You can use getActivity(), which returns the activity associated with a fragment. The activity is a context (since...
阅读(296) 评论(0)

[置顶] 海康萤石摄像机远程监控机制分析

背景介绍有一个远程监控的需求,正常情况下采用服务器转发视频流对服务器要求很高,所以p2p看似是一个比较好的方案,但是p2p打洞却不是一件容易的事情,所以打算分析下海康萤石摄像机远程监控的机制,是否采用了p2p的方式。初步分析结果少废话,先说结果:对称型nat的p2p打洞是一个比较困难的技术问题,萤石摄像机并没有很好的解决对称型p2p打洞的问题,而是采用服务器转发的方式实现远程监控。 *注:由于测试...
阅读(464) 评论(0)

[置顶] 记录一次kernel内存泄漏的查找定位过程

Bug描述:压力测试一个小工程时发现内存逐渐减少,10个小时后出现OOMBug定位过程: 对整个工程模块进行分解,逐步缩小范围,由于整个工程包括几个相对独立的小模块,而整个工程采用单进程多线程的模型,导致进行分解时,要特别注意相互之间的耦合,只能逐步分离各个模块,运行测试(这里如果采用多进程模型,定位会更快一些,一个完整的功能,放在一个进程和多进程中,多进程天然的将功能细化了,定位问题,范围更小)...
阅读(433) 评论(0)

[置顶] 修过的一个android framework原生系统代码bug

“坑”描述:在对我们自己研发的一个android终端时进行camera拍照压力测试时,发现当拍照张数达到几万张时,查看内存占用情况,发现内存泄露。填“坑”:frameworks/base/core/jni/android/graphics/YuvToJpegEncoder.cppbool YuvToJpegEncoder::encode(SkWStream* stream, void* inYuv,...
阅读(434) 评论(0)

[置顶] 基于pjsip实现p2p语音对讲

需求为实现跨网络的语音对讲,使位于NAT后的两个设备进行p2p的语音通讯,此处选用pjsip开源项目说实现。 未解决的问题:对称型的NAT无法实现p2p打洞,pjsip采用的turn服务进行转发,不能称之为纯粹的p2p。pjisp简介PJSIP是一个开放源代码的SIP协议栈,它支持多种SIP的扩展功能 。它的实现是为了能在嵌入式设备上高效实现SIP/VOIP。(摘自百度百科) 项目网址:http...
阅读(1787) 评论(0)

[置顶] 嵌入式软件开发工程师谈软件架构的设计

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl...
阅读(3830) 评论(3)

Android应用开发—Intent组件详解

转载自:Android中Intent组件详解 Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件。 Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙述其所期望的服务或动作、与动作有关的数据等。Android则根据此Intent对象之叙述,负责配对,找出相配的组件,然后将 Intent对象传...
阅读(33) 评论(0)

Android应用开发—PendingIntent:如何判断两个PendingIntent对等

摘录自:PendingIntent详解 如何判断两个PendingIntent对等: 两个PendingIntent对等是指它们的operation一样, 且其它们的Intent的action, data, categories, components和flags都一样。但是它们的Intent的Extra可以不一样。 主要常量 FLAG_CANCEL_CURRENT:如果当前系统中...
阅读(48) 评论(0)

单机单网卡最大tcp长连接数真的是65535吗?

很早微博上一直讨论比较多的问题,这里转载个知乎的答案:单机单网卡最大tcp长连接数真的是65535吗? 作者:许怀远 链接:https://www.zhihu.com/question/66553828/answer/244313925 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。TCP四元组(quadruple)的概念,就算培训班出来的也听说过吧?不做解释...
阅读(45) 评论(0)

如何迁移整个git仓库

转自准备更换git托管,如何迁移原git仓库一个回答 如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话,可以通过以下步骤来操作。 从原地址克隆一份裸版本库,比如原本托管于 GitHub。 git clone –bare git://github.com/username/project.git 然后到新的 Git 服务器上创建一个新项目,比如 GitCafe。 以...
阅读(36) 评论(0)

纯吐槽:少扯些架构,多写些代码,先做到dry

满嘴模块,架构,解耦的,大部分连重复代码都消除不了,到处repeat yourself。 不夸张的说,能做到dry的,基本就是高级工程师了,秒了50%的程序员。...
阅读(70) 评论(2)

节选—Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目

本文转载自Android 视频直播 ( 从快播到直播,从高清到无码 )十年视频开发项目,截取其中技术概念比较相关的部分,并做了重新的排版。 视频和直播的准备: android-java层:camera相关(视频)、AudioRecord(音频)相关、MediaCodec相关(音视频编码) android-native层(c++):h264、h265等编码库的调用;各种音频编码库的使用(aac、amr...
阅读(124) 评论(0)

一只视频程序猿的移动直播SDK初体验

本文转自一只视频程序猿的移动直播SDK初体验,此处仅做排版改动。 今早老板召开站会,“移动直播这么火,市面上有一百多个APP,小斌,你下周交个原型APP瞅瞅!”小弟心中一万匹草泥马奔过,这玩意儿哪儿是几天就能弄出来的?问候归问候,咱还是赶紧调研吧,端午还约了妹子游泳呢。方案选项作为公司音视频大神,对流媒体基本概念还是OK的。咱首先看看市面上火热的某客、某椒APP怎么工作的。主播端推流使用RTMP推向...
阅读(473) 评论(0)

Tcp三次握手和四次挥手状态图

三次握手四次挥手 正常情况下 同时挥手 SYN攻击:在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Ser...
阅读(73) 评论(0)

tcp建立连接为什么需要三次握手

这是一个看似很“简单”的问题,但貌似并没有一个官方统一的答案。搜索了相关的资料,列举出一些答案。 以下部分转载自:tcp建立连接为什么需要三次握手 在《计算机网络》一书中其中有提到,三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释...
阅读(71) 评论(0)

三次握手的第三个ACK包丢了,会发生什么?

转载自三次握手的第三个ACK包丢了,TCP的处理方式 三次握手的第三个ACK包丢了,客户端认为连接建立,写数据时,会触发RST。当Client端收到Server的SYN+ACK应答后,其状态变为ESTABLISHED,并发送ACK包给Server,如果此时ACK在网络中丢失,那么Server端该TCP连接的状态为SYN_RECV,并且依次等待3秒、6秒、12秒后重新发送SYN+ACK包,以便Clie...
阅读(52) 评论(0)

音视频多媒体协议相关资料汇总

编码,封装,协议的区别: 如何将TS源流重新封装并通过P2P协议传输在安卓终端和苹果终端播放 RTMP协议是封装的FLV视频在互联网中进行传输...
阅读(39) 评论(0)

Android应用开发—setResult()的调用时机

本文转载自setResult()的调用时机,此处做了重新的排版,只是感觉markdown的排版比较好看些,侵删。 今天遇到这样一个问题,我在Activity-A中用startActivityForResult()方法启动了Activity-B,并且在B中通过setResult()方法给A返回值,由于某些原因不能在setResult()之后立刻调用finish()函数,只能通过用户按Back键自己退出...
阅读(57) 评论(0)

Todo List

fragment里面如何处理back按键事件。 fragment里面无法Override onBackPressed接口,如何优雅的处理back press事件? activity如何获取当前活跃的fragment对象。 异步网络请求如何改造成rxjava,rxjava有设置运行线程的能力,异步请求是否必要?只同步处理感觉就可以完全解决问题了。 jdk内hashmap的散列函数 jav...
阅读(44) 评论(0)

Android Studio常用快捷键

注:本文大部分内容转载自——码个蛋微信公众号里的“熟练这些,才会知道 Android studio 有多高效”由于是微信公众号通过传送门看的,没有原文链接。显示方法的参数 当我们使用一个方法的时候,会在刚开始的时候显示出所有的参数。但是过一会可能就不存在了。这个时候如果你想知道下一个参数是什么类型,或者看一下所有参数。 快捷键: command + P (mac) ctrl + P (win...
阅读(41) 评论(0)

Git clone之后你的硬盘上究竟发生了什么?

网上关于Git的使用有太多的博客,文章在讲解了,大部分是在讲解命令的用法,剩下一部分则在讲解git的内部原理,看过讲解基础命令使用的文章后,正常的开发过程中的使用时没有什么大的问题了,而如果想更深入的了解,去看第二类讲解内部原理(数据结构,源码实现)的文章,往往感觉过于“高深”,复杂,(而且对git的使用上并不会有太多帮助),其实介于两者之间的知识可能对于git进阶更有帮助。 Git的原理和使用其实...
阅读(65) 评论(0)

Git cherry-pick后再merge出现一个“奇怪”的现象

背景描述:有的时候在基于一个master branch拉出一个独立feature分支做开发时,两条分支都在并行开发,如果master分支增加了某些功能,解决了某些关键bug,而独立feature分支不需要所有的增加的commit,只需要某一笔的修复,此时首先想到的就是单独cherry-pick该笔commit,然而后续如果再次将该feature merge回master,“奇怪”的现象发生了…. 举...
阅读(135) 评论(0)

Git分支管理策略

git branch的管理策略网上有不上文章,流传比较广泛的应该是阮一峰的Git分支管理策略,不过个人感觉这个策略过于简单,在实际的开发环节中,有很多情况不好处理。另一篇比较有名文章是:a-successful-git-branching-model 该文对于各分支的merge操作过于随意,会导致branch线十分繁琐,又过于复杂。这里总结一些个人在使用git管理代码仓库过程中的一点想法和思考,以及...
阅读(68) 评论(0)

叨逼叨

此处记录点零散的小idea,为了避免把csdn当微博,开一篇,都记在这里吧。感觉服务注册机制,貌似也是一种依赖注入。(虽然我还没完全搞懂依赖注入),理由呢:你需要一个模块的功能,该模块作为一个服务注册上,你就能用,没注册,你的服务请求失败,这样不会出现连build都不过的情况,而依赖注入貌似也是帮你完成某个对象的装配,我们可以通过控制依赖注入来灵活的配置装配对象,这样功能的变更不会影响到你的模块,依...
阅读(99) 评论(0)

Android应用开发—eventBus发布事件和事件处理的时序关系

占坑,简单说明下eventBus发布事件和事件处理的时序关系。...
阅读(114) 评论(0)

Android应用开发—重载fragment构造函数导致的lint errors

背景:在一次release打包中发现lint报以下错误: Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment] 根据后面的log提示是由于重载了fragment的构造函数...
阅读(179) 评论(0)
51条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:13705次
    • 积分:557
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:13篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论