原创 深入理解Java內存模型系列(四)——volatile

volatile的特性 當我們聲明共享變量爲volatile後,對這個變量的讀/寫將會很特別。理解volatile特性的一個好方法是:把對volatile變量的單個讀/寫,看成是使用同一個監視器鎖對這些單個讀/寫操作做了同步。下面我們通過

原创 深入理解Java內存模型系列(六)——final

與前面介紹的鎖和volatile相比較,對final域的讀和寫更像是普通的變量訪問。對於final域,編譯器和處理器要遵守兩個重排序規則: 在構造函數內對一個final域的寫入,與隨後把這個被構造對象的引用賦值給一個引用變量,這兩個操作之

原创 Android Studio實用插件集合

現在Android的開發者基本上都使用Android Studio進行開發(如果你還在使用eclipse那也行,畢竟你樂意怎麼樣都行)。使用好Android Studio插件能大量的減少我們的工作量。 1.GsonFormat 快速將js

原创 HTTPS工作原理和TCP握手機制

1、HTTPS的工作原理     HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。TLS/SSL協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品

原创 Android Camera搭配SurfaceView開發相機基礎

轉自:http://my.eoe.cn/761385/archive/4226.html Android提供了Camera來控制拍照,步驟如下: (1)調用Camera的open()方法打開相機。 (2)調用Camera的getPar

原创 Android調用Camera,獲取預覽幀中的圖像

轉載自http://blog.csdn.net/u013869488/article/details/49853217 1:說明 Android開發實現Camera自定義的話,也並不是件難事,主要步驟如下: 打開相機,即實例化Camer

原创 深入理解Java內存模型系列(一)——基礎

併發編程模型的分類 在併發編程中,我們需要處理兩個關鍵問題:線程之間如何通信及線程之間如何同步(這裏的線程是指併發執行的活動實體)。通信是指線程之間以何種機制來交換信息。在命令式編程中,線程之間的通信機制有兩種:共享內存和消息傳遞。 在共

原创 深入理解Java內存模型系列(七)——總結

處理器內存模型 順序一致性內存模型是一個理論參考模型,JMM和處理器內存模型在設計時通常會把順序一致性內存模型作爲參照。JMM和處理器內存模型在設計時會對順序一致性模型做一些放鬆,因爲如果完全按照順序一致性模型來實現處理器和JMM,那麼很

原创 Ubuntu/Android常用命令記錄 更新中......

常用Android命令 將logcat中的內容輸出到文本文件中: 第一種事例:adb logcat > /sdcard/mylogcat.txt 第二種事例:adb logcat > D:/Temp/1.txt(1.txt必須存在,才能

原创 深入理解Java內存模型系列(五)——鎖

鎖的釋放-獲取建立的happens before 關係 鎖是java併發編程中最重要的同步機制。鎖除了讓臨界區互斥執行外,還可以讓釋放鎖的線程向獲取同一個鎖的線程發送消息。 下面是鎖釋放-獲取的示例代碼: class MonitorExa

原创 25匹馬通過賽跑來決出前三名,每輪最多5匹馬參賽,求最少需要幾輪?

25匹馬通過賽跑來決出前三名,每輪最多5匹馬參賽,求最少需要幾輪? 條件: 1、最多5匹馬一組,可以決出本組比賽的次序。 2、沒有計時工具,假設馬每輪的速度相同。 ===================================

原创 Android開發 ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled的理解

setHomeButtonEnabled這個小於4.0版本的默認值爲true的。 但是在4.0及其以上是false,該方法的作用:決定左上角的圖標是

原创 Android,在爭議中逃離 Linux 內核的 GPL 約束

Android,在爭議中逃離 Linux 內核的 GPL 約束 爲這個題材起名,我思考了許久,GPL 是著名的開放源代碼許可協議,Linux 內核開源項目正是在 GPL 的庇佑之下,十多年來在服務器、PC 端以及各種嵌入式設備上成績斐

原创 Android開發 Handler MessageQueue Looper消息循環原理分析

Handler概述 Handler在Android開發中非常重要,最常見的使用場景就是在子線程需要更新UI,用Handler來投遞消息到主線程執行UI更新操作。因爲Android系統的View是非線程安全的,所以需要在主線程更新UI。總的

原创 Android6.0以上系統搜索不到 藍牙BLE 設備問題

    最近開發一款軟件,一開始一切順利,但是在連接外圍BLE 設備時,發現需要Location的權限, <uses-permission android:name="android.permission.ACCESS_COARSE_LO