原创 聯想拯救者安裝ubuntu無法連接網絡

原因:聯想網卡驅動與ubuntu驅動衝突,聯想的優先級排在第一且無法硬件開啓,高於ubuntu的優先級 解決方案: 第一:移除聯想的驅動優先級 sudo modprobe -r ideapad_laptop 第二:解鎖所有驅動 rf

原创 Android組件化方案思路

在進行app組件化之前我們要明白什麼是組件化?爲什麼要組件化? 什麼是組件化?爲什麼要組件化?     在項目的體系結構,代碼量,功能,邏輯等不斷的增長之後,項目的編譯,開發的協作,效率等都會變得毫無體驗。所以我們就要相處一個辦法來解決這個

原创 Apt實現一款緩存小框架

一款簡單的使用apt實現的緩存處理器,默認使用gson+sp實現,只需要編寫實體類,添加註解即可自動生成緩存代碼,無需做任何額外操作。 優點 1,將雜亂的配置文件以面向對象的方式管理。 2,不需要編寫繁瑣重複的緩存具體代碼,一個註解搞定。

原创 安卓ThreadLocal是到底什麼?

    首先ThreadLoacl是什麼?之前看有些博客發現會有人這麼介紹ThreadLoacl: 它可以解決線程併發問題 它可以解決線程共享數據問題。。。 。。。。     百事不得姐的我決定翻閱

原创 HashSet源碼解剖

首先要知道hashset是什麼? 1. 不允許重複對象 2. 無序容器,你無法保證每個元素的存儲順序 3. 只允許一個 null 元素 用法和list其實是一樣的,但是實現原理確實不一樣的。 我們直接看源碼,其實不要看到這些源碼就害怕,h

原创 安卓App啓動流程源碼分析

源碼在26之後貌似變了一些東西,自己學習,自己記錄一下,加深一下理解 首先當你在laucher點擊一個應用圖標的就會去啓動一個app 一個app啓動的入口就是這個ActivityThread,實際就是點擊圖標之後啓動一個線程來搞事情,這個線

原创 HashMap源碼解剖

首先爲什麼使用哈希樹模型來實現hashmap?     如果是一個正常的鏈表來存儲數據,只有幾個數據可能不會有太大的性能問題,每次取數據也只能遍歷整個鏈表取尋找。如果數據量非常龐大的時候想要在幾萬幾十萬個數據中遍歷找到一個key性能是非常

原创 安卓intentService源碼

IntentService是handlerThread與Service的結合,因爲實質是串行的執行,所以該service不適合執行頻繁的網絡請求類型的操作,但是他是一個用完自動停止的service,並且減輕主線程looper的壓力,所以非常

原创 Android登陸界面用戶協議解決方案

先上一張圖來看要實現的東西 一般來說每個app都有這個用戶協議閱讀相關的功能,之前做的都是一個協議,也都是單行的,完全沒有複雜度,可以一個checkbox加上一個textview來搞定,那麼像圖上這種複雜的該怎們實現呢. 來看他有神們不同

原创 無所不能的攔截器

開發中有沒有遇到類似的情況: 1,服務器大佬在數據請求成功的時候返回的數據和請求失敗的時候返回的數據不一致,並且無法有效溝通,他甚至想打你,如下: 這是成功的數據 { "code":200, "msg":"OK",

原创 安卓Lifecycle+ViewModel+LiveData+Mvp+Dagger2完美搭建

先說幾個概念 一,Lifecycle 這個玩意是用來管理監聽Actitivy生命週期的一個東西,之前我們可能會寫一個生命週期的回調來做這個事情,比如在對應的生命週期中回調P層來達到監聽的效果,但如果我們寫個自定義控件也要監聽呢,回頭又有一個

原创 安卓進程保活解決方案

公司產品最近提出惡劣的需求,讓我們的app像微信一樣永遠不被殺掉,隨時給用戶最友好的體驗,當時我想到的是根據手機殼變色的產品經理,心中翻滾着MMP,當然功能還是要做的; 1,除了微信這樣的白名單大佬,沒有app可以青春永駐 2,保活只能是使

原创 AIDL跨進程Service推送消息到Activity

AIDL的概念不說了,一般都是Activity調用service的方法去獲取一些東西,但是如何做到service主動回調activity的方法去推送一些東西的,這種需求一般也是會有的(比如後臺有個定位,每次位置更新或者位置分生一定程度的變化