原创 模板方法——類行爲型模式

一、意圖 定義一個操作中的算法骨架,而將一些步驟延遲到子類中。TemplateMethod使得子類可以不改變一個算法的結構即可定義該算法的某些特定步驟。 二、適用性 一次性實現一個算法的不變的部分,並將可變的行爲留給子類來實

原创 使用Ubuntu16下載編譯Android6.0源碼

一、環境準備 本人使用VirtualBox安裝Ubuntu16系統。 1、安裝git、curl 2、使用curl下載repo。(repo實際是一個用來下載源碼的python腳本) 二、下載 1、創建存放源碼的目錄。 2

原创 策略模式——對象行爲型模式

一、意圖 定義一系列的算法,把他們一個個封裝起來,並且使他們可以相互替換。本模式使得算法可獨立於使用它的客戶而變化。 二、適用性 以下情況可使用Strategy模式 許多相關的類僅僅是行爲有異。“策略”提供了一種用多個行爲

原创 ReactNative開發——滑動組件

ReactNative開發——滑動組件 環境 window android react-native 0.45 ScrollView 介紹 ScrollView是一個可以滑動的組件,它內部可以是一個高度不受控制的View,但它自

原创 中介者模式——對象行爲型模式

一、意圖 用一箇中介對象來封裝一系列的對象交互。中介者使各個對象不需要顯示地互相引用,從而使其耦合鬆散,而且可以獨立地改變他們之間的交互。 二、適用性 在下列情況下使用中介者模式: 一組對象以定義良好但是複雜的方式進行通信

原创 備忘錄模式——對象行爲型模式

一、意圖 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可以將該對象恢復到原先保存的狀態。 二、適用性 以下情況使用備忘錄模式: 必須保存一個對象在某一時刻的(部分)狀態,這樣以後需

原创 訪問者模式——對象行爲型模式

一、意圖 表示一個作用於某對象結構中的各個元素的操作。它使得你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。 二、適用性 在下列情況下使用Visitor模式: 一個對象結構包含很多類,他們有不同的接口,而你想對

原创 Android使用系統API進行音視頻編碼

一、前言 上一篇文章我講到,我用libx264對視頻進行h264編碼效率非常低下,原因在於libx264採用的是軟編碼。於是我在網上搜索得知使用系統的API可以對視頻進行硬編碼,從而減少cpu的壓力,達到提高效率的作用。我寫了一

原创 解決Maven下載依賴慢的問題

使用Maven構建項目時,項目中有的依賴包可能下載的非常慢,我們可以通過配置鏡像來解決這個問題。 之前開源中國的那個好像已經關閉了,於是我找到了一個阿里的來解決。 在Maven的配置文件(%MAVEN%/conf/settin

原创 狀態模式——對象行爲型模式

一、意圖 允許一個對象在其內部狀態改變時改變它的行爲。對象看起來似乎修改了它的類。 二、適用性 在以下情況下可使用State模式: 一個對象的行爲取決於它的狀態,並且它必須在運行時刻根據狀態改變它的行爲。 一個操作中含有龐

原创 Android Studio 2.2 NDK開發 opencv 人臉識別

一、開發環境準備 1、Android Studio到 2.2版本,在sdk Manager中下載 ndk-bundle 和 cmake 2、下載OpenCV for Android 下載地址:http://opencv.org

原创 觀察者模式——對象行爲型模式

一、意圖 定義對象的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴它的對象都得到通知並被自動更新。 二、適用性 以下任意情況下可以使用觀察者模式: 當一個抽象模型有兩個方面,其中一個方面依賴另一個方面。將這二者

原创 Android使用libjpeg實現圖片壓縮

一、Android中使用的圖片壓縮庫 Android和IOS 中圖片處理使用了一個叫做skia的開源圖形處理引擎。他位於android源碼的/external/skia 目錄。我們平時在java層使用一個圖片處理的函數實際上底層

原创 使用librtmp推送AVC數據

一、前言 本文要講述的是將AVC(h264)數據推送到流媒體服務器。我的實現方法是:1先使用android自帶的API採集攝像頭數據,然後進行h264編碼。2、然後使用ndk開發將編碼後的數據通過librtmp發送出去。關於如何

原创 解決 javax.net.ssl.SSLHandshakeException異常

我在使用qq郵件服務器時發生瞭如下異常: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 通過加入VM options