原创 [概念]PCM文件&WAV文件頭

PCM簡介 PCM(Pulse Code Modulation),脈衝編碼調製。人耳聽到的是模擬信號,PCM是把聲音從模擬信號轉化爲數字信號的技術。原理是用一個固定的頻率對模擬信號進行採樣,採樣後的信號在波形上看就像一串連續的幅值不一的脈

原创 [架構]接口行爲的擴展

接口行爲的擴展,經常面臨這樣的問題,之前已經定義好一個接口,且該接口已經在很多地方使用到,現在我們想讓新增新方法。 如下圖所示,已經定義了接口IVedioMedia,已經有RM和Mpeg實現了它。現在如果在IVedioMedia接口中新增

原创 [iOS]蘋果審覈規則

不能強制用戶註冊 不能強制收集用戶手機號 不能使用蘋果不允許的權限 所有蘋果手機內提供的服務,必須使用蘋果內購 內購的類型一定要使用準確 宣傳圖一定要是應用的實際截圖 適配ipv6網絡 適配最新版本的iOS系統 各種尺寸的icon,需要保

原创 [設計模式]裝飾、組合、職責鏈模式

模式介紹 裝飾模式:相當於是疊羅漢,將多個行爲有序的串聯起來,最終得到結果。(通過下一個行爲裝飾上一個行爲) 組合模式:使得用戶對單個對象和組合對象的使用具有一致性 責任鏈模式:使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間

原创 [架構]MVC/MCP/MVVM三個框架模式

MVC框架模式 MVC是一種框架模式而非設計模式,GOF把MVC看作是3種設計模式:觀察者模式、策略模式與組合模式的合體,而核心是觀察者模式。 MVC框架模式圖角色說明模式說明當用戶出發事件的時候,view層會發送指令到controlle

原创 [RTMP協議]常用直播流地址

RTMP、RTSP、HTTP這三個協議都屬於互聯網 TCP/IP 五層體系結構中應用層的協議。理論上這三種都可以用來做視頻直播或點播。但通常來說,直播一般用 RTMP、RTSP。而點播用 HTTP。 播放軟件推薦:VLC 要播放視

原创 [多線程]C++11多線程-條件變量(std::condition_variable)

互斥量(std::mutex)是多線程間同時訪問某一共享變量時,保證變量可被安全訪問的手段。在多線程編程中,還有另一種十分常見的行爲:線程同步。線程同步是指線程間需要按照預定的先後次序順序進行的行爲。C++11對這種行爲也提供了有力的支持

原创 [基礎概念]UML類之間的關係

類之間的關係 類間關係有很多種,在大的類別上可以分爲兩種:縱向關係,橫向關係。縱向關係就是繼承關係。橫向關係按照UML的建議大體可以分爲四種:   UML表示法 關係 依賴(Dependency) 虛線+箭頭( - - 

原创 [設計模式]工廠模式與抽象工廠模式

下面例子中鼠標,鍵盤,耳麥爲產品,惠普,戴爾爲工廠。 簡單工廠模式 簡單工廠模式不是 23 種設計模式裏的一種,簡而言之,就是有一個專門生產某個產品的類。 比如下圖中的鼠標工廠,專業生產鼠標,給參數 0,生產戴爾鼠標,給參數 1,生產惠普

原创 [多線程]C++11多線程用法整理

C++11中加入了<thread>頭文件,此頭文件主要聲明瞭std::thread線程類。C++11的標準類std::thread對線程進行了封裝,定義了C++11標準中的一些表示線程的類、用於互斥訪問的類與方法等。應用C++11中的st

原创 [設計模式]一兩句話的設計模式

創建型 速記口訣: 單抽工建原 單例:只需一個實例時考慮。要麼沒有,要麼只有一個。 工廠方法:在允許不修改工廠類的前提下添加新類。 抽象工廠:當工廠方法無法滿足多系列問題時,再重構爲抽象工廠。提供相關性接口,無需具體指定 建造者:多個部件

原创 [C++]智能指針unique_ptr,shared_ptr,weak_ptr

C++中對於動態內存的使用非常嚴格,一次申請必須對應一次釋放,否則將造成內存泄漏。這也要求程序員格外小心,比如如下示例: void getStr() {     std::string * pstr = new std::string(

原创 [網絡知識]TCP協議中的粘包與拆包

在平時客戶端socket開發中,如果客戶端連續不斷的向服務端發送數據包時,服務端接收的數據會出現兩個數據包粘在一起的情況,這就是TCP協議中經常會遇到的粘包以及拆包的問題。 我們都知道TCP屬於傳輸層的協議,傳輸層除了有TCP協議外還有U

原创 [基礎概念]這次,徹底弄懂接口及抽象類

抽象類及其作用 抽象類,顧名思義,即類的抽象。 在介紹面向對象概念時,我們知道類是客觀事物的抽象,而抽象類又是類的進一步抽象,該怎麼理解呢? 舉個例子,我們定義若干個類 class BMW、class Benz、class Audi,分別

原创 [Android]Activity生命週期之三大循環|五種狀態|七種方法

生命週期三大循環 我們能監控Activity生命週期中的三個嵌套循環(monitor three nested loops in the activity lifecycle) 1.Activity的entire lifetime(全部