Time of Update: 2018-12-04
在前面我簡單的描述了Android的啟動過程http://blog.csdn.net/codectq/article/details/7383231,但終究是不夠完善。 現在在工程中遇到了實際的問題,反過來閱讀下代碼,再重新審視一下在kernel啟動之後的ANDROID啟動過程。 在frameworks/base/services/java/com/android/server檔案夾下的SystemServer.cpp檔案。在此檔案中調用了init1(
Time of Update: 2018-12-04
之前的一段時間,本人錯誤的任務休眠是在WindowManagerService中在訊息的形成和訊息的分發過程中進行截獲的。但是經過實驗之後,發現自己走上了一條錯誤的道路,幸好不是不歸路。
Time of Update: 2018-12-04
今天一個小項目終於塵埃落定,雖然本人在其中從事的工作很簡單,但是還是頗有一些心得想跟大家分享一下。 首先我們需要瞭解一下linux核心中驅動為何能被編譯進核心,在這裡有兩個很重要的檔案不得不提:Kconfig和Makefile。其中Kconfig是分布在各目錄的,這些Kconfig檔案構成了一個分布式的核心設定資料庫,每個Kconfig分別描述了所屬目錄來源文件相關的核心配置菜單,這就是我們使用make
Time of Update: 2018-12-04
轉寄請註明出處:http://blog.csdn.net/codectq/article/details/7324879 最近,在學習讓系統進入休眠的過程中,學習了電源管理的相關知識。為了備忘和理清思路現整理成文,以便日後查閱。 行動裝置由於自身的限制有一個硬傷就是電量的消耗問題。由於電池的電量有限,所以電源電量的管理顯得就比較重要了。我們可以想象一下,當你去超市買完東西之後,卻發現無法運回家,是多麼難受的一件事情。
Time of Update: 2018-12-04
在前文Android 4.0 觸控螢幕訊息(一大寫的一)中,我們從跟硬體最接近的兩個部分對整個觸控螢幕訊息的擷取進行了簡單的描述,但是對於我們系統來講此時的訊息並不好用,對於應用程式開發著而言更是極不方便。但是Android的產生就解決了Java開發的問題,使得整個開發過程周期變短。在android中,通過cook函數完成將未經處理資料轉化成應用程式可以使用的資料形式,這樣應用程式開發人員可以通過MotionEvent對象的方法來進行對不同的觸控螢幕動作做出相應的反應。
Time of Update: 2018-12-04
Android是整合了linux核心以及frameworks層的東西而形成為os,其中主要包含了三種語言的編程,主要是c、c++以及java。因此他們之間的通訊問題就顯得尤為突出。JAVA與c的通訊主要是通過JNI機制進行的。為了提高效率,在上層都使用java進行編程。因此在閱讀原始碼的過程中,就需要區分給使用者使用的檔案,系統內部使用的檔案,以及與驅動打交道的檔案。Android擷取系統訊息概述1、擷取原始的使用者訊息,包括按鍵、觸控螢幕、滑鼠、軌跡球等各種輸入裝置的訊息。2、對原始訊息進行一
Time of Update: 2018-12-04
按鍵在Android系統中,有著不同的代表意義。以前的全鍵盤的手機代碼沒有閱讀過,所以也不是很瞭解。本人介紹的是在觸控螢幕的手機上的按鍵訊息的處理流程。在現在觸控螢幕成為主流的輸入裝置的情況下,很多廠商都在努力的做到取消物理按鍵的工作,但是目前就本人的學習情況來看,完全取消在目前看來還是不是那麼現實。有如下幾點原因:首先,本人說明的是目前原生的Android系統上。其次,Android系統為了節省電量,在電源管理的過程中設定了休眠的方式。而休眠的時候觸控螢幕同樣進入休眠狀態。因此,不能夠接收到使
Time of Update: 2018-12-04
從android2.2(froyo) , Android 改寫了vold code. 將code從c語言,變為了C++,並且充分繼承了framework,NetlinkListener等通用類,雖然較大了提交的vold的結構性,可繼承性和擴充性,但同時也增加了代碼的複雜度。 介紹一篇很不錯的文檔
Time of Update: 2018-12-04
文章將分析Android 的Input Event 子系統的來龍去脈。 Android 系統裡面有很多小工具,運行這些工具,我們對它們有一個感性的認識,進而閱讀和分析這些小工具原始碼,再順藤摸瓜,就可以把整個子系統的來龍去脈弄清楚。 1.運行toolbox的getevent 工具。 # getevent -helpgetevent -helpUsage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-p] [-q] [-c
Time of Update: 2018-12-04
作者:gzshun. 原創作品,轉載請標明出處!NetlinkManager類負責管理捕獲核心的uevent事件,這裡使用了Netlink通訊端。Netlink的概念:Netlink通訊端是用以實現使用者進程與核心進程通訊的一種特殊的處理序間通訊(IPC) ,也是網路應用程式與核心通訊的最常用的介面。Netlink通訊端可以使用標準的通訊端APIs來建立。socket(), bind(), sendmsg(), recvmsg() 和 close()很容易地應用到 netlink socket。
Time of Update: 2018-12-04
http://blog.csdn.net/caowenbin/article/details/6036726#ActivityManager在作業系統中有重要的作用,本文利用作業系統源碼,逐步理清ActivityManager的架構,並從靜態類結構圖和動態順序圖表兩個角度分別進行剖析,從而協助開發人員加強對系統架構及進程通訊機制的理解。ActivityManager的作用參照SDK的說明,可見ActivityManager的功能是與系統中所有運行著的Activity互動提供了介面,主要的介面圍繞
Time of Update: 2018-12-04
ActionAction常量對應字串簡單說明ACTION_MAINandroid.intent.action.MAIN應用程式入口ACTION_VIEWandroid.intent.action.VIEW顯示指定資料ACTION_ATTACH_DATAandroid.intent.action.ATTACH_DATA指定某塊資料將被附加到其它地方ACTION_EDITandroid.intent.action.EDIT編輯指定資料ACTION_PICKandroid.intent.action.
Time of Update: 2018-12-04
方法一:在進行android-sdk-windows中進行 update all時, 報錯 folder failed to be renamed or moved...,goole了一下,有外國網友解決辦法如下:1, 複製 tools目錄,粘貼到android-sdk-windows下面改名為tools-copy ,此時在android-sdk-windows 目錄下有兩個目錄 tools 和 tools-copy2, 在tools-copy目錄運行 android.bat
Time of Update: 2018-12-04
淺談Android應用的構成對於一個Android應用程式來說,是由四種構造塊組織而成的,這四種構造塊如下: Activity Intent Receiver Service Content Provider 但是,並不是每一個Android應用程式都需要這四種構造塊,這不是必須的,某些時候,我們只需要這四種中的幾種組合成我們的應用。
Time of Update: 2018-12-04
關於Android中的組件和應用,之前涉及,大都是靜態概念。而當一個應用運行起來,就難免會需要 關心進程、線程這樣的概念。在Android中,組件的動態運行,有一個最與眾不同的概念,就是Task,翻譯成任務,應該還是比較順理成章的。Task的介入,最主要的作用,是將組件之間的串連,從進程概念的細節中剝離出來,可以以一種不同模型的東西進行配置,在很多時候,能夠簡化上層開發人員 的理解難度,協助大家更好的進行開發和配置。任務 在
Time of Update: 2018-12-04
出自http://my.oschina.net/yuhanxun/blog/81007在寫檔案管理系統時會用到各種開啟不同格式的檔案的需求,由於Android系統預設內建了一些可以開啟的系統應用,但還是不能滿足需求,比如開啟視頻檔案、word等,需要安裝相應的播放軟體才可以使用,這時程式會通過Intent尋找可以使用的軟體實現通過代碼開啟一個檔案需要2部分,一部分是要擷取到不同檔案的尾碼,以便根據需求匹配相應的Intent,另一個就是不同格式的檔案開啟的Intent不同1、在values目錄下定
Time of Update: 2018-12-04
最近突發奇想,想做一個外掛程式架構,就是實現一個微核心,所有擴充功能都通過下載外掛程式載入的方式來實現,原理跟現在用的eclipse差不多。要做到這些動態載入類少不了,就是核心上事先定義好介面,通過網路或其他方式下載的外掛程式要實現這些介面,只要定義好規則,系統就可以使用這些外掛程式了。 Android動態載入不是程式本身的類,要用到PathClassLoader和DexClassLoader, 兩個類的構造方法分別是:PathClassLoader(String path,
Time of Update: 2018-12-04
剛才又看了android的官方文檔,對它的進程優先順序和service理解得更多了。android為了管理記憶體釋放有限的空間,會根據優先順序殺掉一些進程,進程優先順序越低的優先被清除。從高到低依次為: 1. foreground process 2. visible process 3. service process 4. background process 5. empty process 這5種優先順序別,其中empty
Time of Update: 2018-12-04
定義樣式和主題 res/values/style.xml<?xml version="1.0" encoding="utf-8"?><resources> <style name="mystyle1"> <item name="android:textColor">#ff0000</item> <item name="android:textSize">10sp</item>
Time of Update: 2018-12-04
package com.test.menu;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuInflater;import android.view.MenuItem;import android.view.SubMenu;import android.widget.Toast;public class MenuDemoActivity