原创 我的安卓我的BLE4.0————祝福翔飛人

最近翔飛人退役了。 一直振翅的飛人最後還是落了地。傷病無情,英雄遲暮。祝福他換片天空再次起航ing。 前一陣子,被老闆叫去搞項目。 說是要用到藍牙,一琢磨,網上不多的是,下了一個藍牙聊天的demo,翻來覆去就這點東西嘛,還不是小意思,搞了

原创 面試系列之HashMap原理

背景 源碼 總結 背景 有過Java編程經驗的大概都要這個印象:四大集合除了List之外,用的最多的集合非HashMap莫屬。雖然用的很多,但許多人包括我在內,未必能真正弄懂其原理。 前面的介紹,我們也知道,HashMap是

原创 面試系列之AsyncTask源碼深入解讀

前言 源碼 梳理 前言 安卓中經常會涉及到多線程問題,一般多用Handler+Thread的組合來解決。源碼中對其進行了精妙的封裝,於是有了AsyncTask。相對於Handler+Runnable來講,AsyncTask

原创 算法--查找--二分查找

昨天面試,突然被問到二分查找。原理都懂,實現其實也不算難,偏就沒寫出來,說起來真是一個大寫的尷尬... 想來還是算法底子太弱,痛定思痛,不如好好複習一下,那就從此處上路吧。 條件: (1)數據必須採用順序存儲結構;(2)數據必

原创 java動態代理實現

爲什麼要用動態代理 動態代理的實現 爲什麼要用動態代理 我們開發軟件的過程中,通常會有各種各樣的相同代碼重複出現。遇到這種情況,一般會有三種做法,最不可取的是一路“複製”,“粘貼”到底,寫起來挺爽,要是去維護,簡直是噩夢;稍有

原创 史上最全:ant多渠道打包安卓工程(一)

初識ant 網上看到一些說ant構建已經不太現實的言論,想想也是,google的android studio廣受歡迎,它推崇的gradle使用起來方便快捷,似乎已成主流,筆者確有體會。 回頭整理工程,心血來潮,想試試ant,竟然整

原创 Java類加載器(自定義類加載器)

爲什麼要有類加載器 類加載的過程 初識類加載器 類加載機制 自定義類加載器 爲什麼要有類加載器 我們知道java中所有的二進制文件,最後都是要放在jvm中解釋運行的。純粹的二進制文件,其實並沒有什麼卵用。jvm在第一次使用或者

原创 [轉]穩定排序和不穩定排序

這幾天筆試了好幾次了,連續碰到一個關於常見排序算法穩定性判別的問題,往往還是多選,對於我以及和我一樣拿不準的同學可不是一個能輕易下結論的題目,當然如果你筆試之前已經記住了數據結構書上哪些是穩定的,哪些不是穩定的,做起來應該可以輕鬆

原创 史上最全:ant多渠道打包安卓工程(二)

背景 上一篇我們講了如何利用ant來代替eclipse實現安卓工程的編譯簽名打包,這一篇重點來研究一下多渠道問題。 搞過移動開發的應該都知道,國內的安卓市場有成百上千個,我們的apk發佈之前,通常要爲每一個渠道打包出來一個獨一無二

原创 JAVA集合彙總

四大集合概述 Set集合 List集合 Queue集合 Map集合 重要的工具類:Collections 一些其他的接口 四大集合概述 與數組相比,集合最大的特點是具有映射關係,它裏面只能盛裝對象(對象的引用),而數組卻是什

原创 算法--查找--散列表查找

查找除了線性表的查找(順序、二分、分塊),樹上查找(BST、B-樹),還有一種散列查找。 相比於前兩種查找,散列表的查找效率驚人的高O(1),它採用的直接尋址技術,基本上就是實現了精準打擊,達到一擊而中的效果。 所謂的直接尋址技術

原创 BLE4.0藍牙開發的必經之路

最近,翔飛人退役了。 始終振翅的飛人最後還是落了地。傷病無情,英雄遲暮。祝福他換片天空再次起航ing。 前一陣子,被老闆叫去搞項目。 說是要用到藍牙,一琢磨,網上不多的是,下了一個藍牙聊天的demo,翻來覆去就這點東西嘛,還不是小

原创 java垃圾回收機制

垃圾回收的意義 java中的垃圾回收機制 對象在內存中的狀態 探祕finalize()方法 強引用、弱引用、軟引用、虛引用 垃圾回收的意義 也許是保護環境吧。 人類生活生產,總會產生各種各樣的垃圾,這些垃圾都怎麼處理?一般無外

原创 (筆記)內核之輸入法框架

IMF的本質 包含了虛擬鍵盤的系統級窗口,能處理虛擬按鍵的點擊事件,當然也能把字符傳遞到編輯框中 IMF的核心思想 採用Service運行具體的輸入法 在Service中創建窗口,把輸入的內容傳遞到編輯框中 常見的縮寫 IM

原创 Android進程間通信

前言 AIDL Messenger 前言 安卓開發中,提到進程間的通信,大部分人第一個想到的必是AIDL無疑。 可以理解,Android系統中,出於安全考慮,進程是每個應用的安全邊界。各個應用程序都運行在自己的進程裏,它們之間