Android 中的 framebuffer 和SurFaceFlinger的關係

 作者: 李先靜 xianjimli@gmail.com希望對那些在開發高通MSM7XXX平台的朋友有很大的協助FrameBuffer 在Android中並不像在其它GUI那樣直觀,抽象的層次比較多,加上GUI的更新是通過OpenGLES來做的。所以讓人很難搞清GUI更新的整個流程,最近要準備一個講稿,所以花了一些去研究,這裡做點筆記供大家參考,原始碼是基於高通平台的,這些代碼在網上都可以下載。FrameBuffer

android matrix 介紹2

上一篇Android畫圖之Matrix(一) 講了一下Matrix的原理和運算方法,涉及到高等數學,有點難以理解。還好Android裡面提供了對Matrix操作的一系列方便的介面。    Matrix的操作,總共分為translate(平移),rotate(旋轉),scale(縮放)和skew(傾斜)四種,每一種變換在Android的API裡都提供了set, post和pre三種操作方式,除了translate,其他三種操作都可以指定中心點。    

什麼時候加上android.intent.category.DEFAULT

 1、要弄清楚這個問題,首先需要弄明白什麼是implicit(隱藏) intent什麼是explicit(明確) intent。Explicit Intent明確的指定了要啟動的Acitivity ,比如以下Java代碼: Intent intent= new Intent(this, B.class) Implicit Intent沒有明確的指定要啟動哪個Activity ,而是通過設定一些Intent

Android畫圖之Bitmap(一)

最近寫電子書程式,設計到對映像的處理,主要是對 Bitmap 的處理,所以有一點小小的心得,拿出來跟大家分享一下。要把一個 Bitmap 畫到 View 上,必須用到的類有 android.graphics.Canvas, 和 android.graphics.Bitmap 。方法很簡單,在 View 裡面,重載 onDraw(Canvas canvas) 方法,然後用 canvas.drawBitmap() 方法,將其畫在螢幕上。Java代碼 public class MyView

Android系統事件的recycle原理

最近封裝一些功能性的jar包,因為需要產生一些動作,然後給調用者一些回調,所以用到了事件和監聽器。     舉個例子,比如DragListener和DragEvent,最開始寫的時候,每次Drag動作都觸發一個DragEvent事件,然後就得new一個DragEvent對象。後來感覺這樣太浪費記憶體了,然後就研究了一下系統的MotionEvent這個類,找到了好的解決方案。   

Android Surface Canvas

SurfaceFlinger對象建立過程示意1 SurfaceSession的建立用戶端請求建立Surface時,首先在要與SurfaceFlinger建立一個Session,然後再Session上建立一個Connection通過概念返回Bclient對象。WindowManagerService在添加第一個視窗前會檢查SurfaceSession是否建立,如何沒有建立,將會建立立一個執行個體來代表與SurfaceFlinger的一個串連。new

【android】說說GestureDetector.OnGestureListener onScroll函數

public abstract boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)Since: API Level 1Notified when a scroll occurs with the initial on down MotionEvent and the current move MotionEvent. The distance in x and y is also

Android 許可權 共用UID和簽名

 共用UID 安裝在裝置中的每一個Android包檔案(.apk)都會被分配到一個屬於自己的統一的Linux使用者ID,並且為它建立一個沙箱,以防止影響其他應用程式(或者其他應用程式影響它)。使用者ID 在應用程式安裝到裝置中時被分配,並且在這個裝置中保持它的永久性。通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中.所以預設就是可以互相訪問任意資料. 也可以配置成運行成不同的進程,

android make 命令使用

 如果android的source在android21檔案夾(即Makefile檔案的目錄)下,先執行cd android21,然後可以執行下面的命令;1、make Settings產生Settings.apk的檔案2、 make snod等同於make droid該命令產生一個新的系統映像system.img,速度比make快很多,但不穩定(有的時候不好用)將這個系統映像拷貝至sdk下cp out/target/product/generic/system.img

Android GUI 的更新過程

Android GUI 的更新過程2011-05-25 17:41 From: http://www.linuxgraphics.cn/android/gui_update_flow.html元件圖表相關組件如所示:ViewRoot在private void draw(boolean

