原创 Android應用開發之BitmapFactory.Options詳解

由於Android對圖片使用內存有限制,若是加載幾兆的大圖片便內存溢出。Bitmap會將圖片的所有像素(即長x寬)加載到內存中,如果圖片分辨率過大,會直接導致內存溢出(java.lang.OutOfMemoryError),只有在Bitm

原创 Android---認識進程與IPC架構

1、什麼是IPC通信 IPC(Inter-Process Communication)通信,是跨越兩個不同進程之間的通信一般而言,一個Android應用程序裏的各個組件(如activity、service)都在同一個進程裏執行。這種在同一

原创 Android實現滑動方式彙總

一、Layout方法 在view繪製的時候會調用onLayout()方法來設置顯示的位置,同樣可以通過修改View的left、top、right、bottom四個屬性來控制View的座標。在每次回調onTouchEvent的時候,我們都獲

原创 Thread.UncaughtExceptionHandler捕獲未知異常

在Android開發中,常常會出現uncheched Exception 導致程序的crash,爲了提供良好的用戶體驗,並對出錯的信息進行收集,以便對程序進行改進,提高程序的健壯性。因此,常使用Thread.UncaughtExcepti

原创 重構改善即有代碼的設計

(一)重構原則 1、何謂重構 對軟件內部結構的一種調整,目的是在不改變軟件可觀察行爲的前提下,提高其可理解性,降低其修改成本。 另一種解釋是:使用一系列重構手法,在不改變軟件可觀察行爲的前提下,調整其結構。 重構不止是代碼整理,它提供

原创 設計模式:工廠方法

工廠方法模式的定義定義一個用於創建對象的接口, 讓子類決定實例化哪一個類。 工廠方法使一個類的實例化延遲到其子類。工廠方法模式的通用類圖如圖所示。在工廠方法模式中, 抽象產品類Product負責定義產品的共性, 實現對事物最抽象的定義;

原创 設計模式:策略模式

定義 策略模式是一種比較簡單的模式:定義一組算法,將每個算法封裝起來,並且使他們之間可以互換。 策略模式的通用類圖: 策略模式使用的是面向對象的繼承和多態機制,非常容易理解和掌握, Context封裝角色也叫上下文角色,起承上啓下

原创 ArrayList源碼分析

ArrayList是基於數組實現的,是一個動態數組,其容量能自動增長,類似於C語言中的動態申請內存,動態增長內存。 ArrayList不是線程安全的,只能在單線程環境下,多線程環境下可以考慮用collections.synchronize

原创 設計模式:6大設計原則

單一職責原則 單一職責原則(Single Responsibility Principle,簡稱SRP) 定義:應該有且僅有一個原因引起類的變更。 單一職責原則要求一個接口或類只有一個原因引起變化,也就是一個接口或類只有一個職責。 優點:

原创 Mac下PHP Fatal error: Class 'Memcache' not found

這幾天開發PHP Memcache遇到了這個奇葩的問題。Memcache環境安裝成功但是運行代碼總是報錯 $mem = new Memcache(); $mem->connect('127.0.0.1',11211); $mem->set

原创 設計模式:模板方法模式

定義 定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 模板方法的通用類圖如下圖所示: 模板方法非常簡單,僅僅使用了Java的繼承機制,但它是一個應用非常廣泛的模式,

原创 Android7.0適配總結

一、權限更改 對於面向 Android 7.0 的應用,Android 框架執行的 StrictMode API 政策禁止在您的應用外部公開 file:// URI。如果一項包含文件 URI 的 intent 離開您的應用,則應用出現故障

原创 MVC、MVP、MVVM

MVC MVC,Model View Controller,是軟件架構中最常見的一種框架,簡單來說就是通過controller的控制去操作model層的數據,並且返回給view層展示,具體見下圖 當用戶出發事件的時候,view層會發送指

原创 設計模式:適配器模式

定義 將一個類的接口變換稱客戶所期待的另一種接口,從而使原本接口不匹配而無法在一起工作的兩個類能夠在一起工作。 適配模式通用類圖: 適配器模式就是把一個接口或類轉換成其他的接口或類,從另一個方面來說,適配器模式就是一個包裝模式,它把Ad

原创 Spring(一):HelloWord

概述 Spring 是最受歡迎的企業級 Java 應用程序開發框架。數以百萬的來自世界各地的開發人員使用 Spring 框架來創建好性能、易於測試、可重用的代碼。 Spring的用途不僅僅限於服務器端的開發。從簡單性、可測試性和鬆耦合性角