- 博客(561)
- 资源 (6)
- 收藏
- 关注
转载 P2P技术详解(三):P2P技术之STUN、TURN、ICE详解
1、内容概述在现实Internet网络环境中,大多数计算机主机都位于防火墙或NAT之后,只有少部分主机能够直接接入Internet。很多时候,我们希望网络中的两台主机能够直接进行通信,即所谓的P2P通信,而不需要其他公共服务器的中转。由于主机可能位于防火墙或NAT之后,在进行P2P通信之前,我们需要进行检测以确认它们之间能否进行P2P通信以及如何通信。这种技术通常称为NAT穿透(NAT Trave...
2018-07-11 16:03:53 841
转载 P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解
1、内容概述P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等)。P2P可以是一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。在P2P网络中(如右图所示),所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现...
2018-07-11 16:02:40 1008
转载 P2P技术详解(一):NAT详解——详细原理、P2P简介
1. IPv4协议和NAT的由来今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,Internet在给亿万用户带来便利的同时,自身却面临一个致命的问题:构建这个无所不能的Internet的基础IPv4协议已经不能再提供新的网络...
2018-07-11 14:29:39 707
转载 对称NAT穿透的一种新方法
前言这种方法从安全的角度来说是利用了目前路由器实现对称NAT的方法中存在端口可以预测的漏洞,利用这个漏洞来实现打洞。加上一次发送大量的包,来增加命中的概率。参考资料整理翻译自A New Method for Symmetric NAT Traversal in UDP and TCPNAT的四种类型及类型检测关键字NAT穿透,对称NAT,UDP,P2P,状态包预测,TCP,P2P打洞4中NAT类型...
2018-07-10 20:36:39 12559 2
转载 WebRTC学习资料大全
在学习WebRTC,找了些资料,记录一下,供以后查询。有些需要翻墙才能看WebRTC 介绍官网在这里:https://webrtc.org/。然后这里有一个官方的Getting Started:https://webrtc.org/start/。Google关于WebRTC的幻灯片:http://io13webrtc.appspot.com/然后是WebRTC的SPEC:https://www.w...
2018-07-09 16:02:18 331
转载 WebRTC 学习资料整理一
官网永远是最重要,但同时也是最容易忽略的学习途径。So you should look official websites firtsly.。先看一看基础概念的解释WebRTC 相關縮寫名詞簡介推荐一种方式,打开官方给的例子,然后通过浏览器调试,定位到控制到就能够看到这个流程了。WebRTC samples如下:Offer/Answer 與 Signal Channel 是什麼?WebRTC 必須...
2018-07-09 15:52:02 4141
转载 DevOps 理念升级,ChatOps 概述及实践经验
如果一个团队不止关注眼下,也关注明天,那么显而易见他们应该做的两件事无非是:一,做领先于市场的事业;二,用更新更好的理念武装自己。在过去的许多年中,DevOps 逐渐成为了一个广受技术团队接受的工作理念,发展到今天,这个工作模式理应突破技术群体,发展为适应不同种类团队的方法模型,这也是 ChatOps 这个概念提出的背景之一。我们试图在这里梳理 DevOps 与 ChatOps 的关系,介绍 Ch...
2018-06-25 20:09:27 746
转载 java RMI原理详解
定义RMI(Remote Method Invocation)为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实...
2018-06-25 14:31:57 418 1
转载 RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。今天,我...
2018-06-25 11:28:40 177
转载 理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发...
2018-06-25 11:27:33 159
转载 Android 版本与 Bluetooth 版本之间的关系
摘要:Android 版本与 Bluetooth 版本之间是否存在必然关系?答案是否定的。不同版本的 Android 系统是否有针对不同版本的 Bluetooth 模块提供官方的 API 供开发者调用,这个才是关键。最近开始 Bluetooth 开发,一直纠结一个问题:Android 版本与 Bluetooth 版本之间是否存在必然关系?例如:Android 4.3 版本的手机
2016-11-25 17:03:56 1934
转载 Android渲染机制和丢帧分析
自己编写App的时候,有时会感觉界面卡顿,尤其是自定义View的时候,大多数是因为布局的层次过多,存在不必要的绘制, 或者onDraw等方法中过于耗时。那么究竟需要多快,才能给用户一个流畅的体验呢?那么就需要简单了解下Android的渲染机制:Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,那么整个过程如果保证在16ms以内就能达到一个流畅的画面。 那么如果操
2016-09-13 14:42:56 2484
转载 Android MultiDex实践:如何绕过那些坑?
前言Android应用65k方法数的限制一直为广大开发者所诟病,在应用功能越来越丰富、各种开源库越来越多的今天,65k方法数瓶颈俨然已是一大绊脚石。关于65k方法数限制的更多细节可以看下冯建的这篇文章:http://www.jayfeng.com/2016/03/10/由Android-65K方法数限制引发的思考/至于怎么解决这个问题,业内有包括
2016-09-11 21:33:35 894
转载 dex分包变形记
一、背景就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败。这一问题意味着项目将不能在 Android 3.0以下的手机上安装使用,对项目的发布有比较大的影响,所以必须尽快解决。INSTALL _ FAILED_DEXOPT导致无法安装的问题,从根本上来说,可能是两个原因造成的:(1)
2016-09-11 21:08:21 289
转载 android compile tasks中dex过程源码情景分析
0x00 前言MultiDex中出现的main dex capacity exceeded解决之道中我们知道main dex的class可以由maindexlist.txt指定,Android MultiDex机制杂谈中我们分析了google MultiDex机制中Secondary dex的install过程,那么,我们的app在android gradle build过程中,.
2016-08-19 14:18:00 355
转载 Android apk动态加载机制的研究
转载自:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客)前言我们知道,在activity内部访问资源(字符串,图片等)是很简单的,只要getResources然后就可以得到Resources对象,有了Resources对象就可以访问各种资源了,这很简单,不过本
2016-08-19 10:24:52 265
转载 Android MultiDex机制杂谈
0x00 为什么需要MultiDex如果你是一名android开发者,随着app功能复杂度的增加,代码量的增多和库的不断引入,你迟早会在5.0以下的某款设备上遇到:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536
2016-08-18 20:43:29 631
转载 MultiDex中出现的main dex capacity exceeded解决之道
0x00 前言随着业务的日益壮大,在集成构建实践中发现,dalvik上的MultiDex拆包频繁出现main dex capacity exceeded问题导致编译失败,对app的年末上线构成了严峻挑战。本文通过控制maindexlist中class的数量,达到减少MainDex体积,避免exceeded的目的。0x01 为什么会main dex capacity
2016-08-18 20:42:07 2073 2
转载 Android Dex分包之旅
原文出处:http://yydcdut.com/2016/03/20/split-dex/当程序越来越大之后,出现了一个 dex 包装不下的情况,通过 MultiDex 的方法解决了这个问题,但是在底端机器上又出现了INSTALL_FAILED_DEXOPT 的情况,那再解决这个问题吧。等解决完这个问题之后,发现需要填的坑越来越多了,文章讲的是我在分包处理中填的坑,比如 65536、L
2016-08-18 17:53:22 1010
转载 Android编译及Dex过程源码分析
0x00 概述上篇文章讲的是dex的安装过程。本文主要讲Android Build System的编译和dex过程。0x01 从BasePlugin入口说起1.1 BasePlugin入口Android Studio项目是基于Gradle构建的,module的build.gradle文件首部都会声明apply plugin: ‘com.android.app
2016-08-18 17:47:30 1606
转载 android compile tasks中dex过程源码情景分析
0x00 前言MultiDex中出现的main dex capacity exceeded解决之道中我们知道main dex的class可以由maindexlist.txt指定,Android MultiDex机制杂谈中我们分析了google MultiDex机制中Secondary dex的install过程,那么,我们的app在android gradle build过程中,.
2016-08-18 17:45:32 719
转载 各大热补丁方案分析和比较
最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed、AndFix、ClassLoader(来源是原QZone,现淘宝的工程师陈钟,在15年年初就已经开始实现)三种。前两个都是阿里巴巴内部的不同团队做的(淘宝和支付宝),后者则来自腾讯的QQ空间团队。开源界往往一个方案会有好几种实现(比如ClassLoader方案已经有不下三种实现了),但这三种方案的原理却徊然不同,那么
2016-08-15 21:22:49 440
转载 Instant Run工作原理及用法
前言看到一篇介绍Instant Run的文章,觉得蛮不错的,翻译记录一下,其中夹杂着自己的理解,科学上网的原文地址,最后附上Install Run的使用方法。(本文图片出处)tips:文中所有链接地址都要翻墙Instant RunInstant Run,是android studio2.0新增的一个运行机制,在你编码开发、测试或debug的时候,它都能显著减少你对当前应用的构建和部
2016-08-15 11:18:04 384
转载 Android 自定义Camera(一)
公司一直在做一款好玩的应用名叫Funny, 是一个以萌和可爱为主的图片社区,P图工具(欢迎大家下载玩耍哈),刚开始调用的相机是调用系统的相机, 这肯定不能满足一款应用的需求,So我开始了从零的自定义相机,发现github csdn等等上面关于自定义相机的资料不是很多,当然也有比较好的,这里我也是从开始能预览到后面的一些细节处理踩了一些坑,我会一步一步的分享粗来下面就开始从头开始做个自己的相机吧。
2016-08-05 16:04:46 242
转载 配置android app 方法数超过65k问题
随着android平台的增长,同样你的应用也在迭代中,当你的app或者你应用的库到达一定的规模时,当我们build的时候很容易达到android的65k限制,早期build时的错误提示如下Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536最近几个版本
2016-07-11 19:02:43 402
转载 浅谈Linux下CPU利用率和CPU负载
在Linux/Unix下,CPU利用率(CPU utilization)分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。(上述代码中使用的方法为:1 - CPU空闲运行时间/总运行时间 ,与这个计算方法原理上是一样的) 在Linux的内
2016-06-29 11:15:36 13105
转载 如何查看linux系统CPU利用率
当linux系统被某一个进程占用时,它无法处理其它进程的请求。余下等待处理的请求必须等到CPU空闲。这个时候,系统会变得很慢。以下命令将能够帮助你识别CPU的利用率,从而解决与CPU相关的问题。 查明CPU利用率是一项重要的任务。linux系统附带了报告CPU利用率的各种工具。利用这些工具,你将可以查明: *CPU利用率 *显示每一个CPU的利用率 *了解系
2016-06-29 11:08:59 518
转载 uptime详解,最通俗的说明了cpu平均负载
今天又个网友问uptime的三个平均负载值具体要怎么理解,发现要自己解释还真不知道怎么表达~~~~,下面到网上找了篇文章给大家分享: uptime命令,有两大用处,一个是看您的机器的运行时间,另一个就是看看您的cpu 负载如何? uptime 10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10,
2016-06-29 10:59:53 3798
转载 Android 系统稳定性 - ANR(三)
1.4 如何避免ANR 1.4.1 ANR发生在主线程,不要阻塞主线程 Android应用程序的所有标准组件全部运行在一个单一的主线程中,在主线程中所做的任何耗时的操作都有可能造成ANR,因为这些耗时的操作会使得主线程没有机会处理用户输入事件或者广播事件。 因此在主线程中执行的任何函数所做的工作都应该尽可能的少,特别是对于Activity的生命周期函数来
2016-06-25 16:38:31 229
转载 Android 系统稳定性 - ANR(二)
引起ANR问题的根本原因,总的来说可以归纳为两类:应用进程自身引起的,例如:主线程阻塞、挂起、死循环应用进程的其他线程的CPU占用率高,使得主线程无法抢占到CPU时间片其他进程间接引起的,例如:当前应用进程进行进程间通信请求其他进程,其他进程的操作长时间没有反馈其他进程的CPU占用率高,使得当前应用进程无法抢占到CPU时间片
2016-06-25 16:37:37 465
转载 Android 系统稳定性 - ANR(一)
如果你是一个Android应用程序开发人员,你的人生中不可避免的三件事情是:死亡、缴税和ANR。这么说是夸张了,但是由于Android本身的设计,以及应用程序和系统在开发过程中的缺陷,经常会在测试过程中遇到各种各样的ANR问题。在功能性的测试中还少一些,主要是在压力测试中(例如Monkey测试)会遇到非常多的ANR问题。本章的目的就是汇总笔者在工作中遇到的各种ANR问题,将其归纳总结出一套分析和处
2016-06-25 16:36:15 306
转载 WireShark使用方法及相应过滤规则
From: http://blog.csdn.net/xmphoenix/article/details/6546022 http://www.seanyxie.com/wireshark%E5%8C%85%E8%BF%87%E6%BB%A4%E8%AF%AD%E6%B3%95/ Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提
2016-06-23 14:38:21 3057
转载 Android M新特性Doze and App Standby模式详解
作者:MagiLu链接:https://zhuanlan.zhihu.com/p/20323263来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Optimizing for Doze and App Standby1. 从Android6.0开始,Android提供了两种省电延长电池寿命的功能:Doze和App Standby;2. 表现
2016-06-05 15:13:47 330
转载 Android 6.0新特性之Doze模式
简介从Android 6.0(API level 23)开始,Android提出了两个延长电池使用时间的省电特性给用户。用户管理可以在没有充电的情况下管理app的行为。当用户一段时间没有使用手机的时候,Doze模式通过延缓app后台的CPU和网络活动减少电量的消耗。App Stanbdy延缓用户最近没有使用app的后台网络活动。Doze和App Stanbdy管理所有在Androi
2016-06-05 15:11:51 618
转载 Google《Android性能优化》学习笔记电量
电量篇1) Understanding Battery Drain手机各个硬件模块的耗电量是不一样的,有些模块非常耗电,而有些模块则相对显得耗电量小很多。电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情。唯一可行的方案是使用第三方监测电量的设备,这样才能够获取到真实的电量消耗。当设备处于待机状态时消耗的电量是极少的,以N
2016-05-28 16:30:23 277
转载 Android应用开发笔记:JNI的崩溃捕获及google-breakpad的使用
我们在进行Android的ndk开发时,由于C代码不好调试,我们往往采用日志记录的方式进行跟踪调试代码,比较麻烦,而且一旦C代码crash,很难直接定位到哪里出了问题。这里作者分享一个开源工程【 google-breakpad 】的使用,希望能对大家的C代码调试增加一点思路。备注:1)由于google-breakpad的分析对平台有兼容性要求,作者在ubuntu13.10 x6
2016-05-19 22:13:47 4046
转载 基于 Facebook Redex 实现 Android APK 的压缩和优化
最近 Facebook 开源了一个名为 Redex[1] 的工具包,专门用于 Android 字节码的优化,经过 Redex 转换后的 APK,体积变得更小,运行速度变得更快。Redex 基于管道的方式来优化 Android 的 .dex 文件,一个源 .dex 文件通过管道进行一系列的自定义转换后,将得到一个优化的 .dex 文件。接下来将带大家简单快速的了解 Redex 是什么,以及它的基
2016-05-05 09:31:30 1134
转载 代码规范和Android项目中的一些可用工具
这里主要讲一下关于代码规范的相关问题,和在Android项目中如何利用一些工具进行规范和检查。代码规范不是一个Android项目特有的问题,所以前部分内容是不单针对Android的。什么是代码规范?代码规范一般是指在编程过程中的一系列规则规范。一般来说代码规范可以分为两种。一是编程语言本身在设计时所规定的一些原则,这类规则大部分都是强制的,像Python里用缩进表示
2016-05-05 09:12:03 468
转载 这些小工具让你的 Android 开发更高效
http://mp.weixin.qq.com/s?__biz=MzA3MjEyNTE4MQ==&mid=2652724856&idx=1&sn=3b0f805d3ef8c5ec3577619a0f119392&scene=0#wechat_redirect在做 Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手
2016-05-05 09:11:10 405
转载 Android应用开发性能优化完全分析
1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也
2016-04-14 16:19:36 422
SourceInsight
2014-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人