原创 Android ListView與RecyclerView

Android中,最複雜的原生控件就是ListView,在support-v7中,Google提供了一種功能更加豐富的控件來代替ListView,那就是RecyclerView,本篇文章,就來解析一下ListView與RecyclerVi

原创 Android的垃圾回收與內存泄露

在談內存泄露之前,我們先談一談android的垃圾回收機制。 垃圾,即沒有利用價值的東西。程序在運行時,需要對象來執行,這些對象都會佔用內存空間。那麼,當這些對象沒有了利用價值,變成了垃圾,我們該如何對其進行回收? 這裏,可以參看我的另

原创 Android 網絡詳解(一) TCP與UDP

Android中的網絡連接比較豐富,所有網絡連接都需要異步完成。 首先,介紹一下TCP連接。 TCP傳輸的數據格式如下圖, 源端口和目的端口各佔2字節,端口號加上IP地址,共同構成socket。互相通信的進程使用一對socket,包

原创 Android防止內存泄漏的八種方法

原文地址。 原文地址:http://www.jianshu.com/p/c5ac51d804fa 在上一篇Android內存泄漏的八種可能(上)中,我們討論了八種容易發生內存泄漏的代碼。其中,尤其嚴重的是泄漏

原创 Android中的View全解析(一)

View的內容大致分爲一下四項: View的繪製原理, View的自定義屬性, View的生命週期, View的事件分發機制 首先聊一聊View的繪製。大家應該都知道View的繪製經歷了三個步驟:Measure,Layout,Draw,

原创 JVM虛擬機以及垃圾回收機制學習總結

JVM虛擬機的內存結構如下圖所示 方法區和堆由所有線程共享,其他區域都是線程私有的 程序計數器(Program Counter Register) 通過程序計數器來記錄線程執行的jvm字節碼的行數 虛擬機棧(Java Stack)

原创 Android異步消息處理機制完全解析,帶你從源碼的角度徹底理解

轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/9991569之前也是由於週末通宵看TI3比賽,一直沒找到時間寫博客,導致已經有好久沒更新了。慚愧!後面還會恢復進度

原创 Android內存泄漏的八種可能

原文Eight Ways Your Android App Can Leak Memory 解決篇:Android防止內存泄漏的八種方法(下)。 原文地址:http://www.jianshu.com/p/bf159a9c391

原创 Java 鎖機制

Java中,鎖分爲內部鎖與顯式鎖兩種類型。 內部鎖又分爲對象鎖與類鎖。 Java中,每個類的java對象內部都有一個鎖,稱爲對象鎖;每個類都有一個唯一的class對象,class對象內部鎖,稱爲類鎖,主要用來同步靜態方法與靜態代碼塊。兩

原创 Android動畫解析 View動畫,幀動畫與屬性動畫

Android的動畫形式共分爲三種,View動畫,幀動畫與屬性動畫。 先對這三種動畫做一個概述: View動畫是一種漸進式動畫,通過圖像的平移、縮放、旋轉和透明度等各種漸進式變換完成動畫效果。 幀動畫是通過不停的切換圖片實現動畫效果。

原创 Android apk的維護與升級

我們發佈了一個新的應用後,由於發佈的應用並不完美,可能會出現一些bug,而且爲了與時俱進,添加一些新的功能,就需要開發人員對其進行維護與升級。那麼,發佈後的apk被下載到用戶的手機上之後,開發人員該如何對其進行後續的操作呢? 爲了對舊應用

原创 Android SharedPreferences,Sqlite,ContentProvider,File

Android長久保持數據的方式一般有如下四種: SharedPreferences,Sqlite,ContentProvider,File 其中,SharedPreferences是以鍵值對的形式保存數據,存儲到XML文件中;Sqli

原创 JAVA中函數傳參的意義

JAVA中有兩種類型,基本類型和引用類型。但在函數傳參的過程中,基本類型和引用傳遞的到底是什麼呢? 在JVM中,基本類型中的數值使用一塊內存來保存。引用類型由兩塊內存來保存,一塊內存中裝的是真實的數據,就是引用的對象,另一塊內存中裝的是指

原创 eventbus全解析

eventbus旨在爲Android中的各組件提供解耦和的數據與事件傳遞。首先在需要接收事件和數據的組件中(官方推薦在onStart方法中)註冊: EventBus.getDefault().register(this);然後在組件中定義

原创 java中的volatile與atomic

volatile可以保證所有線程看見的值都是最新的,atomic可以保證+-的原子性操作。 每個線程都有自己獨立的數據塊,對於共享變量,它們先將其拷貝到自己的內存空間,創建一個副本,之後再進行的操作針對的都是副本,最後在線程退出前的某一時