原创 基於Android源碼開發的來電接通振動功能實現

   我們在使用HTC的GXX時,會發現他有一個功能是接通後振動提示,雖然說不是什麼大的功能,但是使用比較方便,比如在呼叫過程中的時候就可以放在桌子上等振動了就說明電話被接通了再拿起來說話,就避免了一直放到耳邊等待對方。具體的實現如下,當

原创 Android中設計模式無處不在之簡單工廠模式和代理模式

最近在研究一些具體的設計模式,結合之前看到很多Android中java代碼,發現在Android源碼中使用設計模式的地方還真不少啊,好的系統果然要注重好的設計,注重可擴展、可維護。本次就從PhoneService中使用到的一些簡單的設計模

原创 一個小的面試題目

Q:不使用任何中間變量和庫函數,計算字符串的長度 A:那就使用遞歸和自操作   代碼如下: static int my_strlen(char *str) { if(*str != '/0'){ return (m

原创 "Unable to get buffer of resource asset file"問題的解決

Problems When building you might run into the Unable to get buffer of resource asset file error. The root cause of thi

原创 Android中如何實現高亮顯示即選中狀態

好久沒不做Android的界面就是手生,爲了搞下圖的效果整了好半天,不過還好最終搞定了。   1.聲明明你的layout,並將如下的背景xml設置上去:   <?xml version="1.0" encoding="utf-8"?>

原创 Android CTS

  首先配置軟件環境: 1、下載Android-2.1系統,並編譯。 $ . build/envsetup.sh          //配置選項,並編譯android源碼 $ make cts                      

原创 Android AlertController的小bug?

上週五在幫一個實習生調試程序的時候發現了這個問題,他當時想實現一個這樣的功能:當用戶選擇刪除時,以dialog的方式彈出數據列表,並且每個數據都有一個checkbox,用戶選擇後可以進行刪除過濾。具體的接口是:   public Aler

原创 Android如何預置數據庫或庫文件

我們在做Android應用開發的時候經常會用到預置數據庫或者使用一個現有的第三方的動態或靜態庫的方式進行開發,這時候就需要一些修改Makefile文件將預置的數據或庫文件拷貝到指定目錄中。一個比較簡單的方式如下: ##copy opera

原创 適配不同分辨率&hdpi、mdpi、ldpi&橫屏豎屏()

    一:不同的layout   Android手機屏幕大小不一,有480x320, 640x360, 800x480.怎樣才能讓App自動適應不同的屏幕呢? 其實很簡單,只需要在res目錄下創建不同的layout文件夾,

原创 Android Button及TextView動態變換顏色

做android應用程序,爲了達到更好的用戶交互效果,經常需要改變Button的背景顏色以及TextView的字體顏色來提示用戶當前的菜單可操作的狀態,對此android提供了一種定義一種selector的方法讓程序員提前配置好背景和色值

原创 "Could not create java virtual machine"的問題解決

今天到了新的環境,需要重新搭建Android的開發環境,下載eclipse並安裝了JDK1.6後,啓動eclipse,發現出現了錯誤“Could not create java virtual machine”,點擊就立即關閉了。   解

原创 解決Ubuntu上ADB找不到設備的問題

按照google官方的說法,如下步驟操作: If you're developing on Ubuntu Linux, you need to add a rules file: Login as root and create thi

原创 Android調試的必殺技——反彙編

在移植Android過程中會遇到很多Crash的事情。一般這些問題都可以通過看代碼能解決,當然也有一些比較難搞的問題,非常難找到頭緒,在 logcat日誌也只會打印一些崩潰的堆棧,這些信息很難幫助我們定位問題。根據個人一個實例來介紹一下

原创 Android中的Logcat方法查看內核的日誌

步驟如下: 1.在Android的源碼中(目標路徑爲:system/core/logcat/logcat.cpp),將其此logcat.cpp文件中的static void readLogLines(int logfd)函數作出如下修改

原创 使用for循環代替while循環的場合

1.在循環終止之後,不需要使用循環變量; for (Element e : c) { doSomething(e); }  但是跳出for循環之後,變量的作用域就存在了。 2.易於較早發現程序中的錯誤; Iterator<Elem