原创 Android中的常見類

本節源碼位置: framework\native\include\utils\RefBase.h framework\native\libs\utils\RefBase.cpp  framework\native\libs\utils\T

原创 閱讀前的準備

Android的系統架構: 從上圖可以看出,Android系統大體可以分爲4層,從下往上依次是: 1. Linux內核層:包含了Linux內核和一些驅動模塊(eg: USB驅動,Camera驅動,藍牙驅動等)。 2. Libraries

原创 Android應用層日誌分析

參考:http://blog.csdn.net/luoshengyang/article/details/6598703 我們在Android應用程序,一般是調用應用程序框架層的Java接口(android.util.Log)來使用日誌系

原创 Android日誌驅動程序分析

參考:http://blog.csdn.net/luoshengyang/article/details/6595744 內核中的日誌文件: kernel/common/drivers/staging/android/logger.h

原创 Binder機制(1)

參考: http://www.cnblogs.com/innost/archive/2011/01/09/1931456.html 基於Binder通信的C/S架構體系中,除了C/S架構所包括的Client端和Server端外,Andr

原创 Android init啓動理解

本節涉及源碼有: 根目錄爲system: Init.c (core\init) Parser.c (core\init) Builtins.c (core\init) Keywords.h (core\init) Init.rc (cor

原创 Binder機制(4)

純Native的Service 純Native的Service表示代碼都在Native層。Native層有很多Service,前面的MS不就是一個重量級的嗎? 假設Service叫ITest,我們該如何實現呢?完全可以模仿MS!具體實現過

原创 Binder機制(3)

StartThreadPool和joinThreadPool分析: startThreadPool()的實現如下所示: 上面spawnpooledThread()函數的實現如下所示: PoolThread是在IPCThreadSta

原创 SystemService

SystemServer的進程名叫“system_server” SystemServer的創建: systemServer是由Zygote通過Zygote.forkSystemServer函數來fork誕生出來的。 SystemS

原创 VirtualBox下ubuntu和本機win7共享文件夾

1. 安裝增強功能包(VBoxGuestAdditions) 打開虛擬機,設置ubuntu 9。04,找到光驅選項加載VBoxGuestAdditions。iso.(該鏡像就在虛擬機的安裝目錄下面),確定 運行ubuntu,在光驅下就會

原创 Binder機制(2)

註冊MediaPlayerService 下面分析MediaPlayerService,代碼如下: 根據前面的分析可知,defaultServiceManager()實際返回的對象是BpServiceManager,它是IService

原创 第一章 文件IO的操作

1. 在對文件進行讀寫操作前,需要先打開該文件。 內核爲每個進程維護了一個打開文件的列表,該表爲文件表(file table),該表由一些叫做文件描述符(file descriptiors)的非負整數進行索引。列表的每一項都包含了一個打開

原创 zygote和system_server分析

使用的源碼:  framework\base\cmds\app_process\App_main.cpp   framework\base\include\android_runtime\AndroidRuntime.h   framew

原创 led-class.txt

Leds-class.txt (documentation\leds) 翻譯: LED在Linux下處理: LED類只允許來自用戶空間的LED控制。led的操作節點出現在/ sys /class/leds/。的LED的最大亮度值在

原创 JNI層理解

https://www.gliffy.com/go/html5/launch?app=1b5094b0-6042-11e2-bcfd-0800200c9a66  畫圖工具 涉及的源碼: MediaScanner.java (base\m