原创 第三章 View 的事件體系

3.1 View 基礎知識 View 是 Android 中所有空間的基類。 3.1 View 的位置參數 在 Android 中,x 軸和 y 軸的正方向分別爲右和下。這些座標相對於父容器來說的:top 是 view 左上角的縱座標

原创 第十章 Android的消息機制

有時候需要在子線程中進行耗時的I/O操作,可能是讀取文件或者是訪問網絡等,當耗時操作完成以後可能需要在UI上做一些改變,這時候就需要用Handler切換到主線程執行。 MessageQueue 只是一個消息存儲單元,不能處理消息,內部的

原创 第十五章 Android 性能優化

程序不可能無限制地使用內存和CPU資源,過多地使用內存會導致程序溢出,即OOM。過多地使用CPU資源,一般是指做大量的耗時任務,會導致手機變得卡頓甚至出現程序無法響應的情況,即ANR。 內存泄漏不會導致程序功能異常,但是會導致 Andr

原创 第十一章 Android 的線程和線程池

線程分爲主線程和子線程。主線程是指進程所擁有的線程(java 默認情況下一個進程只有一個線程,這個線程就是主線程),主要處理和界面相關的事情,子線程執行耗時操作,子線程也叫工作線程。 AsyncThread封裝了線程池和 Handler

原创 八 Window的添加過程

Window 的添加過程是通過 WindowManager 的 addView 來實現的,WindowManager 是一個接口,實現類是WindowManagerImpl,因此直接看該類的addView(). @Override

原创 第十四章 JNI 和 NDK編程

Java JNI的本意是Java Native Interface(java 本地接口),爲了方便java調用C、C++等本地代碼所封裝的一層接口。 Java的優點是跨平臺,但是和本地交互的時候出現了短板,一些和操作系統相關的操作出現了

原创 第五章 Android Scroll 分析

Android 座標系 將屏幕的左上角的頂點作爲Android座標系的原點,從這個點向右是 x 軸正方向,向下是 y 軸正方向。 getRawX()、getRawY()獲得的座標是Android座標系上的座標。 視圖座標系 描述子視圖在父

原创 四 View 的 measure 過程

如果 View 只是一個原始的 View,通過 measure 方法就可以完成測量過程;如果是一個 ViewGroup,會先對子元素進行 measure,然後測量 ViewGroup 自身。 1:View 的 measure 過程 (

原创 第七章 Android動畫機制與技巧

Android屬性動畫 private void objectAnimatorText1() { setContentView(R.layout.activity_main); final Butt

原创 第八章 理解 Window 和 WindowManager

在桌面上需要展示一個類似懸浮窗的東西,需要使用到 Window 來實現。 Window 是一個抽象類,具體實現是 PhoneWindow。WindowManger 是外界訪問 Window 的入口,Window的具體實現位於 Windo

原创 第五章 理解 RemoteViews

RemoteViews 表示的是一個 View 結構,可以在其他進程中顯示,RemoteViews 提供了一組基礎的操作用於跨進程更新它的界面。應用:通知欄和桌面小部件。 5.1 RemoteViews 的應用 通知欄主要是通過 Noti

原创 第四章 View 的工作原理

4.3 View 的工作流程 4.3.1 measure 過程 1. View 的 measure 過程 View 的measure()是一個 final 類型的方法,不能被重寫,其中調用了 View 的 onMeasure(),

原创 四 View 的測量寬高和最終寬高的區別

View 的測量寬高和最終寬高有什麼區別? 這個問題可以具體爲getMeasuredHeight()和getHeight()有什麼區別。 View public final int getHeight() { r

原创 對象的創建

虛擬機遇到一個new指令的時候,根據new指令的參數是否能在常量池中定位到一個類的符號引用,並檢查符號引用代表的類是否已經加載、解析、初始化。如果沒有,必須先執行類加載。類加載通過之後,虛擬機爲新生的對象分配內存。 根據內存是否規整,分

原创 第二章 IPC機制

2.1 Android IPC IPC 爲進程間通信或跨進程通信,是指兩個進程數據交換的過程。 按照操作系統的描述,線程是CPU調度的最小單元,同時線程是一種有限的系統資源;而進程一般是指一個執行單元,在pc和移動設備上指一個程序或者一