Android編 譯系統分析

 1. Android編譯系統分析編譯指令碼及系統變數build/envsetup.sh指令碼分析在編譯原始碼之前通常需要在android原始碼頂層目錄執行 . ./build/envsetup.sh 目的是為了使用指令碼 envsetup.sh 裡面定義了一些函數:function help()function get_abs_build_var()function get_build_var()function check_product()function

Android手機進行無線調試

一,需要軟體兩個:1. z4root.apk :http://ub2.androidgame-store.com/android/new/game/14/2314/z4root.apk2.無線ADB調試adb_13006.apk :http://dl5.csdn.net/fd.php?i=319738907614108&s=0bba9e93b1673227945949e515d0f454二,使用放法:1.安裝z4root.apk 擷取root許可權

淺談Android Service 組件

    Service是Android系統提供的四大組件之一,它的地位和Activity的並列的,只不過沒有Activity的使用頻率高。顧名思義Service就是運行在背景一種服務程式,一般情況下,很少和使用者互動,最大的特點就是沒有可視化介面。         

Android操作framebuffer[zz]

如對Android原生(Natvie)C開發還任何疑問,請參閱《Android原生(Native)C開發之一:環境搭建篇》:http://blog.sina.com.cn/s/blog_4a0a39c30100auh9.html 雖然現在能通過交叉環境編譯器,並push到Android上執行,但那隻是console台程式,是不是有些單調呢?下面就要看如何通過Linux的 framebuffer

android matrix 介紹1

Matrix ,中文裡叫矩陣,高等數學裡有介紹,在影像處理方面,主要是用於平面的縮放、平移、旋轉等操作。        首先介紹一下矩陣運算。加法和減法就不用說了,太簡單了,對應位相加就好。影像處理,主要用到的是乘法 。下面是一個乘法的公式:         在 Android 裡面, Matrix 由 9 個 float 值構成,是一個 3*3 的矩陣。如。         沒專業工具,畫的挺難看。解釋一下,上面的 sinX 和 cosX ,表示旋轉角度的 cos 值和 sin

Android螢幕解析度詳解(VGA、HVGA、QVGA、WVGA、WQVGA)

 這些術語都是指螢幕的解析度。 VGA:Video Graphics Array,即:顯示繪圖矩陣,相當於640×480 像素; HVGA:Half-size VGA;即:VGA的一半,解析度為480×320; QVGA:Quarter VGA;即:VGA的四分之一,解析度為320×240; WVGA:Wide Video Graphics Array;即:擴大的VGA,解析度為800×480像素; WQVGA:Wide Quarter

Android編 譯系統結構

 2010-11-13 12:36 511人閱讀 評論(0) 收藏 舉報        圖1 android 的makefile結構 android的編譯檔案主要依賴於mk檔案,其源碼編譯名字是Android.mk,而不我們常見的Makefile檔案。 android目錄下的Makefile檔案,include了build/core目錄下的main.mk檔案。main.mk檔案   

android service 精闢解說

本地服務所謂本地服務,其實就是完全服務於一個進程的組件。本地服務的這種特性決定了它有特別的啟動方式。通常這類服務的典型案例,就是郵件輪詢。調用Context.startService()啟動服務12345678910111213141516171819202122232425262728293031323334353637383940414243444546

往android的核心添加驅動(其實就是添加linux核心驅動)

向android的核心添加驅動,其實就是向linux核心添加驅動。主要在兩個檔案裡添加點資訊,一個是Kconfig檔案,一個是Makefile檔案。比如你添加的驅動你代碼放到drivers目錄下面的XXX目錄,那麼修在該目錄下的Kconfig檔案和Makefile檔案。具體的修改方法:比如我現在修改drivers\staging\android\下的Kconfig檔案。config ANDROID_LOGGERtristate "Android log driver"default

android 開發中的b oot.img 和system.img淺析

在調試中遇到 改了init.rc後,燒了system.img後 但是始終看不到改了的init.rc ,在領導提醒後,才發現必須要燒boot.img才能 改掉init.rc ;這才意識到android開發真的是跟標準linux平台的開發 不同。雖然我知道boot.img 是由核心 和ramdisk 和啟動參數 一起構成,但是此時我才意識到,其實這裡的ramdisk 就是根檔案系統 的一部分。而system.img則可能就是一個啟動後才mount上來的system分區的內容。

總頁數: 2945 1 .... 498 499 500 501 502 .... 2945 Go to: 前往
Tags Index:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。