原创 Activity 啓動過程全解析

Activity啓動過程 一些基本的概念 ActivityManagerServices,簡稱AMS,服務端對象,負責系統中所有Activity的生命週期 ActivityThread,App的真正入口。當開啓App之後,會調

原创 與開發團隊高效協作的8個小技巧

開發團隊是每一個產品經理和產品負責人的重要合作伙伴:是團隊來設計和建造實際產品。但是,要高效地引導並與團隊一起工作並不是一件容易的事情。這篇文章我將分享8個使開發團隊更高效合作的小技巧,從而提高創造成功產品的機會。 1.管理產品

原创 生產者和消費者問題

package 生產者消費者; public class ProducerConsumerTest { public static void main(String[] args) { PublicRe

原创 ListView詳解

直接繼承自AbsListView,AbsListView繼承自AdapterView,AdapterView又繼承自ViewGroup。 Adpater在ListView和數據源之間起到了一個橋樑的作用 RecycleBin機制

原创 LinkedHashMap 源碼剖析

LinkedHashMap是HashMap的子類,與HashMap有着同樣的存儲結構,但它加入了一個雙向鏈表的頭結點,將所有put到LinkedHashmap的節點一一串成了一個雙向循環鏈表,因此它保留了節點插入的順序,可以使節點

原创 volatile變量修飾符

volatile用處說明 在JDK1.2之前,Java的類型模型實現總是從主存(即共享內存)讀取變量,是不需要進行特別的注意的。而隨着JVM的成熟和優化,現在在多線程環境下volatile關鍵字的使用變的非常重要。 在當前的Ja

原创 Bitmap 的分析與使用

Bitmap的分析與使用 Bitmap的創建 創建Bitmap的時候,Java不提供new Bitmap()的形式去創建,而是通過BitmapFactory中的靜態方法去創建,如:BitmapFactory.decodeStre

原创 EventBus 用法詳解

EventBus 概述 EventBus是一款針對Android優化的發佈/訂閱(publish/subscribe)事件總線。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,

原创 熱修復技術

熱修復技術 APP提早發出去的包,如果出現客戶端的問題,實在是乾着急,覆水難收。因此線上修復方案迫在眉睫。 概述 基於Xposed中的思想,通過修改c層的Method實例描述,來實現更改與之對應的java方法的行爲,從而達到修復

原创 Android圖片中的三級緩存

Android圖片中的三級緩存 爲什麼要使用三級緩存 如今的 Android App 經常會需要網絡交互,通過網絡獲取圖片是再正常不過的事了 假如每次啓動的時候都從網絡拉取圖片的話,勢必會消耗很多流量。在當前的狀況下,對於非w

原创 Java併發基礎知識

Java併發 (Executor框架和多線程基礎) Thread與Runable如何實現多線程 Java 5以前實現多線程有兩種實現方法:一種是繼承Thread類;另一種是實現Runnable接口。兩種方式都要通過重寫run()

原创 MVC , MVP ,MVVM 的區別

MVC,MVP,MVVM的區別 MVC 軟件可以分爲三部分 視圖(View):用戶界面 控制器(Controller):業務邏輯 模型(Model):數據保存 各部分之間的通信方式如下: View傳送指令到Controll

原创 線程通信基礎分析流程

老司機們都知道,Android的線程間通信就靠Handler、Looper、Message、MessageQueue這四個麻瓜兄弟了,那麼,他們是怎麼運作的呢?下面做一個基於主要源代碼的大學生水平的分析。 原文鏈接 Loope

原创 Binder機制

Binder機制 首先Binder是Android系統進程間通信(IPC)方式之一。 Binder使用Client-Server通信方式。Binder框架定義了四個角色:Server,Client,ServiceManager以

原创 Android 內存泄露總結

Android 內存泄漏總結 內存管理的目的就是讓我們在開發中怎麼有效的避免我們的應用出現內存泄漏的問題。內存泄漏大家都不陌生了,簡單粗俗的講,就是該被釋放的對象沒有釋放,一直被某個或某些實例所持有卻不再被使用導致 GC 不能回收