1. 程式人生 > >android framework 框架層功能梳理

android framework 框架層功能梳理

轉自:http://www.tuicool.com/articles/777r6rB ,感謝博主分享.
簡介

之前的研究太偏向應用層功能實現了,很多原理不瞭解沒有詳記,為了全面瞭解,重新梳理應用框架層。

記錄

1、下載原始碼,目錄如下:

2、Android系統的層次如下:

3、專案目錄簡單分析如下:

4、telphony目錄

CellIdentityCdma //描述電信通訊標識
CellIdentityGsm 描述行動通訊標識
CellIdentityLte 描述3G通訊標識
CellIdentityWcdma 描述聯通通訊標識
CellInfo 手機資訊(什麼網路、是否已註冊、記錄時間)
class CellInfoCdma extends CellInfo 電信通訊手機資訊
CellInfoGsm extends CellInfo 行動通訊手機資訊
class CellInfoLte extends CellInfo 3G通訊手機資訊
class CellInfoWcdma extends CellInfo 聯通通訊手機資訊
CellLocation 手機位置資訊(獲取手機服務介面,獲取位置資訊)
CellSignalStrength 描述手機訊號強度的抽象類
class CellSignalStrengthCdma extends CellSignalStrength implements Parcelable 電信訊號強度
class CellSignalStrengthGsm extends CellSignalStrength implements Parcelable 移動訊號強度
class CellSignalStrengthLte extends CellSignalStrength implements Parcelable 3G訊號強度
class CellSignalStrengthWcdma extends CellSignalStrength implements Parcelable 聯通訊號強度
JapanesePhoneNumberFormatter 專門為日本設計了電話號碼格式的規則?艹
MSimTelephonyManager 電話服務管理(卡服務、網路型別、配置資訊……)
NeighboringCellInfo 接收訊號強度和相鄰小區ID的位置
class PhoneNumberFormattingTextWatcher implements TextWatcher  手機號碼格式化
PhoneNumberUtils 電話號碼配置
PhoneStateListener 電話狀態監測變化 (服務狀態,訊號強度,訊息)
Rlog 日誌資訊
ServiceState 服務狀態(執行商、網路型別、漫遊等)
SignalStrength 訊號強度資訊
TelephonyManager 手機服務管理(撥號、接聽、傳送簡訊等等)
CdmaCellLocation extends CellLocation 電信手機位置資訊
CdmaSmsCbProgramData 電信手機簡訊資料描述
CdmaSmsCbProgramResults 電信簡訊服務資料結果描述
GsmCellLocation 移動手機位置資訊描述
CallerInfo 使用者資訊描述
CallerInfoAsyncQuery 非同步查詢來電者資訊
DctConstants 常量資訊
EncodeException 自定義編碼異常
GsmAlphabet 移動簡訊字元轉換
 IccCardConstants  常量
RILConstants rtl常量
SmsConstants 簡訊常量
SmsRawData 簡訊資料
TelephonyIntents 手機意圖描述(定義字串常量)
TelephonyProperties 電話屬性介面
IPhoneStateListener 手機狀態監聽
IPhoneSubInfo 獲取手機資訊介面
ISms 簡訊操作介面
ITelephony 手機管理介面(撥號、接聽、傳送簡訊…等)
ITelephonyRegistry 提供手機註冊服務(單卡)
ITelephonyRegistryMSim 提供手機註冊服務(雙卡時)
IWapPushManager wap推送訊息
IPhoneSubInfoMSim 手機資訊介面
ITelephonyMSim 手機服務介面

5、sax目錄

class BadXmlException extends SAXParseException xml解析錯誤
Children 子集
Element 一個元素
interface ElementListener extends StartElementListener, 
        EndElementListener
解析監聽(開始、結束)
EndElementListener 結束監聽
EndTextElementListener 結束文字
class RootElement extends Element 根元素
StartElementListener 開始監聽
interface TextElementListener extends StartElementListener, 
        EndTextElementListener
文字元素監聽
ExpatPerformanceTest extends AndroidTestCase 單元測試
SafeSaxTest extends AndroidTestCase 單元測試

6、policy目錄

