原创 設計模式之責任鏈模式

什麼是責任鏈模式?在現實生活中,有很多請求並不是一個人說了就算的,例如面試時的工資,低於1萬的薪水可能技術經理就可以決定了,但是1萬~1萬5的薪水可能技術經理就沒這個權利批准,可能就需要請求技術總監的批准,所以在面試的完後,經常會有面試官說

原创 Android6.0運行時權限處理

概述從Android6.0(API23)開始,用戶可以在應用運行時向其授予權限,而不是在應用安裝時授予。 在Android6.0以前,應用安裝會給出應用聲明的權限列表,用戶如果要繼續安裝,就得接受全部的權限,讓用戶很無奈; 從Android

原创 在Android Studio中自定義代碼模板

概述我們在使用Android Studio創建Activity、Fragment等等的時候,都會使用Android Studio提供的模板來簡化我們創建的,使用模板時,我們只要做簡單的配置,Android就能爲我們生成相應的代碼,所以使用模

原创 設計模式之外觀模式

小編自從畢業後開始做軟件開發,做着做着發現不爽了,錢賺不了太多,頭髮也白了。於是拿着一點小資本,想着做點小生意。瞅着眼前的餐飲行業還不錯,於是打算開一家餐館。開參觀可不是一件容易的事,僅僅行政類的審批流程就不少。至少包括辦理衛生許可證,辦理

原创 RecyclerView性能優化

概述RecyclerView有着極高的靈活性,能實現ListView、GridView的所有功能。在日常開發中,使用非常廣泛,如果使用不當將會影響到應用的整體性能,所以有必要了解一下如何更高效的使用。數據處理與視圖綁定分離RecyclerV

原创 Redis命令:scan實現模糊查詢

1.前言從Redis v2.8開始,SCAN命令已經可用,它允許使用遊標從keyspace中檢索鍵。 對比KEYS命令,雖然SCAN無法一次性返回所有匹配結果,但是卻規避了阻塞系統這個高風險,從而也讓一些操作可以放在主節點上執行。使用場景:

原创 在Android項目中調用FFmpeg命令

概述FFmpeg,命令行非常強大。在PC機上,調用一行FFmpeg命令,就可以對視頻文件進行剪切、合併、轉碼等功能。本文將介紹如何在Android中調用FFmpeg命令行。編譯前面已經有兩篇文章介紹FFmpeg的編譯: Android ND

原创 在Android logcat中打印FFmpeg調試信息

概述在日常Android開發中,我們都是通過Logcat來查看日誌,但是將FFmpeg移植到Android上,無法在Logcat中查看調試信息而無法分析錯誤。本文將介紹如何配置來將FFmpeg的信息輸出到Logcat。avlogset_ca

原创 設計模式之原型模式(Prototype)

意圖:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。使用場景資源優化場景。類初始化需要消化非常多的資源,這個資源包括數據、硬件資源等。性能和安全要求的場景。通過 new 產生一個對象需要非常繁瑣的數據準備或訪問權限,則可以

原创 建造者模式(Builder Pattern)

目錄1. 介紹1.1 定義將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示1.2 主要作用在用戶不知道對象的建造過程和細節的情況下就可以直接創建複雜的對象。用戶只需要給出指定複雜對象的類型和內容; 建造者模式負責按順

原创 高效地加載Bitmap

概述現在的圖片是動輒幾M到幾十M,而系統分配給應用的內存有限,如果直接將原圖載入內存,這會導致Bitmap加載的時候很容易出現內存溢出(OOM)。 Bitmap高效加載的策略:根據圖片展示控件的尺寸,將圖片以一定的採樣率進行縮放後再加載。這

原创 關於三種工廠模式的總結

工廠模式分爲簡單工廠模式,工廠方法模式和抽象工廠模式,它們都屬於設計模式中的創建型模式。其主要功能都是幫助我們把對象的實例化部分抽取了出來,目的是降低系統中代碼耦合度,並且增強了系統的擴展性。本文對這三種模式進行了介紹並且分析它們之間的區

原创 HTTP協議簡介

1.HTTP協議簡介HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。HTTP是一個基於TCP/I

原创 ConstraintLayout(約束佈局)的使用

概述ConstraintLayout(約束佈局)的出現是爲了在Android應用佈局中保持扁平的層次結構,減少佈局的嵌套,爲應用創建響應快速而靈敏的界面。ConstraintLayout可以替代其他佈局。導庫implementation'c

原创 Httpclient核心架構設計

Http簡介通常,我們使用IE或者safari來訪問互聯網上的內容,只需要輸入資源地址,瀏覽器便會呈現給你想要的內容。這一切的背後,都是迄今爲止在計算機領域最成功的協議–http協議。Http協議分爲請求和響應,客戶端建立連接,接着發送請求