最近做到的應用做剛好需要添加捷徑的功能, 在參考了原始碼和網上一些其他資料後做了出來. 在做的時候遇到兩個問題,一. 程式卸載後案頭捷徑仍然存在: 關於此問題, 網上的資料和實際中很多應用程式的老版本或者目前的版本仍存在. 參考原始碼後,我找出瞭解決方案: 建立shortcut時需要設定 Extre_ShortCut_Intent 的action.和category,使建立的shortcut與自己的應用產生綁定的關係:二.
1、 使用android:autoLink="all" 只需在TextView中加入這個屬性,而在TextView裡面寫的文字中包含網址、電話、email的會自動加入串連地址。 如: <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text1" android:layout_width="match_parent" android:layout_height="mat
1、為什麼要用緩衝緩衝是存取資料的臨時地,因為取未經處理資料代價太大了,加了緩衝,可以取得快些。緩衝可以認為是未經處理資料的子集,它是從未經處理資料裡複製出來的,並且為了能被取回,被加上了標誌。在android開發中,經常要訪問網路資料比如大量網狀圖片,如果每次需要同一張圖片都去網路擷取,這代價顯然太大了。可以考慮設定本地檔案快取和記憶體緩衝,儲存從網路取得的資料;本地檔案快取空間並非是無限大的,容量越大讀取效率越低,可設定一個折中緩衝容量比如10M,如果緩衝已滿,我們需要採用合適的替換策略換掉
跟蹤Activity的源碼就會發現:Activity.attch() -> PolicyManager -> Policy -> PhoneWindow -> mLayoutInflater.inflate()&mContentParent.addView()這隻是一個簡單的跟蹤流程說明。通過跟蹤原始碼,就可以很清晰的看出他們三者的關係。
一、線程間通訊的Message機制1、Message介紹frameworks\base\core\java\android\Os\Message.javaMessage是線程之間傳遞資訊的載體,包含了對訊息的描述和任意的資料對象。Message中包含了兩個額外的 int欄位和一個object欄位,這樣在大部分情況下,使用者就不需要再做記憶體配置工作了。雖然Message的建構函式是public的,但是最好是使用Message.obtain( )或Handler.obtainMessage( )
ListView在一般的安卓應用中大量地使用,因此我整理出來一些個人認為比較特別的屬性,通過設定這樣的屬性可以做出更加美觀的列表:首先是stackFromBottom屬性,這隻該屬性之後你做好的列表就會顯示你列表的最下面,值為true和falseandroid:stackFromBottom="true"
andriod提供了 Handler 和 Looper 來滿足線程間的通訊。例如一個子線程從網路上下載了一副圖片,當它下載完成後會發送訊息給主線程,這個訊息是通過綁定在主線程的Handler來傳遞的。在Android,這裡的線程分為有訊息迴圈的線程和沒有訊息迴圈的線程,有訊息迴圈的線程一般都會有一個Looper,這個事android的新 概念。我們的主線程(UI線程)就是一個訊息迴圈的線程。針對這種訊息迴圈的機制,我們引入一個新的機制Handle,我們有訊息迴圈,就要往訊息迴圈裡
項目名:HelloFromC一、在開始jni編程之前對我們使用的環境進行如下配置:(在windows環境下)1、下載android-ndk-r7b,解壓放在C:\android-ndk-r7b目錄下。(方便輸入命令,也可以自定目錄)2、下載cygwin。 安裝的時候,最高版本進行安裝。3、配置NDK的 cygwin環境變數 為了方便直接在命令列裡面使用ndk-build需要給cygwin的環境變數裡面添加ndk的目錄目錄/etc/profile/4、運行cygwin。(可輸入如下命令:mak
Fragment是activity的介面中的一部分或一種行為。你可以把多個Fragment們組合到一個activity中來建立一個多面介面並且你可以在多個activity中重用一個Fragment。你可以把Fragment認為模組化的一段activity,它具有自己的生命週期,接收它自己的事件,並可以在activity運行時被添加或刪除。Fragment不能獨立存在,它必須嵌入到activity中,而且Fragment的生命週期直接受所在的activity的影響。例如:當activity暫停時,
Android實現介面組件的抖動效果採用的Animation動畫, 在系統提供的API Demos:目錄為 \android-sdk\samples\android-8\ApiDemos 中已經實現了簡單的抖動效果 :具體使用如下:第一步:準備兩個動畫效果的XML檔案,加入到 res/anim/目錄下:Shake.xml檔案:<translate xmlns:android="http://schemas.android.com/apk/res/android" android:
Android開發規範之編碼規範1,java代碼中不出現中文,最多注釋中可以出現中文,中文統一寫在strings.xml中;2,局部變數命名、靜態成員變數命名 只能包含字母,單字首大寫,其他字母都為小寫3,常量命名只能包含字母和_,字母全部大寫,單詞之間用_隔開4,布局檔案中的id命名命名模式為:view縮寫_模組名稱_view的邏輯名稱常用控制項的縮寫如下LayoutView:lv_RelativeView : rv_TextView : tv_ImageView :
一. 修改本機藍牙裝置的可見度二. 掃描周圍可用的藍牙裝置Eg:一. 資訊清單檔AdroidManifest.xml:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.se7en" android:versionCode="1"
Android的虛擬機器是基於寄存器的Dalvik,它的最大堆大小一般是16M。但是Android採用的是Java語言編寫,所以在很大程度上,Android的記憶體機制等同於Java的記憶體機制,在剛開始開發的時候,記憶體的限制問題會給我們帶來記憶體溢出等嚴重問題。在我們不使用一些記憶體的時候,我們要盡量在Android或者其他平台上避免在運行其他程式時,儲存必要的狀態,使得一些死進程所帶來的記憶體問題,應該盡量在關閉程式或者儲存狀態的時候釋放掉,這樣能提高系統在運行方面的流暢性。 Androi
在android的項目開發中,都會遇到後期功能拓展增強與主程式碼變更的現實矛盾,也就是程式的靈活度。 由於linux平台的安全機制,再加上dalvik的特殊機制,各種許可權壁壘,使得開發一個靈活多變的程式,變得比較困難,不像pc平台下那麼容易。 這裡實際上可以借鑒傳統軟體中擴充程式的方法: 也就是外掛程式的實現. 如目前所有的瀏覽器,比如我們使用的eclipse,以及很多優秀的軟體,都使用了此種方式. 這樣輕鬆實現了軟體的功能擴充,而升級功能時只用更新對應外掛程式,
monkey 壓力測試adb -d shell monkey -p your.package.name -v 6000 一、 什麼是Monkey Monkey是Android中的一個命令列工具,可以運行在模擬器裡或實際裝置中。它向系統發送偽隨機的使用者事件流(如按鍵輸入、觸控螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效方法。 二、 Monkey的特徵
CountDownTimer這個類,從名字上面大家就可以看出來,記錄下載時間。將後台線程的建立和Handler隊列封裝成為了一個方便的類調用。 查看了一下官方文檔,這個類及其簡單,只有四個方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面兩個是抽象方法,所以要重寫一下。 下面是官方給的一個小例子:1. new CountdownTimer(30000, 1000) { 2. public void onTick(long millisUntilFini
Traceview是android平台配備一個很好的效能分析的工具。它可以通過圖形化的方式讓我們瞭解我們要跟蹤的程式的效能,並且能具體到method。在SDK路徑\tools目錄下.1.在開始使用TraceView你要注意: 你的裝置和模擬器必須設定SD card 和 你的程式擁有對SD card 具有讀寫操作的許可權(<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android的應用程式安裝包APK如果是在高版本的android jar上開發的是無法在低版本的android SDK上跑的,所以我們需要將我們已經開發好的應用程式換上低版本的android jar包重新編譯一個APK,那麼如何簡單的在高版本的工程中直接修改呢:1、 eclipse中點擊工程->Properties-> Android 在右側的介面中選中Android 2.2即可(前提是你的android sdk中同時包含這兩個版本的android jar包)或者
利用手機擷取所在地點的經緯度:Location 在Android 開發中還是經常用到的,比如 通過經緯度擷取天氣,根據Location 擷取所在地區詳細Address (比如Google Map 開發).等。而在Android 中通過LocationManager 來擷取Location .通常擷取Location 有GPS 擷取,WIFI 擷取. 如下介紹GPS擷取Location:第一步:建立一個Android 工程命名為GPS第二步:
Android手機一般不用時,都會通過電源鍵來鎖定螢幕同時關閉螢幕燈。其實從API Level 8 (也就是Android 2.2) 開始, Android提供了DevicePolicyManager類, 可以讓你的應用程式也能執行螢幕鎖定等操作。鎖定效果:要讓自己的應用實現該螢幕鎖定,主要需要用到以下幾個類:DevicePolicyManager這是裝置管理的主類。通過它可以實現螢幕鎖定、螢幕亮度調節、出廠設定等功能。DeviceAdminReceiver該類繼承自