首页 > 其他 > 详细

知识概念

时间:2015-06-18 23:34:48      阅读:284      评论:0      收藏:0      [点我收藏+]

ACE:对Socket API的面向对象工具开发包。

C++11:标准为C++编程语言的第三个官方标准 。

Clang:C、C++、Objective-C、Objective-C++的轻量编译器。

Valgrind:内存调试泄漏检测以及性能分析工具。

Cppcheck:是一种C/C++代码缺陷静态检查工具。

doxygen :为许多种语言编写的程序生成文档的工具。

Boost库:是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。

gtest:是Google开源的C++单元测试框架 常见测试框架:gtest,boost:test

OpenOffice.org: 跨平台的办公室软件套件,能在 Windows、Linux、MacOS X (X11)、和 Solaris 等操作系统上执行。

Git:分布式的版本控制系统,用作Linux内核代码的管理。

Red5:基于Java的开源流媒体服务器。使用RTMP作为流媒体传输协议,这与FMS完全兼容。实时录制实时播放。

tcpdump、wireshark:网络抓包及协议分析工具。

protocolbuffer:一种数据交换的二进制格式,它独立于语言平台。比使用 xml 进行数据交换快许多,可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。

thrift:软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,构建在 C++, Java, Python这些编程语言间无缝结合的、高效的服务。

Libevent:是一个用C语言编写的、轻量级的开源高性能网络库。

Django、Tornado、web.py是Python web框架, 常用框架:libevent/thrift/protocolbuffer、gunicorn/gevent/web.py、nginx/phpfpm/ci Squid一般被当作代理服务器使用,也可以被当作Web加速器来使用。

 

 

音视频信源编码标准:MPEG-2、MPEG-4、MPEG-4AVC、AVS,AAC、Opus。 图像处理算法如去除噪声、锐化、分离、复原、提取、增强、拼接、融合,目标检测跟踪处理。

OpenCV:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。

OpenGL : Open Graphics Library OpenCL = Open Computing Language  OpenCL 的计算结果可以直接拿到 OpenGL 去做渲染 。

OTT:Over The Top,意指互联网公司绕过运营商,发展基于开放互联网的各种视频及数据服务业务。一是即时通讯,网络通话,互联网电视盒子。

OpenGL ES: OpenGL for Embedded Systems 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。

mp3:MPEG1的官方编码格式。

AAC:是MPEG2和MPEG4的官方编码格式。

RTP/RTCP/RTSP:(Realtime Transport Potocol 实时传输协议)。Realtime Transport Control Potocol 实时传输控制协议。RealTime Streaming Potocol 实时流协议。

SIP(Session Initiation Protocol):是一个应用层的信令控制协议。

FFmpeg:是用于录制、转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库。

VLC:多媒体播放器开源框架。

Vitamio: 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。

HLS:Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现。

