原创 一切從android的handler說起(四)之postDelay原理

“ 閱讀本文大概需要4分鐘。”     和小張聊完了handler底層原理後,我跟小張說:你現在知道Android的UI線程是通過事件來驅動的了吧,有消息來才幹活,不然就睡大覺。 小張點了點頭,道:通過剛纔的瞭解,我對事件驅動模型的概念

原创 一切從android的handler說起(三)之UI線程爲何不卡頓

“ 閱讀本文大概需要4分鐘。”     和小張聊到興起,我就問了android面試界一個衆所周知的問題。   我:之前說到每個線程的looper都在不斷的從message queue裏取message來處理,那android系統是如何做

原创 一切從android的handler說起(二)之threadLocal

“ 閱讀本文大概需要2分鐘。”     看小張有些受驚,我打算換個新的角度。   繼續問道:剛纔說到每個線程只能有一個唯一的looper,你知道android是怎麼保證這一點的嗎? 小張眼睛躲避着我的視線,模糊的回答道:我好像記得有個t

原创 Android進程間通信總結

AIDL方式:1. 寫AIDL文件,其中有方法func1(), func2(), ..., funcN()2. 編譯後產生AIDL生成Interface IMyAidl.java implements IInterface, 內部有靜態a

原创 RxJava使用總結

一. 執行順序:1. 先執行doOnSubscribe(), 當有多個doOnSubscribe()方法時,則由下至上的順序執行,其執行所在線程由其後面的subscribeOn()來指定;若沒有subscribeOn()指定,則執行的線程

原创 java中的try-catch-finally執行順序你真的弄清楚了嗎?

轉載自http://blog.csdn.net/lu_ca/article/details/52184423 前言: java 中的異常處理機制你真的理解了嗎?掌握了嗎?catch 體裏遇到 return 是怎麼處理? finally

原创 MPAndroidChart MarkerView的精確點擊問題解決方案

說到在Android中畫圖,相信大家對MPAndroidChart不陌生,其功能強大,能畫出各種各樣非常絢麗的效果圖。但是近期公司的項目要求在markerview上添加一些按鈕,能夠直接在markerview上操作按鈕來直接對圖上的poi

原创 Android專家級別的面試總結

1.. 自定義View流程 onMeasure, onLayout, onDraw, 採用深度優先,因爲必須子view獲得測量結果,父view才能確定大小; 2.. 事件分發機制 https://www.cnblogs.com/aad

原创 Android 藍牙4.0 BLE 開發之請求同步實現篇 完全解析

開發過Android 藍牙4.0 BLE的同學都知道,Android的藍牙開發有非常多的坑,具體坑的集合可見我的前面一篇博客,《Android藍牙4.0 BLE開發坑總結》,其中不同機型之間的兼容性就是一個很令人頭疼的問題,很多問題究其原

原创 兩行代碼搞定發送 Retrofit GET/POST 請求

目前Android開發幾乎都離不開網絡請求,而很多Android App網絡框架都使用Retrofit來發送網絡請求和響應交互,其優點是一底層依賴了強大靈活的Okhttp,二是其符合標準的RESTFUL和後端交互更爽。 本身Retrofi

原创 自定義View總結

一. 自定義ViewGroup 1.. 自定義ViewGroup必須重寫onMeasure(int widthMeasureSpec, int heightMeasureSpec): a). 這是因爲ViewGroup是abstrac

原创 JVM內存分配以及存儲總結

最近看了一下JVM的內存分配,還是比較複雜的。這裏做個總結,首先一個common sense就是操作系統會爲每個java進程實例化一個jvm實例。jvm然後再來運行java程序,具體的過程就不多說了,簡單來說就是核心classloader

原创 java方法區究竟存儲了什麼?

首先要說明的是,此文章轉載自 http://blog.csdn.net/zzhangxiaoyun/article/details/7518917 謝謝作者。另外,這裏ps一下,Class對象是存放在堆區的,不是方法區!這點很多人容易

原创 java基礎類型的使用選擇

記住java一定要用double,就算數值不大也要用double。 瞭解java虛擬機的底層會知道,float放在內存中其實是當作double來處理的,它不會比double更節約內存資源,對應的double虛擬機會直接以double形式來

原创 Android藍牙4.0 BLE開發坑總結

onServicesDiscovered 回調裏不能直接執行 write /readDataFromCharacteristic() 或者 enableNotificationOfCharacteristic之類的,而要放到主線程裏執行