原创 Android MediaPlayer 客戶端框架以及消息傳遞

當application需要播放音頻或者視頻文件的時候,通過構造一個java層的MediaPlayer對象來控制播放行爲。實際的播放控制其實並不是在這個類中實現。android基於binder的通信機制和openmax的框架實現了自己的播

原创 Android AsyncTask 原理淺析

        AsyncTask  可以在後臺完成相應的操作,然後將結果傳遞給UI主線程進行顯示等,以減輕UI主線程的工作。         AsyncTask  類內部封裝了task隊列,task處理過程。用戶通過實現相應的抽象函數,

原创 在筆記本安裝Ubuntu11.04增強功能

sudo apt-get install dkms build-essential linux-headers-$(uname -r) sudo /

原创 處理器棧幀佈局

處理器棧幀佈局 函數的調用會導致隱式的內存分配,棧幀就是在這一過程構造的。顯式的內存分配和釋放可以使用函數malloc(),calloc(),realloc(),new,free() 和delete等,這時候的分配的內存是位於堆上的。典

原创 Android Binder 框架

        Binder是Android 提供的IPC通信方式之一,也無疑是最重要的通信方式之一。整個Android框架處處可以見到Binder的身影。        下圖畫出了Binder從Java到native層的框架:    

原创 Android 進程的重要程度等級劃分

1.Foreground process    a.有一個Activity正在和用戶互動   b.有一個Service被綁定於一個正在和用戶互動的Activity   c.有一個Service調用了startForeground()函數

原创 Android sp,wp,RefBase淺析

對於native層new出來的c++對象的生命週期的管理,Android通過對這個對象引用計數的方式實現對象生命週期的管理(自動析構和釋放內存)。爲此Android提供了兩個引用計數幫助類:sp,wp。sp,wp都是模板類,模板參數就是繼

原创 MediaProvider 數據庫Audio相關表格對應關係

Android的MediaProvider提供了一系列的Audio,Video,image等表格,用於APP檢索相關的音視頻圖片信息。 首先來看看Audio相關的表格: ×圖中顏色相同的部分表示來自於同一張表格或者視圖 ×紅色表的名字表示

原创 SQLiteDatabase資源釋放

SQLiteDatabse是android SDK提供的一個sqlite管理類,用於創建,刪除,執行sql命令等任務。每一個sqlite數據庫對應着一個SQLiteDatabase幫助類。SQLiteDatabase提供了一系列的靜態工廠

原创 跟着Android學設計模式:工廠方法(Factory method)

    閱讀Android的優秀源碼,能夠提高自己的設計能力和編程能力,代碼中所運用的設計模式更是讓我歎爲觀止。在閱讀源碼的過程中,我將把自己所見識到的設計模式記錄下來,以便日後參考。    本文章記錄的是工廠方法。工廠方法定義了一個用於

原创 跟着Android學設計模式:命令模式(command)

命令模式簡介 將一個請求封裝成對象,從而使你可以用不同的請求對客戶進行參數化;對請求排隊或記錄請求日誌,以及支持可撤銷的操作。命令模式可以將調用操作的對象和知道如何實現該操作的對象解耦。同時命令模式是面向過程變成中回調機制的一個替代。

原创 Android 應用編程基礎

1.Android系統是一個多用戶的Linux系統,默認情況下,Android系統給每一個app分配一個唯一的用戶ID;每一個app運行在自己的linux進程中,每一個進程都有屬於自己的VM。 2.Android的兩個app可以分享相同的

原创 Android MTP 文件瀏覽Demo

本apk實現了MTP文件瀏覽的簡單功能。通過Demo apk可以瀏覽連接到當前設備上的MTP設備上的文件。 Demo路徑:http://download.csdn.net/detail/sailingthink/7420883

原创 OpenMAX IL介紹與其體系

1  OpenMAX IL介紹與其體系 這一部分的文檔描述 OpenMAX IL的特性與體系。 1.1  OpenMAX IL 簡述 OpenMAX IL 軟件接口層定義了一套API,用於訪問系統中的組件。OpenMAX IL軟件層的

原创 我的友情鏈接

51CTO博客開發