Time of Update: 2018-12-03
MediaPlayer那邊就不看了,從AudioTrack開始研究。1、AudioTrack::write函數調用函數obtainBuffer擷取到一塊buffer,然後把傳入的資料copy到擷取的buffer中。2、AudioTrack::obtainBuffer函數該函數的主要功能就是對傳入的audioBuffer進行賦值。看看audioBuffer的類型:class Buffer { public: enum { MUTE = 0x00
Time of Update: 2018-12-03
最近在看Android中播放延遲的問題,看了下代碼,發現AudioTrack類中的函數latency有以下注釋: /* Returns this track's latency in milliseconds. * This includes the latency due to AudioTrack buffer size, AudioMixer (if any) * and audio hardware driver.
Time of Update: 2018-12-03
第一步:主機nfs服務配置a. 確定虛擬機器IP[duli@] ifconfig //查看eth的IP,一般為192.168.1.*也可以自己配置虛擬機器IP[duli@] ifconfig eth0 192.168.1.123b. 建立nfs目錄 假設為/home/duli/nfs_root [duli@] sudo mkdir /home/duli/nfs_root c. 將開發板根檔案系統目錄內容拷貝到nfs目錄,並設定777的許可權
Time of Update: 2018-12-03
本文假設讀者已經瞭解RIL的基本知識從上層出發,在frameworks/base/telephony/java/com/android/internal/telephony/Phone.java中添加所要發AT命令的上層函數。Phone是個介面,因此,添加完後,得在實現Phone介面的java類裡面實現這個方法,實現Phone的類即GSMPhone.java位於frameworks/base/telephony/java/com/android/internal/telephony/gsm/G
Time of Update: 2018-12-03
http://blog.csdn.net/lightsoure/archive/2010/08/22/5830269.aspx這篇文章中我記錄了校準的笨方法,現在稍微完善下這個笨方法,寫個線性方程計算機,計算這個公式:ts->xp=(long) ((a2+(a0*x)+(a1*y))/a6);ts->yp=(long) ((a5+(a3*x)+(a4*y))/a6); //printk("x=%d, y=%d/n",(int) ts->xp,(int) ts->yp)
Time of Update: 2018-12-03
很多朋友在用ContentProvider的時候,對複寫的方法getType(Uri
Time of Update: 2018-12-03
@Override是虛擬碼,表示重寫(當然不寫也可以),不過寫上有如下好處:1、可以當注釋用,方便閱讀2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯比如你如果沒寫@Override而你下面的方法名又寫錯了,這時你的編譯器是可以通過的(它以為這個方法是你的子類中自己增加的方法) example: 在重寫父類的onCreate時,在方法前面加上@Override 系統可以幫你檢查方法的正確性。例如,public void onCreate(Bundle
Time of Update: 2018-12-03
在Android類庫中,各種包寫成android.*的方式,重要包的描述如下所示:android.app :提供高層的程式模型、提供基本的運行環境android.content 包含各種的對裝置上的資料進行訪問和發布的類android.database :通過內容提供者瀏覽和操作資料庫android.graphics :底層的圖形庫,包含畫布,顏色過濾,點,矩形,可以將他們直接繪製到螢幕上.android.location :定位和相關服務的類android.media
Time of Update: 2018-12-03
今天測試程式,在虛擬機器上運行出問題,於是用真機來測試,但是發現ubuntu下不認。。調用./adb devices顯示如下。。結果無法用真機測試。List of devices attached emulator-5554 device???????????? no permissionsgoogle小米真機測試無果,google ubuntu android
Time of Update: 2018-12-03
最近做作業選了這個題目。。其實難度還是挺大的。。最近要考試,本來有很多心得要寫,來不及,先附上部分亮點以及源碼:1.OAuth1.0認證2.支援下拉重新整理,自動載入更多的ListView--AutoGetMoreListView.java3.圖片非同步下載,同時可設定在載入圖片時候顯示的圖片或多張圖片順序播放--AsyncImageView.java4.支援GIF動態圖查看,多點觸控瀏覽圖片。--MyImageView.java && MyView.java
Time of Update: 2018-12-03
作者:gzshun. 原創作品,轉載請標明出處!Vold是Android系統處理磁碟的核心部分,取代了原來Linux系統中的udev,主要用來處理Android系統的熱插拔存放裝置。在Android2.2以後的系統中,vold源碼已經移到了system目錄下,vold目錄包含以下源碼:├── Android.mk├── Asec.h├── CleanSpec.mk├── CommandListener.cpp├── CommandListener.h├── Devmapper.cpp├──
Time of Update: 2018-12-03
作者:gzshun. 原創作品,轉載請標明出處!來源:http://blog.csdn.net/gzshun寫了好幾篇文章,花兒都快謝了,終於輪到Framework發揮領導的身份了,Framework作為介面與vold之間的橋樑,使用者是Framework的大爺,那麼Framework就是Vold的大哥大,Framework發出一個命令,Vold不敢不遵從,只能照著Framework的意思照辦,千萬不能出差錯,不然Android就要丟大臉了,登不上三國爭霸的舞台,iOS VS Android
Time of Update: 2018-12-03
方法一:重寫onBackPressed方法Java代碼 @Override public void onBackPressed() { // do something what you want super.onBackPressed(); } 方法二:重寫dispatchKeyEventJava代碼 @Override public boolean dispatchKeyEvent(KeyEvent event) { /
Time of Update: 2018-12-03
Android的最重要的組件式service和activity,那麼在使用的過程中,我們最常遇到的問題是他們之間的通訊問題。當然今天我們不研究底層的實現問題,我從上層的應用的如何使用的角度進行研究。首先Activity調用Service這個是比較基礎的,它有兩種常見的方法;第一, 通過Intent,這個比較簡單了,可以指定package name和class
Time of Update: 2018-12-03
1. 使用者空間的介面在kernel/power/main.c中,定義了一組sysfs的屬性檔案,其中一個定義是:power_attr(state);把這個宏展開後:staticstruct kobj_attribute state_attr = { \ .attr ={ \ .name = "state", \ .mode = 0644,
Time of Update: 2018-12-03
原文地址:https://developer.android.com/tools/testing/activity_testing.htmlActivity測試非常依賴於android instrumentation架構,不像其它組件,Activity有比較複雜的基於回調方法的生命週期,這些方法不能被直接調用,除了instrumentation。同時,程式中向UI發送事件的唯一途徑就是instrumentation。本文檔描述如何用
Time of Update: 2018-12-03
原文地址:http://developer.android.com/tools/testing/testing_accessibility.html要使你的應用程式能夠被各種有障礙的人使用,測試是很重要的一部分。參照design和development來進行開發是很重要的一步,但是協助工具功能測試能夠協助你發現設計和開發過程中不明顯的問題。這份協助工具功能測試清單將帶領你瀏覽協助工具功能測試的各個重要方面,包括整體的目標、必需的測試步驟、推薦的測試方式以及特殊的考慮。文檔同時講述了如何在andr
Time of Update: 2018-12-03
有時候,我們的應用需要判斷一個service是否正在運行,下面的代碼可以判斷AlarmService是否正在運行:private boolean isMyServiceRunning() {ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);for (RunningServiceInfo service :
Time of Update: 2018-12-03
原文地址:https://developer.android.com/tools/testing/testing_otheride.html這章主要講解使用命令列來創建測試工程、創建測試類、運行測試和使用Instrumentation 命令。創建測試工程創建一個新的測試工程的方法為:android create test-project -m <main_path> -n <project_name> -p <test_path>下面講述上面命令列所涉及到的參
Time of Update: 2018-12-03
第一步,建立廣播接收類public class MyBroadcastReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent){// TODO Auto-generated method stub// 收到系統啟動完畢廣播if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){Intent