原创 Kotlin 不再使用 findViewById 的原理探析

使用過 Kotlin 的都知道, Kotlin 一個非常棒的特性是:可以在 .kt 文件中直接使用控件的 ID 對控件進行操作。而 Java 代碼中,需要像先式聲明控件,再使用 findViewById() 來找到控件,然後才能

原创 Android消息機制之 Looper 消息循環

概述 前面 講了消息機制中的 MessageQueue,Looper 與 MessageQueue 的關聯是 Looper 會通過輪詢,不斷從 MessageQueue 中獲取新消息,如果有新消息就會立即處理,沒有新消息就會阻塞。

原创 LeakCanary 內存泄露源碼分析

寫在前面 LeakCanary 是大名鼎鼎的 Square 公司出品的開源庫,用於分析 APP 的內存泄露並以非常直觀的方式展示出來。本文中的 LeakCanary 版本爲 v1.6.3 。現在最新的版本爲 v2.0-alpha

原创 Android報錯:Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)'

項目中遇到空指針異常 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.l

原创 使用抓包工具 Fiddler 或 Charles 修改後臺接口返回數據

1 前言 抓包工具的核心原理是代理轉發機制,抓包工具在客戶端和服務端之間充當代理人的角色。當客戶端向服務端請求數據時,客戶端先將請求發給抓包工具,然後抓包工具將請求轉發給服務器進行網絡請求,這個時候抓包工具相當於客戶端;當服務端數

原创 Casting 'findViewById(R.id.XXX)' to 'XXX' is redundant

最近寫代碼發現控件初始化的時候不需要類型強轉了,強轉後會出現Casting 'findViewById(R.id.XXX)' to 'XXX' is redundant的提示,如圖所示: 代碼如下: private void

原创 Android 消息機制之 MessageQueue 消息隊列

概述 Android 消息機制主要指的是 Handler 的運行機制及其所依賴的 MessageQueue 和 Looper 的工作過程,Handler、MessageQueue、Looper組成一個相互聯繫的整體。本文先從 Me

原创 Android 10 使用 drawable xml 設置漸變背景的坑

1 背景 先說明一下問題的背景。 之前項目有個登錄按鈕,正常時其背景如下圖所示,背景漸變色方向爲從左到右。 背景 xml 也很簡單(注意:沒有設置 angle): <?xml version="1.0" encoding="ut

原创 圖解 Android View動畫中 android:pivotX 和 android:pivotY 屬性的含義

在 Android View動畫中,縮放動畫(scale標籤)和旋轉動畫(rotate標籤)均有 android:pivotX 和 android:pivotY 這兩個屬性,其值可以有多種形式,並不是很好理解。本文就用一個小 De

原创 Android之uri、file、path相互轉化

1、uri轉file: file = new File(new URI(uri.toString())); file轉uri: URI uri = file.toURI(); 2、uri轉path: private S

原创 Android 使用Jetpack Lifecycle 創建可感知頁面生命週期的Dialog、Banner等

1、問題背景: 場景如下:在頁面 activity A 中點擊一個按鈕後會出現一個彈框 dialog,dialog 中有個列表,點擊列表中的 item, 進入到頁面 activity B,再從 activity B 返回 到 ac

原创 Android從一個APP跳轉到另一個APP的主界面或某頁面,並傳遞數據

1. Android 從一個 APP 跳轉到另一個 APP 主界面 Intent intent = new Intent(Intent.ACTION_MAIN); //前提:知道要跳轉應用的包名、

原创 PC版 有道雲筆記無法同步,紅色感嘆號,無法登陸的解決辦法

打開 ie,點擊右上角的工具 –> internet選項 –> 高級 –> 重置 –> 重置 –> 關閉 然後重啓 有道雲筆記 就可以了。

原创 Android自定義水平漸變進度條的兩種實現

先看進度條的效果: 實現方式一(自定義控件) 新建類,繼承自View,在onDraw中進行繪製: import android.content.Context; import android.graphics.Canvas; i

原创 解決ToolBar中的menu無法同時顯示圖標和文字的問題

在使用ToolBar時,雖然在menu.xml文件的 item中 設置了 icon 屬性,但是當設置 showAsAction=“never”時,默認只顯示文字的 title,而不會顯示圖標 icon。可以在 Activity 中