Time of Update: 2018-12-05
Java端發起調用,MediaPlayer會轉至MediaPlayerService,然後會調用相應的解碼工具解碼後建立AudioTrack,所有待輸出的 AudioTrack在AudioFlinger:AudioMixer裡合成,然後通過AudioHAL(AudioHardwareInterface的實際實現者)傳到實際的硬體來實現播放。 http://www.arm9.org.ru/redirect.php?tid=698&goto=lastpostlinux_sound_alsa_
Time of Update: 2018-12-05
/system/build.prop 是一個屬性檔案,在Android系統中.prop檔案很重要,記錄了系統的設定和改變,類似於/etc中的檔案。這個檔案是如何產生的呢?build/tools/buildinfo.sh 指令碼就是專門用於產生build.prop檔案build/core/Makefile中使用build/tools/buildinfo.sh
Time of Update: 2018-12-05
向android的核心添加驅動,其實就是向linux核心添加驅動。主要在兩個檔案裡添加點資訊,一個是Kconfig檔案,一個是Makefile檔案。比如你添加的驅動你代碼放到drivers目錄下面的XXX目錄,那麼修在該目錄下的Kconfig檔案和Makefile檔案。具體的修改方法:比如我現在修改drivers/staging/android/下的Kconfig檔案。config ANDROID_LOGGER tristate "Android log driver"
Time of Update: 2018-12-05
給雙引號中的內容加彩色: private void highlightSearchHint(Spannable hintSpan){ String hint = hintSpan.toString(); Log.i(TAG, "highlightSearchHint " + hint); int index = -1; int start = 0; boolean foundStartQuote = false;
Time of Update: 2018-12-05
轉自Android中的進程是託管的,當系統進程空間緊張的時候,會依照優先順序自動進行進程的回收.由此帶來三個問題:回收規則: 什麼時候回收與回收哪一個避免誤殺: 如何阻止被回收資料恢複與儲存: 被回收了怎麼辦 Android將進程分為6個等級,它們按優先順序順序由高到低依次是:1.前台進程( FOREGROUND_APP)2.可視進程(VISIBLE_APP )3. 次要服務進程(SECONDARY_SERVER )4.後台進程
Time of Update: 2018-12-05
我們可以通過ComponentName以及Intent的setComponent來實現:在一個應用程式裡面啟動另外一個已經安裝的應用程式或系統程式。下面是一個在一個應用程式裡面啟動另外一個已經安裝的程式,如下: //組件名稱,第一個參數是應用程式的包名,後一個是這個應用程式的主Activity ComponentName com = new ComponentName("com.antroid.Test",
Time of Update: 2018-12-05
下面的這張圖呈現了Android中最基本的UI構造塊。該圖片表示的邏輯結構也是出自《Android系統原理及開發要點詳解》一書。Android中的UI元素常常在布局檔案(Layout)中進行描述,在Java原始碼中通過findViewById()函數根據ID獲得每一個View的控制代碼,並且轉換成實際的類型來使用。android.view.View的擴充者也稱作widget,通常包含在android.Widget包中,也就是在UI元素中使用的UI元素。這些android.view.View的擴充
Time of Update: 2018-12-05
首先上:為了我表述方便,我將的顯示地區進行標識,如:中的左右箭頭表示使用者手勢的方向和位置,當我們在View1的箭頭位置進行手勢時可以實現左右滑動的介面轉場效果,但是在View2的箭頭位置進行手勢時無法被識別到,如果在View1中還有其它的控制項,如按鈕,也同樣會出現這樣的問題,為什嗎?怎麼解決?其實原因也很簡單,大家也可以猜得到,就是,View2中的TextView控制項將Touch訊息處理了,或者說TextView控制項沒有響應左右滑動的手勢。在網上也有相關的資料和文章來說明上面的問題怎麼解
Time of Update: 2018-12-05
for displays with square pixelsList of noteworthy and common display sizes and monitors/PCs/notebooks/tablets/phones:352x416 @ 2.1 Nokia N90480x272 @ 3.8 Sony PSP Go480x320 @ 3.5 Apple iPhone640x360 @ 3.2 Nokia N97 mini640x480 @ 2.83 FIC Neo1973
Time of Update: 2018-12-05
這是羽化第二篇部落格,目前依舊菜鳥一隻。最近在玩紛爭2,回想小學打FF8的時候真是感慨萬千,每當Eyes on
Time of Update: 2018-12-05
在2.2中可以設定螢幕的方向為反轉橫屏:setRequestedOrientation(8);,因為系統沒有公開出這個參數的設定,不過在源碼裡面已經定義了SCREEN_ORIENTATION_REVERSE_LANDSCAPE這個參數,但是無法固定螢幕的方向為反轉橫屏即右橫屏。在設定螢幕方向為右橫屏的時候
Time of Update: 2018-12-05
上一篇文章http://blog.csdn.net/octobershiner/article/details/6639040 介紹了sensor的基本知識以及一個使用其中加速度感應器擷取資料的例子。 提到過一個問題,就是說感應器重新整理頻率太快,假如我們要做一個UI中,需要根據方向資料繪製一個一個移動的箭頭,那麼就要太過頻繁的重新整理繪製介面,佔用很多的資源,體驗性也會很差,《android
Time of Update: 2018-12-05
大家好,我們上一節講的是LayoutInflater 的 使用,而這一節我將講一下MenuInflater ,顧名思義,LayoutInflater 是用來解析定義在layout 下的布局檔案,那麼MenuInflater 是不是用來解析定義在menu 目錄下的菜單布局檔案呢? 恭喜你答對了!(*^__^*) 嘻嘻…… 我們傳統意義上 的定義菜單感覺比較繁瑣,當我們使用MenuInflater 來產生菜單,你會發現是多麼的爽朗,呵呵,我今天的小Demo,是定義四個菜單,並且實現了一個菜單事件。
Time of Update: 2018-12-05
近日,Google的一位工程師Sans Serif發布了一篇博文非常清楚的描述了Android系統架構,中國移動通訊研究院院長黃曉慶在新浪微博上推薦了該文,並認為文中對Android的介紹很好,您可以看一下Google工程師眼中的Android系統架構是什麼樣的。以下為Sans Serif博文的譯文: Andriod是什麼? 首先,就像Android開源和相容性技術負責人Dan
Time of Update: 2018-12-05
android低記憶體管理的宗旨是:對於使用實體記憶體最多,並且重要性最小的進程進行kill操作,以達到記憶體最佳化的目的。具體實現過程是:1
Time of Update: 2018-12-05
一.WIFI狀態的擷取和更改適用於 SDK1.0 , SDK1.5 1.擷取WIFI狀態方法1:通過WifiManager進行操作 WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); wifiManager.isWifiEnabled();
Time of Update: 2018-12-05
Java Native Interface (JNI)標準是java平台的一部分,它允許Java代碼和其他語言寫的代碼進行互動。JNI 是本地編程介面,它使得在 JAVA 虛擬機器 (VM) 內部啟動並執行 Java 代碼能夠與用其它程式設計語言(如 C、C++ 和組合語言)編寫的應用程式和庫進行互動操作。1.從如何載入.so檔案談起 由於Android的應用程式層的類都是以Java寫的,這些Java類編譯為Dex型式的Bytecode之後,必須靠Dalvik虛擬機器(VM:
Time of Update: 2018-12-05
android代碼完全沒有錯誤,但是有時候會發出“應用程式×××無法響應”的異常,這讓很多做android開發的人員很是鬱悶,所以我這裡就專門來解析一下,以及談談它的解決方案。 android
Time of Update: 2018-12-05
轉自:http://blog.csdn.net/you_and_me12/article/details/7327030 SlidingDrawer的用法比較多,就不說明了。如果設定了屬性layout_height="wrap_content"是不起作用的,在原來的SlidingDrawer中的onMeasure()方法使得layout_height一直都是fill_parent,但是使用layout_height="固定高度"也是可以!以下重寫SlidingDrawer,實現如下(右圖效果):
Time of Update: 2018-12-05
以下文字,全是個人一個一個打出來的。而且不是作家。在表述上及文采上可能不是太好。請諒解。 當我們在使用listview的時候。有時候自訂adapter的時候,是不是會發現在getview裡列印日誌的時候,重複調用很多次?有時候4次。有的嚴重甚至到10次,當我們在listview中移動的時候。每移動一列都會調用很多次,這樣大大影響到效率!其實這和listview本身在android上的機制有關。下面我開始來介紹一下吧: