Time of Update: 2018-12-07
將工程混淆下,但是發現有如下的錯誤: [java] Warning: android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean$1: can't find superclass or interface android.view.accessibility.AccessibilityNodeProvider [java] Warning:
Time of Update: 2018-12-07
NinePatchDrawable
Time of Update: 2018-12-07
如果你曾經嘗試用手寫筆或軌跡球來導航行動電話的菜單系統,那麼,你就會知道在行動裝置上使用傳統的菜單系統是笨拙的。 為了改進應用程式菜單的實用性,Android為小螢幕提供了三個階段最佳化的菜單系統: ❑ 表徵圖菜單當Menu按鈕按下時,這種緊湊的菜單(4-4)顯示在螢幕的底部。它顯示多達6個表徵圖和文字的功能表項目(子功能表)。 圖4-4 這種表徵圖菜單不把checkbox,radio button和快速鍵作為功能表項目進行顯示,所以,一般好的習慣是不指定checkbox或radio
Time of Update: 2018-12-07
Android中實現view的更新有兩組方法,一組是invalidate,另一組是postInvalidate,其中前者是在UI線程自身中使用,而後者在非UI線程中使用。 Android提供了Invalidate方法實現介面重新整理,但是Invalidate不能直接線上程中調用,因為他是違背了單執行緒模式:Android UI操作並不是安全執行緒的,並且這些操作必須在UI線程中調用。
Time of Update: 2018-12-07
在不同的解析度下,Android字型大小怎麼自適應解析度的變化? 假設需要適應320x240,480x320解析度。在res目錄下建立檔案夾values-320x240, values-480x320。然後在檔案夾 values ,values-320x240 和 values-480x320 下建立xml檔案dimens.xml,該xml檔案內容如下:1234<?xml version="1.0" encoding="utf-8"?> <resources>
Time of Update: 2018-12-07
文章目錄 APN資料:(uri為"content://telephony/carriers") 連絡人資料庫/data/data/com.android.providers.contacts/databases下的(MB525手機的是: /data/data/com.motorola.blur.providers.contacts/databases/contacts2.db)contacts.db(1.6及其以下版本)
Time of Update: 2018-12-07
UI設計、人機互動和實用性是一個很大的話題,將不會在這本書裡進行深入的討論。話雖如此,當你建立UI時對它們有個準確無誤的認識也是很重要的。 Android為相似的編程名詞引入了一些新的術語,將在下面的章節詳細描述: ❑ Views View是視覺介面元素中基本的UI類(和通常瞭解的control或widget)。所有的UI控制項,layout類都是繼承自View。 ❑ ViewGroupsView
Time of Update: 2018-12-07
從安全形度考慮,開發人員在Android SDK 1.0版中訪問GTalk IM服務受到了限制。因此,這一章節中描述的功能對於開發人員來說,如果使用Android SDK 1.0,將無法進行嘗試。 與其刪除受到影響的章節,不如把它們留在這裡。對於將來的Android釋放版本,有可能成為使用的嚮導。 以後的Android版本將暴露立即訊息功能的一整套介面,通過基於IM服務的XMPP訪問這些功能。它將包含對連絡人的管理,登陸提示和發送與接收立即訊息。 Google
Time of Update: 2018-12-07
Android提供了標準View的工具箱協助你建立簡單的介面。通過使用這些控制項(修改或擴充,如果必要的話),你可以簡化你的開發並且保證了應用程式間的一致性。 下面的列表列出了一些很類似的控制項: ❑ TextView標準的唯讀文本label。它支援多行顯示、字串格式化和文本自動換行。 ❑ EditText可編輯的文本輸入框。它支援多行輸入和文字換行。 ❑
Time of Update: 2018-12-07
Android中資料儲存的技巧從速度、效率和健壯性間做出了權衡: ❑ Shared Preference當儲存UI狀態、使用者設定或程式設定時,你可能想要一種輕量級的機制來儲存已知的資料集。Shared Preference,也稱作Preference,能讓你成組地儲存基本資料的key/value對。 ❑ File它不夠精緻,但有時想寫入或讀取時,File也只能是唯一的路可走。Android允許你建立和載入裝置的內部或外部媒介上的檔案。 ❑ SQLite
Time of Update: 2018-12-07
Android本地應用程式也使用Intent來啟動Activity和子Activity。 下面的列表簡單的列出了Intent類中以靜態字串常量儲存的本地動作。你可以在你自己的應用程式裡當建立隱式Intent來啟動Activity和子Activity時使用這些動作。 在下一個章節裡,你將瞭解Intent Filter,和學習如何註冊自己的Activity來處理這些動作。 ❑ ACTION_ANSWER開啟一個Activity來處理來電。目前,它是被本地的電話撥號工具處理。 ❑ ACTION_
Time of Update: 2018-12-07
Android通過SQLite庫提供了完整的關係型資料庫能力,而不用強加額外的限制。 使用SQLite,你可以為每個應用程式建立獨立的、關聯的資料庫。使用它們來儲存和管理複雜的、結構化的應用程式資料。 所有的Android資料庫都存在裝置(或模擬器)的/data/data/<包名>/databases檔案夾中。預設情況,所有的資料庫都是私人的,僅允許建立它們的程式訪問。在程式間共用一個資料庫,可以使用Content
Time of Update: 2018-12-07
一個好的習慣是建立一個輔助類來簡化你的資料庫互動。 考慮建立一個資料庫適配器,來添加一個與資料庫互動的封裝層。它應該提供直觀的、強型別的方法,如添加、刪除和更新項目。資料庫適配器還應該處理查詢和對建立、開啟和關閉資料庫的封裝。 它還常用靜態資料庫常量來定義表的名字、列的名字和列的索引。 下面的程式碼片段顯示了一個標準資料庫適配器類的架構。它包括一個SQLiteOpenHelper類的擴充類,用於簡化開啟、建立和更新資料庫。 import
Time of Update: 2018-12-07
當你設計你的資料庫時,這裡有幾點建議你應該考慮一下: ❑ 檔案(例如位元影像或音頻檔案)一般不儲存在資料庫的表中。一般用字串來隱藏檔的路徑,最好是一個正確的Content Provider URI。 ❑ 當沒有嚴格的需求時,強烈建議所有的表中都包含一個自動增加的關鍵字段,它可以用作每行的獨一無二的索引值。值得注意的是,當你計劃用Content Provider來共用你的表,那麼,獨一無二的ID欄位是必須的。
Time of Update: 2018-12-07
匿名性質的運行時綁定使得理解Android如何解析一個隱式Intent到一個特定的應用程式組件變得重要。 和你之前看到的一樣,當使用startActivity時,隱式Intent解析到一個單一的Activity。如果存在多個Activity都有能力在特定的資料上執行給定的動作的話,Android會從這些中選擇最好的進行啟動。 決定哪個Activity來啟動並執行過程稱為Intent解析。Intent解析的目的是通過下面的過程找到可能匹配得最好的Intent Filter: 1.
Time of Update: 2018-12-07
Android暴露了許多Content Provider來訪問本地的資料庫。 你可以使用之前描述的技巧來使用本地的Content Provider。可變通的地方,android.provider類包含了一些便利的類來簡化這些有用的Provider,包括: ❑ Browser使用Browser Content Provider可以用來讀取或修改標籤、瀏覽曆史或者網路搜尋。 ❑ CallLog查看或更新電話曆史,包括來電和去電、未接來電和電話細節,如連絡人和通話時間。 ❑
Time of Update: 2018-12-07
從七月份接觸Android一來,一直用的都是SDK1.5,知道SDK一直在更新,且更新的時候還得更新ADT,猜測過程比較麻煩所以一直懶得去換。今天晚上下載了一份代碼,開啟時需要SDK1.6,逼於無奈,只好進行更新。於是,安裝過程中就遇到些問題,我想,這些問題應該也有一些人會遇到吧,記錄下來先。 *
Time of Update: 2018-12-07
如何在Android系統中發送帶附件的電子郵件呢? 其實通過Intent可以很方便的發送Email,只需要短短10行代碼就可以處理,這裡Android開發網就以在sdcard上的android123.cwj檔案為例,通過Intent來寄送電子郵件。完整代碼如下 File file = new File("\sdcard\android123.cwj"); //附件檔案地址 Intent intent = new
Time of Update: 2018-12-07
Android的資料(包括files,database等...)都是屬於應用程式自身,其他程式無法直接進行操作。因此,為了使其他程式能夠操作資料,在Android中,可以通過做成ContentProvider提供資料操作的介面。其實對本應用而言,也可以將底層資料封裝成ContentProvider,這樣可以有效屏蔽底層操作的細節,並且是程式保持良好的擴充性和開放性。ContentProvider,顧名思義,就是資料內容的供應者。在Android中它是一個資料來源,屏蔽了具體底層資料來源的細節,在
Time of Update: 2018-12-07
Android的介面顯示同樣也是基於控制項的。通常是用View(包括ViewGroup)控制項配上XML的樣式來做的。具體細節不想說了,可以參考Samples裡的ApiDemos/View,和View的Doc,以及Implementing aUI這篇Doc。其他還有很多,感覺算是SDK講述的最多的內容。從控制項的使用上,和網頁的設計類似,盡量用parent_width之類的抽象長度,用Theme來做風格,抽取所有的字串等資訊做本地化設計。相關內容參看Implementing a