Time of Update: 2018-12-04
android.os下的FileObserver類是一個用於監聽檔案訪問、建立、修改、刪除、移動等操作的監聽器,基於linux的inotify。FileObserver是個抽象類別,必須繼承它才能使用。每個FileObserver對象監聽一個單獨的檔案或者檔案夾,如果監視的是一個檔案夾,那麼檔案夾下所有的檔案和級聯子目錄的改變都會觸發監聽的事件。 所能監聽的事件類型如下: ACCESS,即檔案被訪問 MODIFY,檔案被 修改 ATTRIB,檔案屬性被修改,如
Time of Update: 2018-12-04
最近由於把手機換成了iphone所以開發時使用了模擬器,發現在停止一段時間後,在運行debug程式時,提示模擬器timeout逾時,通過尋找方法瞭解到:[2012-07-26 21:49:54 - h3] Failed to install h3.apk on device 'emulator-5554': timeout[2012-07-26 21:49:54 - h3] Launch
Time of Update: 2018-12-04
在前文中,我們簡要介紹了Android應用程式視窗的架構。Android應用程式視窗在啟動並執行過程中,需要訪問一些特定的資源或者類。這些特定的資源或者類構成了Android應用程式的運行上下文環境,Android應用程式視窗可以通過一個Context介面來訪問它,這個Context介面也是我們在開發應用程式時經常碰到的。在本文中,我們就將詳細分析Android應用程式視窗的運行上下文環境的建立過程。
Time of Update: 2018-12-04
從來沒用學過java,也是第一個用android,所以學習還是從經典的hello word開始: 建立第一個Android開發項目: 1、選擇File->New->Project中選擇Android Project, 2、點擊下一步,進入介面如下: 點擊完成後,會產生如下的代碼:public class HelloAndroid extends Activity { /** Called when the activity is first
Time of Update: 2018-12-04
在Android中,沒有獨立的類似於udev或者mdev的使用者程式,這個功能整合到了init中做了。代碼見:system/core/init/init.c檔案,如下:if (ufds[0].revents == POLLIN) handle_device_fd(device_fd);其中handle_device_fd(device_fd)函數在system/core/init/devices.c中實現,參數device_fd 由函數device_init()->open_uevent_
Time of Update: 2018-12-04
安裝和卸載Android應用程式(apk包) 一、 安裝 1. 安裝第三方應用$ adb install apk檔案名稱2. 安裝系統應用$ adb remount$ adb push apk檔案名稱 /system/app // apk檔案名稱形如testme.apk二、 卸載1. $ adb uninstall 包名 // 包名形如com.android.testme2.
Time of Update: 2018-12-04
Android模擬器或真機都會有一定大小的內部儲存空間(不是指記憶體,指的是持久化儲存空間),但這並不夠,有時我們需要更大的儲存空間。為了在模擬器上開發使用擴充儲存空間的程式,需要在PC上類比一個SDCard的虛擬檔案,然後載入到模擬器中。sdcard檔案使用tools目錄下的mksdcard.exe命令產生,假設要產生大小256M的sdcard檔案,可以使用如下的命令:mksdcard -l mycard 256M card/mycard.img(這個要複製到命令列中的,我手敲進去竟然不能識別
Time of Update: 2018-12-04
第一種方法是用系統的資源,這種方法只能將進度情況顯示到標題列中。英文是本文作者的一段嘮叨,很簡單,我就不用再翻譯了吧。When using the webview, something that drives me crazy, specially if you are in a place with a very slow internet connection, is not knowing what is happening with the webpage, is it loading?
Time of Update: 2018-12-04
一、回呼函數回呼函數就是一個通過函數指標調用的函數。如果你把函數的指標(地址)作為參數傳遞給另一個函數,當這個指標被用為調用它所指向的函數時,我們就說這是回呼函數。回呼函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用於對該事件或條件進行響應。詳細解釋:客戶程式C調用服務程式S中的某個函數A,然後S又在某個時候反過來調用C中的某個函數B,對於C來說,這個B便叫做回呼函數。例如Win32下的視窗過程函數就是一個典型的回呼函數。一般說來,C不會自己調用B,C提供B的
Time of Update: 2018-12-04
Monkey是一個命令列工具,它向系統發送偽隨機的使用者事件流,實現對正在開發的應用程式進行壓力測試。Monkey的基本用法可以通過開發機器上的命令列或指令碼來啟動Monkey。$ adb shell monkey [options]如果不指定options,Monkey將以無反饋模式啟動,並把事件任意發送到安裝在目標環境中的全部包。Monkey包括許多選項--v命令列的每一個 -v 將增加反饋資訊的層級。 Level 0( 預設值 ) 除啟動提示、測試完成和最終結果之外,提供較少資訊。
Time of Update: 2018-12-04
按鍵在Android系統中,有著不同的代表意義。以前的全鍵盤的手機代碼沒有閱讀過,所以也不是很瞭解。本人介紹的是在觸控螢幕的手機上的按鍵訊息的處理流程。在現在觸控螢幕成為主流的輸入裝置的情況下,很多廠商都在努力的做到取消物理按鍵的工作,但是目前就本人的學習情況來看,完全取消在目前看來還是不是那麼現實。有如下幾點原因:首先,本人說明的是目前原生的Android系統上。其次,Android系統為了節省電量,在電源管理的過程中設定了休眠的方式。而休眠的時候觸控螢幕同樣進入休眠狀態。因此,不能夠接收到使
Time of Update: 2018-12-04
Toast可以用來顯示提示資訊,如果使用者連續做某個動作,持續不斷的彈出Toast,預設情況下會都顯示出來,由於是toast是排隊顯示的,這樣就會持續很長時間。通過查看API可知,可以執行show顯示之前,先調用cancel取消之前的顯示,這樣就不會出現連續顯示的問題,只顯示最後一次的提示。但是,不是所有的版本上都可以這樣使用的。通過查看Toast類的cancel函數可知,cancel函數在不同版本上有變化。如果是在2.3,4.0版本上,執行cancel後接著調用show函數就會拋出異常,log
Time of Update: 2018-12-04
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:Android2.1(含)以後的版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個目錄,這三個目錄主要是為了支援多解析度。dpi是“dot per inch”的縮寫,每英吋像素數。四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)一般情況下的普通螢幕:ldpi是120,m
Time of Update: 2018-12-04
很多網友不明白如何在Android平台上捕獲Back鍵的事件,Back鍵是手機上的後退鍵,一般的軟體不捕獲相關資訊可能導致你的程式被切換到後台,而回到案頭的尷尬情況,在Android上有兩種方法來擷取該按鈕的事件。 1.直接擷取按鈕按下事件,此方法相容Android 1.0到Android 2.1 也是常規方法,直接重寫Activity的onKeyDown方法即可,代碼如下:@Overridepublic boolean onKeyDown(int keyCode, KeyEvent
Time of Update: 2018-12-04
田海立@CSDN2012-06-30 Android中已經實現了SMS PDU的解析、WSP的解析,得到了WBXML封裝的資料,並發出了廣播"android.provider.Telephony.WAP_PUSH_RECEIVED"。原生實現中還沒有對mimeType類型為WAP PUSH SI 和WAP PUSH SL 的該廣播的響應,亦即,缺少對WBXML封裝的PUSH資料的處理。本文通過分析總結Android中的原生實現,給出WAP PUSH
Time of Update: 2018-12-04
方法一: public void DownloadFromUrl(String DownloadUrl, String fileName) { try { File root = android.os.Environment.getExternalStorageDirectory(); File dir = new File (root.getAbsolutePath(
Time of Update: 2018-12-04
這裡說的程式是指在ndk下編譯出來的可執行程式,因為公司的usb介面被封死了,所以想用模擬器直接調試。但是要調試的程式依賴一個共用庫,在真機上可以直接將共用庫拷貝到/system/lib目錄下,就可以運行了。但模擬器上卻不行,拷貝東西到系統區時會報錯(Cannot allocate memory),讓人十分鬱悶。後來發現/init.rc裡面開始幾句是這樣的:# setup the global environment export PATH
Time of Update: 2018-12-04
android:digits="1234567890.+-*/%\n()"限制輸入框中只能輸入自己定義的這些字串 如果輸入其它將不予以顯示android:numeric="integer"限制輸入框中只能輸入數字android:phoneNumber="true"限制輸入框中只能輸入手機號碼android:password="true"限制輸入框中輸入的任何內容將以"*"符號來顯示android:hint="預設文字"輸入內容前預設顯示在輸入框中的文字android:textColorHint=
Time of Update: 2018-12-04
1.斷行符號分行符號不能是0x0d 0x0a,必須是0x0a:一般在windows進行應用開發,windows下文本換行是用0x0d 0x0a 兩位元組表示的,而linux下是用0x0a一個位元組表示的,如果指令碼是在windows下寫的,就要注意這個問題了,可以用UE的16進位看到,把0x0d手動改為0x0a。否則不能正常運行指令碼2.指令碼的最開始一行應該是:#!/system/bin/sh3.指令碼中的一些命令和檔案應該寫全路徑,否則也不能運行:ls
Time of Update: 2018-12-04
在android中多點觸控很很好玩的技術,多點觸控可以使你所做的遊戲可玩性更高。首先先講講多點觸控的實現方法。event.getAction()//擷取觸控動作比如ACTION_DOWNevent.getPointerCount();//擷取觸控點的數量,比如2則可能是兩個手指同時按壓螢幕event.getPointerId(nID);//對於每個觸控的點的細節,我們可以通過一個迴圈執行getPointerId方法擷取索引event.getX(nID);//擷取第nID個觸控點的x位置event