原创 Android高性能編碼最佳實踐

本文主要講一些代碼級別的細微優化,但別小看這些,當它們組合起來的時候就能提高App的整體性能。這類的優化不同於算法與數據結構優化所能達到的顯著效果,但我們應該把它作爲自己的編碼習慣從而寫出高效的代碼。 寫出高效代碼的兩個基本原則:

原创 Android佈局性能優化指南

Android佈局是應用的重要組成部分,它直接影響到用戶的體驗。如果佈局不合理則會導致內存佔用過多且UI卡頓。Android SDK提供了一些工具可以幫助我們快速定位到影響性能的佈局問題,一般可從以下幾個方面來進行佈局優化。 優化

原创 如何配置方法數超過64K的應用

如何配置方法數超過64K的應用 隨着Android平臺的繼續成長,Android應用的大小也在變大。當一個應用及其引用的庫到達一定的規模,在編譯應用時就會遇到構建錯誤,這表示此App已經達到了Android構建系統的某個限制。在早

原创 一種Android客戶端架構設計分享

轉載請註明出處:http://blog.csdn.net/ahence/article/details/56678126 技術發展日新月異,業界各種Android客戶端架構設計,五花八門,但我們不能簡單地說哪種架構更好,因爲脫

原创 APK瘦身指南

用戶一般會不會在應用市場上下載那些看起來很大的App,尤其是當他們使用2G或3G網絡或者是按流量付費的時候。因此這篇文章將講述如何減小APK的大小,從而讓更多的用戶來下載你的應用。 瞭解APK文件的結構 在探討如何減小App大小之

原创 Messenger進程間通信及其原理

前言 之前分析Android消息機制的源碼時,曾遇到過replyTo、IMessenger等屬性字段,當時只是說這些字段用於進程間通信,並未作深入分析。今天這篇文字就來演示一下使用Messenger如何進行進程間通信並分析其源碼實

原创 Java內存模型——《深入理解Java虛擬機》筆記

Java內存模型概述 Java運行在JVM上,通常說的Java內存模型是指在Java虛擬機上的內存分配模型。 Java虛擬機在執行Java程序時會把它管理的內存劃分爲幾個不同的數據區域。這些區域有各自的用途以及創建、銷燬時間,有的

原创 Java內存分配策略——《深入理解Java虛擬機》筆記

概述 Java自動內存管理包含兩方面的含義:給對象分配內存以及回收分配給對象的內存。 Java對象的內存分配主要是指在堆上分配(也有經過JIT編譯後被拆散爲標量類型並間接地在棧上分配的情況),對象主要分配在新生代的Eden區上,如

原创 關於日益氾濫的Android第三方框架

轉載請註明出處: http://blog.csdn.net/ahence/article/details/52929436 前言 目前Android開發依然很火,如果你關注GitHub,可能會發現越來越多的第三方庫與框架(一

原创 Java類加載器及Android類加載器基礎

引子 Android插件化與熱更新技術日漸成熟,當你研究這些技術時會發現類加載器在其中佔據重要地位。Java語言天生就有靈活性、動態性,支持運行期間動態組裝程序,而這一切的基礎就是類加載器。 Java中的類加載器 Java靈活性和

原创 RemoteViews原理分析及應用

轉載請註明出處:http://blog.csdn.net/ahence/article/details/62418926 RemoteViews基本概念 RemoteViews乍一看名字似乎也是一種View,實則不然,它並不是

原创 Android Instrumentation源碼分析(附Activity啓動流程)

轉載請註明出處:http://blog.csdn.net/ahence/article/details/54959235 Instrumentation概念 官方說明 Instrumentation類位於android.app

原创 常用垃圾收集算法——《深入理解Java虛擬機》筆記

概述 垃圾收集器(Garbage Collection, GC)的歷史要比Java久遠,且並非Java獨有,GC主要完成以下三件事情: 哪些內存需要回收 什麼時候回收 如何回收 對於Java內存運行時區域的各個部分,程序計數器

原创 理解Java對象克隆

簡單的對象拷貝 在應用開發中,有時候需要得到一個對象的副本,然後對該副本做一些修改而不影響原始對象,可能大家會想到像下面示例中這樣做。 假設定義一個Person對象,只有name和age兩個字段。 public class Per

原创 App內存佔用優化

RAM(Random-access memory)在任何軟件開發中都是非常寶貴的資源,移動操作系統由於其物理內存的侷限性更是如此。儘管ART(Android Runtime)與Dalvik虛擬機會執行常規的垃圾回收,但這並不意味着