知識概念

ACE:對Socket API的面向對象工具開發包。php

C++11:標準爲C++編程語言的第三個官方標準 。前端

Clang:C、C++、Objective-C、Objective-C++的輕量編譯器。java

Valgrind:內存調試泄漏檢測以及性能分析工具。linux

Cppcheck:是一種C/C++代碼缺陷靜態檢查工具。android

doxygen :爲許多種語言編寫的程序生成文檔的工具。nginx

Boost庫:是一個可移植、提供源代碼的C++庫,做爲標準庫的後備,是C++標準化進程的開發引擎之一。web

gtest:是Google開源的C++單元測試框架 常見測試框架:gtest,boost:testredis

OpenOffice.org: 跨平臺的辦公室軟件套件,能在 Windows、Linux、MacOS X (X11)、和 Solaris 等操做系統上執行。算法

Git:分佈式的版本控制系統,用做Linux內核代碼的管理。sql

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-二、MPEG-四、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(自帶設備辦公)。

相關文章
相關標籤/搜索