BarController 系統欄 控制元件狀態/行為
EnableAccessibilityController 系統訪問控制
class GlobalActions implements DialogInterface.OnDismissListener, DialogInterface.OnClickListener 對話方塊動作監聽實現
GlobalKeyManager 鍵值對映管理
IconUtilities 圖示輔助類
ImmersiveModeConfirmation 導航欄隱藏、顯示輔助類
PhoneFallbackEventHandler implements FallbackEventHandler 手機回退事件處理,這段程式碼應該是鎖屏介面選擇的一些事件處理,比如拖動解鎖框至電話圖示就開啟電話介面。
PhoneLayoutInflater extends LayoutInflater 手機佈局
 class PhoneWindow extends Window implements MenuBuilder.Callback 手機窗體
class PhoneWindowManager implements WindowManagerPolicy 手機窗體管理
class Policy implements IPolicy 用於建立Window類、LayoutInflater類和WindowManagerPolicy類,它扮演著簡單工廠模式中的工廠類角色,而抽象產品角色由IPolicy介面實現,具體產品角色由Policy類實現。
class RecentApplicationsBackground extends LinearLayout 垂直線性佈局
class RecentApplicationsDialog extends Dialog implements OnClickListener  對話方塊
ShortcutManager extends ContentObserver  快捷圖示管理
class SystemGesturesPointerEventListener implements PointerEventListener 監聽輸入手勢
WindowOrientationListener 手機方向監聽
KeyguardServiceDelegate 管理鍵盤的狀態
class KeyguardServiceWrapper implements IKeyguardService 軟盤的實現
KeyguardServiceDelegate.java和KeyguardServiceWrapper.java 這兩個類是android 4.4新增加的,分別對KeyguardService進行了代理和包裝,代理類裡面有一個Scrim檢視在keyguard崩潰時顯示。包裝類就是對keyguardService的簡單包裝,最終把排程都會傳給keyguardService。

7、wifi目錄

BatchedScanResult WiFi掃描的結果
BatchedScanSettings WiFi掃描設定
NetworkUpdateResult 網路更新結果
RssiPacketCountInfo RSSI和包計數資訊,用於WiFi看門狗
ScanResult wifi掃描結果
StateChangeResult 狀態變化資訊
SupplicantState 請求狀態
SupplicantStateTracker 請求狀態監控者
 WifiApConfigStore extends StateMachine 配置資訊儲存
WifiChannel 一個WiFi通道或頻率
WifiConfigStore WiFi網路配置管理API
WifiConfiguration 一個Wi-Fi網路配置
WifiEnterpriseConfig Wi-Fi企業配置
WifiInfo 描述wifi連線狀態
WifiManager wifi管理
WifiMonitor 監聽wpa_supplicant 服務
WifiNative 本地wifi管理

相關推薦

android framework 框架功能梳理

轉自:http://www.tuicool.com/articles/777r6rB ,感謝博主分享. 簡介 之前的研究太偏向應用層功能實現了,很多原理不瞭解沒有詳記,為了全面瞭解,重新梳理應用框架層。 記錄 1、下載原始碼,目錄如下:

淺析Android Framework框架

Android系統從底向上一共分了4層,每一層都把底層實現封裝,並暴露呼叫介面給上一層。 1. Linux核心(Linux Kernel)        1)Android執行在linux kernel 2.6之上,但是把linux內受GNU協議約束的部分做了取代,

淺談Android FrameWork框架和它在android的四架構起到的作用

這裡寫一些關於Android Framework比較重要的知識點,這些東西對於之後理解和研究Android Framework有很

android記錄筆記(二)針對應用框架梳理的整合筆記

這篇筆記主要是結合自我認知,加上各種學習資源,整理而成的查詢筆記,整理的不好,還望指出錯誤,主要是用於查詢與記錄,該篇筆記大多借鑑劉望舒的部落格,對大佬致敬哈,我也是你忠實的粉絲,如有冒犯,請見諒,我將立即刪除本篇文章。 針對應用框架層我認為必須要清楚的知識概念: 第一:

Android FrameWork框架

Android的四層架構相比大家都很清楚,老生常談的說一下分別為:Linux2.6核心層,核心庫層,應用框架層,應用層。我今天重點

怎樣從C++代碼直接訪問android framework的WifiService

-a namespace cpi 編譯 pla desc argc 封裝 conf 說究竟,Java層的service就是就C++層的binder的封裝。所以從原理上來講通過C++代碼直接訪問android framework層的service是全然可能的,這篇

