原创 Java HashMap計算初始數組大小過程

HashMap HashMap相信大家都很熟悉了,我們經常用來存放數據的一種容器。HashMap實際上是數組加鏈表的數據結構。在JDK1.8後又引入了紅黑樹。今天抽空研究了一下HashMap的源碼,感覺還是非常值得學習的,它裏面的

原创 Android 9.0 點擊桌面應用圖標,啓動Activity的過程分析

下面分析從手指點擊桌面的應用圖標,是如何啓動一個應用的Activity的過程: 首先需要明確一個問題,我們的桌面Launcher其實也是一個Activity,它是繼承BaseDraggingActivity,而BaseDraggi

原创 Android android.uid.system的應用調用安裝apk失敗

背景 最近項目開發過程中用到安裝apk的功能。把從服務器下載下來的apk安裝到機器中。安裝過程中遇到的問題記錄一下。 問題 安裝過程中提示解析軟件包時出現問題。 說明:本文是針對運行的apk在Manifest中聲明瞭system

原创 Android:手寫一個簡單的ButterKnife框架

介紹 ButterKnife相信大家都很熟悉了,網上介紹其使用方法的文章很多,還不知道ButterKnife是啥的小夥伴可以先去了解一下。 ButterKnife用一個註解就替代了findViewById方法。用起來非常方便,但是

原创 Android7.1.1 remap鼠標右鍵爲返回鍵

需求:客戶需求當手機連接鼠標時,可以有開關控制鼠標右鍵的行爲的按鈕,打開鼠標右鍵就爲返回鍵,關閉保持原來行爲。如果只是將右鍵改爲返回鍵還是很好做的,找到點擊右鍵的事件改一下就行,但是現在還需要控制,就涉及到交互的問題了。先看效果圖

原创 Android P SystemUi啓動流程

本文代碼基於Android 9.0分析,個人理解能力有限,如有不對請多指教。 SystemUI是在開機過程中SystemServer啓動的,SystemServer的startOtherServices()中 /*framewor

原创 Android O 無法接收靜態廣播完美解決方法

背景:兩個應用需要通信,和同事討論了一下,因爲功能比較簡單所以打算使用廣播進行通信。寫完後發現在android O上靜態註冊的receiver無法接收到廣播。順便就研究一下有什麼方法可以解決這個問題。 代碼: 舉例說明,最簡單的發