Time of Update: 2018-12-03
1.準備編譯環境sudo apt-get install build-essential ncurses-dev 2.Get kernel sourcegit clone git://android.git.kernel.org/kernel/common.gitgit checkout origin/android-goldfish-2.6.29 -b goldfish 3.Get prebuilt sourcegit clone
Time of Update: 2018-12-03
步驟如下:1.在Android的源碼中(目標路徑為:system/core/logcat/logcat.cpp),將其此logcat.cpp檔案中的static void readLogLines(int logfd)函數作出如下修改:static void readLogLines(int logfd){char buffer[256] = {0};while (1) {unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1]
Time of Update: 2018-12-03
我們在做Android應用開發的時候經常會用到預置資料庫或者使用一個現有的第三方的動態或靜態庫的方式進行開發,這時候就需要一些修改Makefile檔案將預置的資料或庫檔案拷貝到指定目錄中。一個比較簡單的方式如下:##copy operation####include $(CLEAR_VARS) #the data or lib you want to copyLOCAL_MODULE := libxxx.so LOCAL_MODULE_CLASS :=
Time of Update: 2018-12-03
上周五在幫一個實習生偵錯工具的時候發現了這個問題,他當時想實現一個這樣的功能:當使用者選擇刪除時,以dialog的方式彈出資料列表,並且每個資料都有一個checkbox,使用者選擇後可以進行刪除過濾。具體的介面是: public AlertDialog.Builder setMultiChoiceItems (Cursor cursor, String isCheckedColumn, String labelColumn,
Time of Update: 2018-12-03
好久沒不做Android的介面就是手生,為了搞的效果整了好半天,不過還好最終搞定了。 1.聲明明你的layout,並將如下的背景xml設定上去: <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"
Time of Update: 2018-12-03
最近在研究一些具體的設計模式,結合之前看到很多Android中java代碼,發現在Android源碼中使用設計模式的地方還真不少啊,好的系統果然要注重好的設計,注重可擴充、可維護。本次就從PhoneService中使用到的一些簡單的設計模式類型開始介紹: 1.簡單原廠模式:註:個人覺得這個原廠模式和標準的原廠模式有點稍微差別,標準的是有用戶端來決定建立哪個執行個體,例如,要使用GSMPhone的話,一般使用Phone phone =
Time of Update: 2018-12-03
我們在使用HTC的GXX時,會發現他有一個功能是接通後震動提示,雖然說不是什麼大的功能,但是使用比較方便,比如在呼叫過程中的時候就可以放在桌子上等震動了就說明電話被接通了再拿起來說話,就避免了一直放到耳邊等待對方。具體的實現如下,當然實現方式可能和它不一樣,但是效果一樣,呵呵。由於我們是基於源碼開發的,所以只討論在PhoneApp裡面添加該功能,獨立模組或者基於SDK開發的不討論。注意修改PhoneApp模組中的CallNotify.java檔案。1. 聲明Vibrartor相關變數://
Time of Update: 2018-12-03
[First written by Steve Guo, please keep the mark if forwarding.] In this topic you will learn some information about Android process management. First let’s take a look at the launched processes during Android booting. USER PID PPID VSIZE RSS WCHAN
Time of Update: 2018-12-03
做android應用程式,為了達到更好的使用者互動效果,經常需要改變Button的背景顏色以及TextView的字型顏色來提示使用者當前的菜單可操作的狀態,對此android提供了一種定義一種selector的方法讓程式員提前配置好背景和色值,具體的方法如下:一.Button(ImageButton、ImageView包括一般的view、ViewGroup都可以同樣操作):1.首先在你的layout檔案中為Button添加background屬性,比如android:background="@d
Time of Update: 2018-12-03
一般來說,ListView的清單項目都會採用相同的布局,只是填充的內容不同而已,這種情況下,Android提供了convertView幫我們緩衝清單項目,達到迴圈利用的目的,開發人員也會使用ViewHolder模式來對ListView進行最佳化。但有的情況下,ListView的清單項目布局是不盡相同的,甚至差別很大,這時就不能簡單的使用同一個布局資源檔來表示不同類型的清單項目了,而是必須區別對待。典型的情況如Android狀態通知欄,如所示。360安全衛士、唱吧,閃推這三款應用在狀態通知欄的布局
Time of Update: 2018-12-03
Android手機和電腦間基於wifi進行資料轉送,從技術上講,主要有兩種方案:一種是通過ftp協議實現,Android手機作為資料轉送過程中的ftp伺服器;一種是通過http協議實現。Android手機作為資料轉送過程中的http伺服器。所以,技術實現的痛點在於我們的app怎麼實現ftp或者http伺服器的功能,當然可以自己先閱讀ftp協議或者http協議,根據規範自己實現一個,如果你時間充裕、技術過關的話;另一種方法是尋求開源社區的協助,本文重點通過分析市場上已有的幾款實現wifi資料轉送的
Time of Update: 2018-12-03
在Android的觸摸訊息中,已經實現了三種監測,它們分別是1)pre-pressed:對應的語義是使用者輕觸(tap)了螢幕2)pressed:對應的語義是使用者點擊(press)了螢幕3)long pressed:對應的語義是使用者長按(long press)了螢幕是觸摸訊息隨時間變化的時間軸:其中,t0和t1定義在ViewConfiguration類中,標識了tap和longpress的逾時時間,定義如下: /** * Defines the duration in
Time of Update: 2018-12-03
【一個音符的時值按二等分的原則,成偶數細分下去,稱為音符時值的基本劃分】--- 《五線譜基礎教程》對於一個完整的應用來說,資料庫操作往往是避免不了的,Jamendo基於產生器模式(Builder Pattern)構建資料庫操作的整個架構。那麼首先看下產生器模式的定義:將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。典型結構圖如下所示:主要涉及四個角色,分別是:1)Builder:產生器介面,定義建立一個Product對象所需的各個組件的操作;2)ConcreteBuil
Time of Update: 2018-12-03
在Android應用開發中,經常會使用到狀態列通知(Status Notification),例如新浪微博、網易新聞等提供的推送訊息,軟體後台更新時進度的顯示等等,如所示:看了網上很多關於Notification的部落格文章,發現幾乎沒有一個能將自訂狀態列通知完全實現正確的,因此,本文就來說說實現自訂狀態列通知經常被忽略的一些知識點。1)
Time of Update: 2018-12-03
還記得幾個月前剛接觸“百度貼吧”這款應用時,瞬間就被它的懸浮式標題列以及標籤欄所吸引,雖然當時身邊有個UI的MM說懸浮式一般都是具備隱藏的功能時才設計成這樣的,一般情況下還是用直通式的好,在這裡我也不討論孰優孰劣,截取兩個圖,大家自己品味下。懸浮式標題列和標籤欄:(百度貼吧);直通式標題列和標籤欄:(QQ空間) 本文的目的就是研究下百度貼吧的這個標題列和標籤欄的實現原理;1、 懸浮式標題列的實現實現原理有兩種:1)在布局檔案中設定標題列的layout_margin屬性;2)給標題列設定一個9-
Time of Update: 2018-12-03
【五線譜上確定音的高低的記號叫做譜號,譜號有三種:G譜號(高音譜號)、F譜號(低音譜號)和C譜號(中音譜號)】 --- 《五線譜基礎教程》 Jamendo的手勢操作用於控制歌曲的播放,有四個手勢分別對應:播放,暫停,上一首和下一首。本文主要講解手勢操作部分的實現,至於涉及到媒體播放器的部分,將不作細講,放在後續文章中。 一 Android手勢操作APIAndroid提供GestureLibrary代表手勢庫,同時提供工具類GestureLibraries從不同資料來源來建立手勢庫。其中Gestu
Time of Update: 2018-12-03
Android應用中的訊息迴圈由Looper和Handler配合完成,Looper類用於封裝訊息迴圈,類中有個MessageQueue訊息佇列;Handler類封裝了訊息投遞和訊息處理等功能。系統預設情況下只有主線程(即UI線程)綁定Looper對象,因此在主線程中可以直接建立Handler的執行個體,但是在子線程中就不能直接new出Handler的執行個體了,因為子線程預設並沒有Looper對象,此時會拋出RuntimeException異常:瀏覽下Handler的預設建構函式就一目瞭然了:
Time of Update: 2018-12-03
【休止符是音樂中無聲的節奏進行,恰似此時無聲勝有聲;而音符是音樂中有聲的進行,是唱奏出來的,但相對應的幾分音符號與幾分休止符的時值是相同的】--- 《五線譜基礎教程》一 自訂Adapter的抽象基類Android項目開發中經常會用到ListView、GridView等需要和Adapter配合使用的控制項,對於介面介面較多,且用到多個不同布局的ListView等時,自然而然的就會面臨需要定義多個Adapter類的情況。一般為了提高靈活性,我們都會讓自訂的Adapter繼承自BaseAdapter,
Time of Update: 2018-12-03
轉載:http://houwanji.blog.163.com/blog/static/1622762200972644732128/首先在onCreate函數中的末尾, 添加registerForContextMenu(getListView());語句,意思是將螢幕中listView的每一項,都看做是菜單項,進行註冊,然後在繼承onCreateContextMenu()方法.如下: @Override //建立長按彈出式菜單,這是一個回呼函數
Time of Update: 2018-12-03
1,匯入項目之後,提示Project has no default.properties file! Edit the project properties to set one.在工程的屬性對話方塊中也頻繁提示有錯誤。解決辦法,建立一個項目,把default.properties複製到出錯的工程的根目錄下,關閉eclipse再重新開啟。2,在eclipse中啟動模擬器時,提示invalid command-line parameter: Files。原因是因為android