Time of Update: 2013-12-11
在android中使用Parcel(儲存基礎資料型別 (Elementary Data Type)和引用資料類型的容器)通過IBinder來綁定,這種方法的作用是讓資料在進程間傳遞資料,Parcel定位就是輕量級的高效的對象序列化和還原序列化機制。在Framework中有parcel類,源碼路徑是:Frameworks/base/core/java/android/os/Parcel.java典型的源碼片斷如下:/Write an integer value into the parcel
Time of Update: 2013-12-11
摘要Binder是Android系統處理序間通訊(IPC)方式之一。Linux已經擁有管道,system V IPC,socket等IPC手段,卻還要倚賴Binder來實現處理序間通訊,說明Binder具有無可比擬的優勢。深入瞭解Binder並將之與傳統 IPC做對比有助於我們深入領會處理序間通訊的實現和效能最佳化。本文將對Binder的設計細節做一個全面的闡述,首先通過介紹Binder通訊模型和
Time of Update: 2013-12-11
對於Android的網路通訊效能的提高,我們可以使用Java上高效能的NIO (New I/O) 技術進行處理,NIO是從JDK 1.4開始引入的,NIO的N我們可以理解為Noblocking即非阻塞的意思,相對應傳統的I/O,比如Socket的accpet()、read()這些方法而言都是阻塞的。
Time of Update: 2013-12-11
二.SoundRecorder類介紹先介紹RemainingTimeCalculator類。它負責計算儲存介質剩餘空間能夠存放多長的錄音檔案。其中的timeRemaining()函數負責計算剩餘時間,取檔案大小限制和空間大小限制的較小的一個來計算剩餘時間。mCurrentLowerLimit = result < result2 ?
Time of Update: 2013-12-11
目前需要做一個語音通話及視訊交談功能開發,主要分為音頻及視頻兩個部分,必然會涉及到Camera及AudioFlinger部分,對於顯示部分又會涉及到SurfaceFlinger部分,因此需要一步步的進行學習並確認設計是否合理.這篇文章主要針對Camera作個簡要的介紹,瞭解需要開發的各個環節。 網路攝影機系統提供的功能如下幾個方面:a、預覽功能previewb、視頻兒取功能 recordingc、拍照功能
Time of Update: 2013-12-11
準確點說這裡指的是window的背景,而不是Layout的背景。這兩者是有本質上的區別的。 很多文章說的視窗背景色,其實就是指的根布局的背景色。所謂視窗,應該是根布局的宿主。把根布局做小一點,不佔滿螢幕,露出來的依然是黑色。 廢話少說,上代碼:[java]Window window = getWindow(); ColorDrawable colorDrawable
Time of Update: 2013-12-11
最近兩天為瞭解決Android上面退出程式問題折騰了半死,在google & baidu 上面找了很久、很久出來的完全千篇一律,說的方法有三,但是經過我實驗後全部不行。 三個方法分別是:killProcess, 這種方式當你kill後 Activity 會返回到上一個ActivityAndroid Level 8(包含8)前使用一個API來操作,Level8以後又是另外一種,所以不能通用使用
Time of Update: 2013-12-11
在android的res檔案夾下,包含一個layout檔案夾,裡面的xml檔案時我們所看到的介面,裡面定義了程式所要使用的各個控制項的Id等屬性。我們在使用時一定要注意,我們的控制項的位置,一般情況下,直接使用即可。有時,我們將布局檔案放到對話方塊的時候,我們就不能直接的使用,要指明對象。例如 Dialog dialog=new Dialog(Context
Time of Update: 2013-12-11
自訂控制項(類似按鈕等)的使用,自訂一個SurfaceView。如某一塊的動態圖(自訂相應),或者類似UC瀏覽器下面的工具列。如樣本: 自訂類代碼:[java]public class ImageSurfaceView extends SurfaceView implements Callback{ //用於控制SurfaceView private
Time of Update: 2013-12-11
通過對於一般遊戲的邏輯原理的分析,以及對AndEngine源碼的閱讀,總算是對遊戲的一般架構以及AndEngine是如何?這一架構的原理有了一定的瞭解,總結一下備忘!一般的遊戲主邏輯:(在遊戲的主線程中)[java] <span style="font-size:16px;">while (true) { 使用者互動監聽(使用者輸入)
Time of Update: 2013-12-11
思路: 1>設計介面2>設計Activity3>編寫業務層代碼:import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import
Time of Update: 2013-12-11
參考別人一幅原理圖。 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDPClient { private DatagramSocket
Time of Update: 2013-12-11
最近在ubuntu下編譯android2.3的源碼,並修改了某些模組,以下是遇到到一些問題,待續.... 1. 解決Ubuntu安裝sun-java6-jre時無法選擇ok鍵的問題 先點一下tab鍵才能選ok鍵 2. 刪除原來的JDK:sudo apt-get remove sun-java6-jre sun-java6-plugin sun-java6-bin
Time of Update: 2013-12-11
import java.io.File;import android.os.Environment;import android.os.StatFs;/* * 手機和SD卡記憶體擷取 * * */public class MemoryManager{//擷取手機可用的記憶體空間 返回 單位 Mpublic float getMemorySize(){File path = Environment.getDataDirectory(
Time of Update: 2013-12-11
設計模式在軟體設計中非常重要,目前發展中有23種模式,在android(java)中我們也有必要對其有一定的瞭解.在後面的學習中,我也學習總結一下,希望大家批評指正.首先我們看看代理模式.我們以遊戲中的例子進行分析. 代理模式:對一些對象提供代理,以限制哪些對象去訪問其它對象。[java]package com.jindegege.service; public
Time of Update: 2013-12-11
在使用MyEclipse開發Android程式時,main.xml Design顯示不是設計介面,而是view屬性時,如所示: res/layout/main.xml,升級SDK和ADT之前,這個一直是顯示介面,升級後,點開這個檔案,切到Design,發現顯示不了介面,而是以表格的形式顯示的該介面中各個view的屬性值! 解決辦法:關閉開啟的main.xml,左側導航處右鍵該main.xml>>“open
Time of Update: 2013-12-11
準備上4.0項目,最近接觸API 的時候看到了RenderScript 。通過運行google 那幾個項目發現這個真是一個非常不錯的API,但是google 所提供的文檔非常少,有助於瞭解電腦圖形計算,雖然我們做應用編程的不一定要涉及這塊,但涉獵一下總是不錯的。RenderScript 是Android 平台上的一種類C指令碼語言。要在我們程式上實現RenderScript 渲染功能,最少需要實現的幾個功能如下,以一個Hello Wold 為例:1. helloworld.rs
Time of Update: 2013-12-11
在開發一個簡訊應用時,有時需要攔截簡訊廣播,避免簡訊廣播繼續發給其他程式,以避免出現多次提示,攔截簡訊有幾個關鍵點:1.android接收簡訊時是以廣播的方式2.程式只要在自己的Manifest.xml裡加有"接收"SMS的許可權<uses-permission
Time of Update: 2013-12-11
下面文章大意是指:在一般的Android項目中,R類的常量都是用final定義的,但ADT 14之後,如果在library 項目中,它會沒有final關鍵字,估計在新ADT中,資源檔會變成一個library..., 在switch語句的case中,如果使用 R.id.xxx 則會提示有問題,不允許非常量在case語句中。Google提供的一個方法就是把它轉化為if-else語句,即在switch語句處 Ctrl+1
Time of Update: 2013-12-11
Android中的組件需要用一個int類型的值來表示,這個值就是組件標籤中的id屬性值。id屬性只能接受資源類型的值,也就是必須以@開頭的值,例如,@id/abc、@+id/xyz等。如果在@後面使用“+”,表示當修改完某個布局檔案並儲存後,系統會自動在R.java檔案中產生相應的int類型變數。變數名就是“/”後面的值,例如,@+id/xyz會在R.java檔案中產生int xyz =