Android Framework 分析---2消息機制Native

jnienv car 下一個 sas tracking zed 高效 方法 java 在Android的消息機制中。不僅提供了供Application 開發使用的java的消息循環。事實上java的機制終於還是靠native來實現的。在native不僅提供一套消息傳

RxCache 整合 Android 的持久框架 greenDAO、Room

一. 背景 RxCache 是一個支援 Java 和 Android 的 Local Cache 。 之前的文章給 Java 和 Android 構建一個簡單的響應式Local Cache曾詳細介紹過它。 RxCache 包含了兩級快取: Memory 和 Persistence 。

Android framework自定義jni

framework新增自定jni    本文章適用於在原始碼環境下在framework新增自定的jni供上層Apk呼叫。 1 framework新增自定jni 新增自定義的jni檔案和Androidmk 新增系統編譯配置 新增自定義的jni檔案和Android.mk 首先在f

初始Android Framework框架)方面的知識(一)

介紹Android Framework(框架)是什麼? Android的Framework是直接應用之下的一層,叫做應用程式框架層。這一層是核心應用程式所使用的API框架,為應用層提供各種API,提供各種元件和服務來支援我們的Android開發,包括Activ

Android-[開源框架]-leakcanary程式碼流程梳理

本文中得時序圖的uml原始碼和簡化圖的draw.io的原始檔分享在百度雲中 可自行下載修改新增 https://pan.baidu.com/s/1G0LHpgabGt4tyapcYggcwA 1. leakcanary使用方法及學習 關於leakcanary的詳細分析已經有很多大牛分

Android嚮導框架(Wizard framework)的一種實現(需要原始碼的同學請留言)

做介面開發的兄弟姐妹都知道嚮導框架一般GUI庫都有提供,而android的介面庫中,卻沒有嚮導框架這個東東。 不要驚訝,你要是不相信的話可以到谷歌查詢,我在stackoverflow看到一些提問:如何實現嚮導式的互動,在android中:how to implement a wizard like

android 實現簡單的引導功能

在網上看的一個帖子,我進行了整理用的 kotlin 寫的,還是比較簡單的,廢話不多說。 原檔案地址 https://www.jianshu.com/p/5e80c7aee1fc 首先先來看下如何匯入專案中: 專案的build.gradle新增 allprojects {

net.sz.framework 框架 輕鬆搭建服務---讓你更專注邏輯功能---初探

前言  在之前的文章中,講解過 threadmodel,socket tcp ,socket http,log,astart ,scripts; 都是分片講解,從今天開始,將帶大家,一窺 net.sz.framework 框架; net.sz.framework 框架分為java版本和C#.net 版本,兩種

Android Framework C/C++程式碼中新增日誌

在對應目錄下的Android.mk檔案中新增一下內容 LOCAL_LDLIBS := -llog LOCAL_SHARED_LIBRARIES += \ libcutils \ libutils 在cpp檔案中定義: #define LOGD_TAG "S

Android系統架構——各功能簡介

官網給了我們一個Android整體架構圖,從上到下依次是 應用程式層(Application)、應用程式框架層(Application Framework)、系統執行庫層(Libraries&

Android TV框架 TIF(Android TV Input Framework)入門實踐

做TV開發一段時間了,國內目前關於這方面的資料並不多,這裡我來分享一下我對TIF的使用心得。Android TIF(Android TV Input Framework)是Google向電視製造商提供了一套標準的API,用於建立Input模組來控制Andro

android framework新增自定義服務,實現javaapi呼叫

1.在frameworks/base/core/java/android/app/下新增aidl檔案 frameworks/base/core/java/android/app/IGMyTestService.aidl package android.app; // De

Android framework新增三方應用介面,及新增系統Service(轉)

原 親測可用Android原生程式碼新增系統服務 2017年01月12日 21:55:56 閱讀數:5492 在Android系統中,為我們提供了很多的系統服務,比如AMS,PMS等,今天參考系統裡其他服務的實現,在Android N原生程式碼中新增自己定製的服務,

Android逆向之旅---破解某支付軟體防Xposed等框架Hook功能檢測機制

一、情景介紹最近想寫幾個某支付軟體的外掛,大家現在都知道現在外掛大部分都是基於Xposed的ho