Time of Update: 2018-12-04
最近本人想通過截獲觸控螢幕的訊息,從來能夠用來進行相關的操作。但是目前的Android系統並不能夠提供對這些事件的支援,因此本人採取了圍魏救趙的方式試圖對此問題能夠進行很好的解決。 前面本人已經撰文描述了訊息的相關知識。已經比較清晰的交代了訊息的一般處理流程包括:從產生到訊息的擷取以及訊息的處理過程。畢竟還是存在一些特殊的訊息需要進行特殊的處理。 輸入訊息的處理從本質上來講的話:將得到的輸入訊息經過特殊的方式處理後分發到相應的地方而做出正確的動作。
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 的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
出自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
在android上做了一個月左右的launcher方面的項目,伴隨著R3的發出,基本進入維護階段,由於大部分時間我都是在android提供的源碼Launcher中做修改,所以對它的整體基本有了概念,現在開始做一些細節上的總結,按照國際慣例和從整體到局部的原則,我還是先對Launcher做一個整體上的描述:從manifestl開始看起,先是一些許可權方面的設定(補充加上:<uses-sdk android:minSdkVersion="7" />),而後即是一個application(
Time of Update: 2018-12-04
在Workspace.Java類實現,相關方法有: 1) computeScroll():重寫了父類的computeScroll();主要功能是計算拖動的位移量、更新背景、設定要顯示的螢幕(setCurrentScreen(mCurrentScreen);)。 2) dispatchDraw():重寫了父類的dispatchDraw();主要功能是判斷抽屜是否開啟、繪製指定的螢幕,可以繪製當前一屏,也可以繪製當前螢幕和下一螢幕,也可以繪製所有的螢幕,這兒的繪製指顯示螢幕上的child(例如:
Time of Update: 2018-12-04
前期下載,配置ndk環境在此忽略,之前有寫過。1:建立一個android 工程:比如叫項目名叫testNDK,程式名:testNDK,包名:com.cheng,activity:testNDK2:在包下建立一個java類,名字叫“JNI”,內容如下:package com.cheng;public class jni{ public native int GetCint(); public native String getCstring();
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