原创 闡述線程狀態之間的關係

線程的狀態分爲:新建狀態、就緒狀態、運行狀態、阻塞狀態、死亡狀態。我找到一張圖片來描述線程的這5個狀態,這樣看起來更形象。 下面分別闡述。 新建狀態 當使用new創建一個線程時,new Thread(r),這個時候,線程是處理新建狀

原创 死鎖

什麼是死鎖 指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。 死鎖原因 系統資源不足 資源分配不當 進程運行的順序不合適 死鎖的條件 操作系統上說,產生死鎖的

原创 關於java中幾個CP的一點說明--stringBuilder和stringBuffer與hashTable和hashMap

java中的幾個常見的CP,經常會出現在面試中,下面來總結下: CP 1 stringBuffer: 支持併發操作,線性安全的,適 合多線程中使用 stringBuilder: 不支持併發操作,線性不安全的,不適合多線程中使用 意味着

原创 Android性能優化(11-16)

Google發佈了包含16個短視頻的Android性能優化典範專題,詳解Android系統中有關性能問題的底層工作原理,並介紹瞭如何通過工具找出性能問題以及提升性能的建議。本文作者對這些問題和建議進行了總結梳理。 Performanc

原创 簡要的談談equals與hashcode

如何判斷java兩個對象相同呢? 首先說說這個問題的由來。我們知道在java中有兩個很重要的數據結構,一個是hashset,另一個是hashmap。hashset要求不能出現相同的對象,hashmap要求不能出現相同的key。所以怎麼判

原创 Android性能優化(5-10)

2015年伊始,Google發佈了關於Android性能優化典範的專題, 一共16個短視頻,每個3-5分鐘,幫助開發者創建更快更優秀的Android App。課程專題不僅僅介紹了Android系統中有關性能問題的底層工作原理,同時也介紹

原创 對Too many classes in --main-dex-list,main dex capacity exceded提供簡單幾種方案。

對Too many classes in –main-dex-list,main dex capacity exceded提供簡單幾種方案。 問題: 這個問題出現在使用分包庫後,main-dex裏面的方法數超出。 gradle p

原创 文章標題

通過重寫FrameLayout 中boolean fitSystemWindows(Rect insets)方法來實現ActionBar的Overlay模式不遮蓋頂部的設計 通過重寫FrameLayout 中boolean fitSy

原创 直接拿來用!最火的Android開源項目(完結篇)

摘要:截至目前,在GitHub“最受歡迎的開源項目”系列文章中我們已介紹了40個Android開源項目,對於如此衆多的項目,你是Mark、和碼友分享經驗還是慨嘆“活到老要學到老”?今天我們將繼續介紹另外34個Android開源項目。

原创 Material Design系列之動畫效果

本文系簡單翻譯,如有錯誤,歡迎諶正! 真實的動效 在Material Design的世界中,動效不僅僅因爲美學意義而存才,同時是爲了構建有意義的空間關係、凸顯功能、維繫整個系統的一致性。因此需要充分理解物質是有形的,繼而才能從容處理物體的

原创 Fragment系列之Transactions.commit和Activity的狀態

關於java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState出現原因與解決方法的幾點總結 問題描述:我們在使用Fragmen

原创 從重載與重寫來看OOP的三大特性:繼承、多態、封裝。

什麼是重載 具有不同參數列表的同名方法,稱爲重載。類中方法重載的判斷標準:參數的類型或參數的個數不同,方法的返回值可以相同也可以不同。 重載的規則: 1. 必須具有不同的參數列表(包括參數類型與參數個數); 2. 可以有不同的返回

原创 直接拿來用!最火的Android開源項目(二)

摘要:GitHub上的開源項目不勝枚舉,通過這些項目,也能讓開發者在應用開發過程中事半功倍,作爲開發者的你,在用這些開源項目嗎?今天我們將介紹另外20個在GitHub上備受歡迎的Android開源項目,你準備好了嗎? 在《直接拿來用

原创 android webView webchromeclient 本地圖片資源

解決android webView openFileChooser 不能調用本地文件 其實主要問題是出現在webChromeClient 的身上,通過查看webChromeClient的源代碼我我們知道里面有個openFileChoose

原创 對java中synchronized的認識

使用情況的歸納 synchronized的使用分爲兩種情形,一種是synchronized方法,另外一種是synchronized代碼塊。 synchronized方法 synchronized方法是控制對成員變量的訪問,這裏又分別分爲對