XMPP:(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。       它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。

DirectShow:是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM(Component Object Model)的流媒体处理的开发包,9.0之前与DirectX开发包一起发布,之后包含在windows SDK中。

WebRTC:网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术。是Google于2011年6月3日开源的即时通讯项目,旨在使其成为客户端视频通话的标准。

SIP和XMPP都是应用层的协议,主要用来在互联网上发送语音和即时通信IM。RFC 3521定义了SIP,RFC3920定义了XMPP。XMPP来自即时通信系统,而SIP类似语音和视频通信。XMPP增加了Jingle扩展协议来支持面向连接的业务,如语音和视频;而SIP增加了SIMPLE协议来支持即时通信业务。

 

 

 

 

UI有三种:  传统UI、以及在此基础上延伸出来的标准库,例如BCG ,office的界面,那可能BCG非常适合。Direct UI QQ这样的界面可能就是 Direct UI 更合适。  Web UI 而这个里面又分为很多种,有HTMLayout这样使用了HTML,CSS的语法但本质还是Direct UI的引擎,也有使用IE内核等传统浏览器引擎的方法,如果使用CEF,或者IE10内核还可以支持HTML5。   Direct UI的子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。不使用Win32标准控件,所有的控件都是使用GDI绘制在窗口上的。 WPF,QT,XAML开发里面都植入了DUI理念,DUI已经成为当前界面开发的隐形标准。Duilib是开源DUI界面库。 libuv 采用了 异步 (asynchronous), 事件驱动 (event-driven)的编程风格, 其主要任务是为开人员提供了一套事件循环和基于I/O(或其他活动)通知的回调函数, libuv 提供了一套核心的工具集, 例如定时器, 非阻塞网络编程的支持, 异步访问文件系统, 子进程以及其他功能.

 

 

数据挖掘算法:决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。常用的算法有CHAID、CART、ID3和C4.5。

Ceph是统一分布式存储系统,具有优异的性能、可靠性、可扩展性。Ceph的底层是RADOS(可靠、自动、分布式对象存储),可以通过 LIBRADOS直接访问到RADOS的对象存储系统。

分布式文件系统:hdfs/fastdfs/sheepdog/ext4 数据分析统计工具:SPSS,minitab,JMP。 常用数据分析方法:聚类分析、因子分析、相关分析、对应分析、回归分析、方差分析; 数据分析常用的图表方法:柏拉图,直方图,散点图,鱼骨图,FMEA点图、柱状图、雷达图、趋势图。

Memcached: 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

Redis:开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。

Leveldb:google实现的高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 

Mongo DB: IT行业非常流行的一种非关系型数据库(NoSql), fatcache是基于SSD的memcached实现,利用SSD来扩大可以cache的item数量。

TFS(Taobao FileSystem):是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。

LVS和Nginx都可以用作多机负载的方案 大数据(包含NoSQL)技术包括Hadoop、Spark、HBase、Redis和MongoDB等 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

消息中间件:是一种由消息传送机制或消息队列模式组成的中间件技术,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 有三种MQ  ,JMS和RV 。

hbase,mongodb,redis:都属于nosql型存储方案。在实际的项目实践上看,他们的系统存储及处理的数量由大到小。HBase基于列存储,提供<key, family:qualifier, timestamp>三项坐标方式定位数据,由于其qualifier的动态可扩展型(无需schema设计,可存储任意多的qualifier),特别适合存储稀疏表结构的数据(比如互联网网页类)。HBase不支持二级索引,读取数据方面只支持通过key或者key范围读取,或者全表扫描。 MongoDb在类SQL语句操作方面目前比HBase具备更多一些优势,有二级索引,支持相比于HBase更复杂的集合查找等。BSON的数据结构使得处理文档型数据更为直接。MongoDb也支持mapreduce,但由于HBase跟Hadoop的结合更为紧密,Mongo在数据分片等mapreduce必须的属性上不如HBase这么直接,需要额外处理。 HBase与Mongodb的读写性能正好相反,HBase写优于随机读,MongoDB似乎写性能不如读性能。 Redis为内存型KV系统,处理的数据量要小于HBase与MongoDB 。

嵌入式Chromium框架(简称CEF) :开源项目,它主要目的是开发一个基于Google Chromium的Webbrowser控件。支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去。

Hadoop:是一种分布式数据和计算的框架。Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce 引擎,Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase基本涵盖了Hadoop分布式平台的所有技术核心。

 

 

 

游戏 MMORPG: 大型多人在线角色扮演游戏。Massive(或Massively)Multiplayer Online Role-PlayingGame。Go语言开发。

cocos2d:基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。关注焦点放在游戏设置本身,而不必消耗大量时间学习晦涩难懂的OpenGL ES。 Cocos2d-x :支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8. Lua 是一个小巧的脚本语言。很多应用程序、游戏使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。

D3D(Direct3D ):微软为提高3D游戏在Windows中的显示性能而开发的显示程序接口,提供了丰富的3D功能库,是游戏广泛采用的标准。

ARPG:动作角色扮演类游戏。

 

 

 云计算平台:有Amazon公司的EC2和S3,Google公司的Google Apps Engine, IBM公司的Blue Cloud,Microsoft公司的Windows Azure,     Salesforce公司的Sales Force, VMware公司的vCloud,Apache软件开源组织的Hadoop。

前端 Flex :开源框架,构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器、桌面和操作系统。

Jquery:继prototype之后又一个优秀的Javascript库。它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器。

Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。

OpenStack是一个开源的云计算管理平台项目 Bugzilla 是一个开源的缺陷跟踪系统,是专门为Unix定制开发的。

Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统。

  xen和kvm,是开源免费的虚拟化软件;vmware是付费的虚拟化软件。

Cobbler是一个快速网络安装linux的服务。

Cgroup是将任意进程进行分组化管理的Linux内核功能。

libvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口。

Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署web应用。

puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。 Chef是配置管理软件。

 

 

 

 

混合模式移动开发:采用 HTML5+CSS3+JavaScript技术实现,致力于跨平台开发的产品级框架。 PhoneGap、Titanium 和Rhodes 便是当下发展较为成熟的三款开发框架。

SQLite数据库:开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。允许你浏览Android上SQLite数据库。你可以选择从以下三种方法打开数据库。1.打开数据库文件直接。2.发送一个意图和内容提供商的uri。3.发送一个意图和数据库文件的完整路径。

JSON(JavaScript Object Notation) :是一种轻量级的数据交换格式.使用 JavaScript 语法来描述数据对象,独立于语言和平台。

Volley:是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。特别适合数据量不大但是通信频繁的场景。

android 网络编程访问网络6种方式。

1)针对TCP/IP的Socket、ServerSocket 。

2)针对UDP的DatagramSocket、DatagramPackage。这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有一点与普通互联网应用有所差异的。

3)针对直接URL的HttpURLConnection。HttpClient。

4)Google集成了Apache HTTP客户端,可使用HTTP进行网络编程。

5)使用WebService。Android可以通过开源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice。

6)直接使用WebView视图组件显示网页。基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

linux进程间通信:管道,消息,信号,命名管道,消息队列,信号量,共享内存,socket。

Android进程间通信:还有独特的binder,因为解包复杂,引入AIDL(android interface description language)根据描述生成stub代码。

Android线程涉及的技术有:Handler;Message;MessageQueue;Looper;HandlerThread 终端信号经传输到智能电视、电视盒的技术有三种:DLNA、AirPlay、Miracast。

ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。 ADT插件DDMS(Dalvik Debug Monitor Service)在Eclipse上轻松地调试Android程序。

Android设备上的隐私安全问题可在Native层面,我认为可行的方案是对电话、短信的运行库so进行Hook,如果注入自己的so到上述进程后,并通过dlopen()和dlsym()获取原有API地址,替换原有API地址为自己so中的API地址就可以达到Hook的目的。

Android Studio 提供了集成的 Android 开发工具用于开发和调试。 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

android有六种进程。内存回收机制根据阀值统一管理内存回收。

JNI即 Java native intereface,为Java应用程序提供调用本地方法的接口,JNI的首要目标在以库文件的形式调用本地方法,在WIndows下为DLL,在UNIX下为SO。

NDK使得在android中,java可以调用C函数库。NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。

MDM (Mobile Device Management )是企业IT 向移动互联网过渡的平台技术,帮助企业将IT管理能力从传统的 PC 延伸到移动设备甚至 移动应用APP 。

MAM(移动应用管理)、MCM(移动内容管理)BYOD(自带设备办公)。

 

知识概念

原文:http://www.cnblogs.com/lilyl/p/4587256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!