原创 Android探索之路(三)—View的事件分發機制

前言 View作爲Android應用與用戶交互入口,除了展示視圖外,還承擔了處理用戶操作的任務,比如用戶的點擊、長按、滑動事件等。處理點擊事件的機制就是View的事件分發機制。 View的事件分發機制 當用戶點擊屏幕時,就會產生點

原创 Glide學習(一)—工作流程分析

前言 目前在Android中有許多圖片加載框架,比如UniversalImageLoader、Volley、Picasso、Fresco、Glide等。Glide作爲一個快速高效的Android圖片加載庫,是Android開發使用

原创 Android自定義Lint增量代碼檢查工具

背景 Lint是Google提供的一個靜態代碼檢查工具,可以掃描出代碼中潛在的問題,並且會對開發人員做出提示。而且除了Android原生提供的幾百種Lint規則以外,還可以使用Lint框架的API自定義Lint規則。 自定義Lin

原创 重溫Android四大組件(二)—Activity的啓動模式與標誌位

前言 重溫Android四大組件的第二篇,主要總結Activity的啓動模式以及相關的標誌位。Activity啓動模式是Activity的一個重要的屬性,啓動模式決定了Activity在Activity棧的存在的行爲。不同的啓動模

原创 重溫Android四大組件(一)—Activity的生命週期

前言 四大組件對於Android開發者是老生常談的知識了,相信每個Android開發者對四大組件都已經很熟悉了。但是四大組件作爲Android應用的基礎,作爲開發者不僅要熟悉而且要爛熟於心。 這裏以《重溫Android四大組件》爲

原创 Android-FindBugs中常見的bug級別與問題說明

前言 這兩天組長要求對項目的代碼進行一遍檢查。於是我就使用了IDE的finfBugs插件檢查了一遍代碼,在這裏記錄下findbugs中常見的bug描述。 FindBugs問題彙總 檢查工具:FindBugs Bug級別 Scar

原创 Android探索之路(一)——消息處理機制

摘要 Android應用程序是通過消息來驅動的,當Android主線程啓動時就會在內部創建一個消息隊列。然後進入一個無限循環中,輪詢是否有新的消息需要處理。如果有新消息就處理新消息。如果沒有消息,就進入阻塞狀態,直到消息循環被喚醒

原创 Java併發編程(一) —Java內存模型

前言 Java虛擬機規範中定義了Java內存模型來屏蔽掉各種硬件和操作系統的內存訪問差異,以實現Java程序在各平臺都能達到一致的內存訪問效果。在併發編程中,我們通常要處理兩種問題,狀態如何在多線程的操作下實現同步?線程之間如何通

原创 重溫四大組件(三)—Activity的啓動過程

前言 重溫四大組件第四篇,這裏分析一下Activity的啓動過程。Activity的啓動過程分爲兩種,一種是根Activity的啓動,另外一種是普通Activity的啓動過程。根Activity也就是默認啓動的Activity(在

原创 Java併發編程(三)—隊列同步器(AbstractQueuedSynchronizer)

前言 在Java多線程環境中原子操作是保證線程同步的基本。在Java中通常使用所和循環CAS的方式實現原子操作。 使用循環CAS實現原子操作:在Java虛擬機中實現CAS操作是通過CMPXCHG指令實現的,而CAS循環就是循環的

原创 Dart中的異步與事件循環

前言 Dart作爲Flutter的開發語言,瞭解Dart的機制是必可少的。本篇文章就介紹一下Dart的異步操作與事件循環機制。 異步操作我們都知道在開發過程中,如果有耗時操作,我們一般都會使用異步任務解決,以防主線程卡頓。 事件循

原创 Android高效開發(一)—合理使用圖片資源

前言 在Android開發中,我們難免會遇到加載圖片的場景。不管是網絡圖片、資源圖片或者是SD卡中的圖片,都需要加載到內存中使用。如果不能合理處理圖片,可能會導致OOM的問題或者其他性能問題,接下就討論下Android中圖片資源處

原创 HTTPS工作原理

前言 我們知道使用HTTP協議進行服務端與客戶端通信時,信息是通過明文傳輸的。這期間信息就有可能被攔截或者篡改,爲了解決這種場景,HTTPS就出現了。 相對於HTTP來說,HTTPS有如下作用。 內容加密,無法被輕易破解; 身份

原创 OKHttp學習(一)—OKHttp的工作原理

前言 OKHttp是Square公司辨析的一個網絡請求框架,也是目前市面上使用最多的網絡框架之一。OKHttp是基於HTTP協議封裝的一套請求客戶端,在請求底層支持連接同一個地址的鏈接共享同一個Socket。 OkHttp作爲當前

原创 Glide學習(二)—緩存策略

前言 在前面一篇文章中,主要分析了Glide的工作流程,以加載網絡圖片爲例分析了Glide是如何工作的。在熟悉了Glide的工作流程後,我們就可以及繼續一些細節的分析。接下來,針對Glide的緩存策略進行分析。 我們知道,一個高效