Android中的腦殘設計

Trackball軌跡球這有點類似於PC上面的滑鼠,可以用於導航,為此便有了Focus,但是這實際操作意義並不大,因為整個螢幕都是觸控的,還用導航幹什麼,先把Focus用Trackball移動到某個控制項再去點擊這不是多此一舉嗎?而且這個Focus十分難以控制,給開發人員添加了無盡的煩惱,所以軌跡球是腦殘的設計,所以現在Android的裝置已經進化的都去掉了軌跡球了。當初為何加入這個東西呢?我猜因為Android的原始設計是一直帶有鍵盤的,或者是為了非觸控螢幕準備的,如果有非觸控,用一個類似滑鼠

Android Mms專題之:Compose詳解

Mms中的ComposeMessageActivity(以下簡稱Composer)是整個Mms中最重要的一個組件,它負責編輯資訊,發送資訊,管理資訊,接收資訊,與外部應用介面。在Mms內部與Composer關聯的類和組件特別多,幾乎所有的類和組件都與Composer有關聯,關於資訊的所有操作流程都起始於Composer;在外部Composer也是公開的介面,能夠處理Intent.ACTION_SEND和Intent.ACTION_SENDTO以及檔案類型為audio/*,image/*,vide

Android tricks: the ideal way to write try/catch clauses

Exceptions and exception handling are an important part in most applications. And modern programming languages support exceptions very well. Most of them provide try/catch/finally clauses for developers to handle exceptions. Here we talk about how

評論:Android的升級策略

對於Android系統而言升級意味著二個方面的升級,一個是系統的升級,另一個則是應用程式的升級。系統的升級,比較麻煩,通常的方式就是通過刷機來實現,雖然也聽說過可以通過OTA升級,但目前Android的裝置都沒有能夠像Apple裝置那樣順利的進行OTA升級,最主要的原因是裝置廠商很少維護已售出的裝置,所以沒有可用的升級鏡像。這裡我們重點談談Android上面的應用程式的升級策略及其所帶來的問題。無論你是通過Market還是其他方式來升級應用程式,它的工作方式都是醬紫的:把新版本的應用程式下載到本

Android MessageQueue Mechanism

Android MessageQueue MechanismCore classes:     Handler – the operator, user apps use this to operate the  Messages: send messagewith postRunnable, sendMessage etc. and process Messages in handleMessage.   Message – the container for the data

評論:Android手機的功能鍵

傳統的手機除了數字鍵台外,還有很多的功能鍵,比如接打電話鍵,掛電話鍵,確定鍵,取消鍵,方向鍵,等等。在新時代的智能手機當中,有些仍延續了這個傳統,Android手機就是代表。從G1問世以來,現在的Android手機已經上千萬部了,五花八門,各式各樣。有的有硬鍵盤,有的只有三個鍵。經過這幾年的發展,現在有硬鍵盤的已漸漸的被淘汰,目前主流的Android手機只有三到五個外部硬按鍵,其中一定有的是:MENU鍵,HOME鍵和BACK鍵,有些還有TrackBall軌跡球和SEARCH鍵。下面就簡單的評析下

Android實戰技巧:常用開發FAQ(續)

對於廠商定製Android的時候,難免會在Frameworks中添加新的介面API,無論是給已有的類添加新介面,還是添加新的類,一定要標記為"@hide",否則是就要進行update-api的相關工作,甚是麻煩。例如:package android.widget.PopupDialog;/** * @hide */public class PopupDialog extends View { // implementations}public class TextView

Android Mms專題之:草稿管理

當編輯完一條資訊後,如果在沒有發送的情況下退出編輯頁面,那麼資訊會自動儲存為草稿。也就是在ComposeMessageActivity的onStop()時,如果還沒有發送,那麼就會調用WorkingMessage.saveDraft()來把資訊儲存為草稿。期間也會檢查一些條件,比如訊息是否已被標識為放棄,或是是否為空白(isWorthSaving),如果一切正常會saveDraft()並會用Toast來告知資訊已儲存為草稿。草稿的儲存也是針對不同的資訊而不同,簡訊和多媒體訊息的流程有所不同。儲存

Android Mms專題之:對話與連絡人的關聯

在Mms中每個Thread都有其相應的連絡人,但是threads表中並沒有直接儲存連絡人的資訊(號碼或名字),而是儲存一個叫做recipient_id的東西,也還有一個類叫做data/RecipientIdCache.java專門管理它。在資料庫中專門有一個表來儲存它canonical_addresses。它的目的就是為了能夠快速的找到某一對話的連絡人的資訊。對話的表threads裡面並沒有儲存其連絡人的直接資訊,而是有一列叫做recipient_ids的整數來代表收信人。而在資料庫還有另外一個

Android Mms專題之:MMS支援

Composing and editingMMS在Android Mms應用裡面的具體實現形式,或資料結構是SlideshowModel,它是一個每個節點為SlideModel的ArrayList,SlideModel是一個Model的List,也就是它可以接收任何Model的子類,Audio,Video,Image和Text都可以放到SlideModel上面。SlideModel主要用於管理其上面的各個媒體,比如它們的布局,它們的播放控制,而SlideshowModel主要用於管理所有的附件,

Android Mms專題之:對話列表管理

Conversation這個類主要表示對話的資料結構,其內持有一個Thread所有的相關資訊,如Recipients,ThreadId等等,也用於管理Thread,比如查詢Thread,刪除Thread,更新Thread,管理ThreadId,管理Thread的連絡人等等。因為Thread表與其他表關聯的資訊比較多,如連絡人,訊息個數,這些資訊有些直接會寫在資料庫。因為Thread上面的資訊比較多,所以載入時會較費時,因此就有了一個在Conversation內部的Cache來提高載入Thread

Android Mms專題之:PDU介紹

Android當中的Mms對MMS(Multimedia Messaging

Unit Testing in Android

1. Testing for ContentProvider在你開始為Provider寫Case之前,應該仔細讀一讀SDK文檔中關於Provider測試的說明。但是光讀那些說明,你還是沒辦法寫出正確的Case,因為你也知道,Android的文檔是比較差勁的,有一些關鍵東西文檔中沒有說明,你也知道,這在Android當中並不少見。你寫個Provider的Case,如下:public class DemoProviderTest extends

Android實戰技巧: ListView之ContextMenu無法彈出

問題Activity中使用了ListView作為布局.當每一清單項目中含有預設能擷取焦點的子View時有可能會對ListView的某些事件有影響:1. OnItemClick2. OnItemLongClick3.

Understanding Android ContentProvider

1. 什麼是ContentProvider也即內容提供者,是對所有資料訪問的一層抽象,為資料訪問提供了統一的介面。它有以下優點:a. 對資料的抽象,為所有的組件提供統一的訪問資料的方式,從而讓組件不必關心具體資料的呈現形式(檔案or資料庫)。資料,也可以只關心自身的管理,而不用去管使用者的訪問問題。這樣就達到了很好的封裝。b.

Android實戰技術: 用Dimension解決多螢幕適配的問題

開閉原則--可變與不變的分離,且容易定製應用程式的目的是儘可能做到適用於多種裝置,這些裝置的配置不盡相同,有些不同的物理尺寸,解析度.為了達到最佳的適配效果,和最少的代碼重複,以及最好的可擴充性,就需要分離資源的使用和資源.用一個統一的資源管理者來管理資源.代碼通過資源管理者提供的統一的介面來擷取資源.這樣對於使用者來講資源的擷取的方式是統一,資源者無需關心如何為不同的裝置擷取不同的資源.這樣就把隨不同裝置變化而變化的代碼降到最低,只有資源管理者需要操心不同的裝置相關的不同的資源.比如:字串的擷

Android Ticks: display text vertically

TextView of Android is a text label to display text. But it can show text only horizontally by default, left to right or right to left. There are some chances that we would like to show text vertically, top to bottom or bottom to top, for layout of

Android實戰技巧:多線程AsyncTask

Understanding AsyncTaskAsyncTask是Android 1.5 Cubake加入的用於實現非同步作業的一個類,在此之前只能用Java SE庫中的Thread來實現多線程非同步,AsyncTask是Android平台自己的非同步工具,融入了Android平台的特性,讓非同步作業更加的安全,方便和實用。實質上它也是對Java

Android實戰技術:IPC方式簡介教程

非即時,通知性的方式第一種方式就是Intent,Intent可以非常方便的通訊,但是它是非即時的,無法進行即時的像函數調用那樣的即時的通訊。即時的函數調用但是IPC的根本目的還是為了實現函數的調用,即使是傳遞資料也是要通過函數調用的方式,為什麼呢?因為程式運行總是要知道狀態,要有邏輯上的行為,因此必須通訊函數才能體現出行為。IPC的機制除了進程,或者說不同的應用程式之間進行通訊,同時也能夠讓不同的組件之間進行像普通對象那樣進行即時的調用。因為Android的組件都是由系統架構統一的進行構建和銷毀

Android開發:實踐TDD的一些建議

最近部分採用了TDD的方法來開發一個模組,小有收穫特此總結一下:1. TDD的基本原則TDD的最核心思想就是先明確需求,且用代碼的方式量化,明確需求標準,然後進行編碼實現以達成由代碼測試來衡量的標準。那麼它要求,先把需要標準寫出來,每次唯寫一個。編碼實現通過達到,並剛好滿足這個標準。這樣一點一點的迭代。這樣有三個好處:一個是先明確標準,不至於我們迷失主題,偏離方向。有標準在檢測,保證代碼是正確的。僅滿足當前測試,不至於過早最佳化和過度設計。2.

總頁數: 2771 1 .... 869 870 871 872 873 .... 2771 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.