Time of Update: 2013-12-26
Genymotion概述Genymotion是一套完整的工具集,旨在為Android提供虛擬環境。開發人員、測試人員、銷售人員甚至是遊戲玩家都能從中獲得眾多實用功 能。 它可用於大多數作業系統:Windows、Linux以及MacOS X。它既易於安裝,又具備強大的功能:遵循簡單的安裝流程指引、選擇一款Android虛擬設備、啟動工具,大功告成!Genymotion特色最佳Android虛擬效果OpenGL加速機制帶來最佳3D效能從Google
Time of Update: 2013-12-26
之前我們曾向您介紹過Android的UI設計與後台線程互動,據Android
Time of Update: 2013-12-11
Android包含了常用於嵌入式系統的SQLite,免去了開發人員自己移植安裝的功夫。SQLite 支援多數 SQL92
Time of Update: 2013-12-11
Android可以通過MediaRecorder和AudioRecord這兩個工具來實現錄音,MediaRecorder直接把麥克風的資料存到檔案,並且能夠直接進行編碼(如AMR,MP3等),而AudioRecord則是讀取麥克風的音頻流。本文使用AudioRecord讀取音頻流,使用AudioTrack播放音頻流,通過“邊讀邊播放”以及增大音量的方式來實現一個簡單的助聽器程式。PS:由於目前的Android模擬器還不支援AudioRecord,因此本程式需要編譯之後放到真機運行。先貼出本文程式
Time of Update: 2013-12-11
作者:孫東風 2009-10-16 一、擷取Android原始碼Git是Linux Torvalds(Linux之父)為了協助管理Linux核心開發而開發的一個開放源碼的分布式版本控制軟體,它不同於Subversion、CVS這樣的集中式版本控制系統。在集中式版本控制系統中只有一個倉庫(Repository),許多個工作目錄(Working Copy),而在Git這樣的分布式版本控制系統中(其他主要的分布式版本控制系統還有BitKeeper、Mercurial、GNU
Time of Update: 2013-12-11
A、B兩個模組,主要都是用C實現的,需要用ndk編譯成兩個a.so、b.so,但是a.so內調用b.so中的函數,b.so內也調用了a.so中的函數,而且由於某些原因A、B必須分開編譯。問題是無論先編譯那個模組都會編譯不通過,因為它們相互依賴。為了編譯通過,必須在編譯時間取消這種依賴關係,下面程式中使用dlopen開啟so,dlsym擷取函數指標,就避免了這種編譯依賴關係。a.cview plain#include <stdio.h> #include
Time of Update: 2013-12-11
1.多媒體儲存機制:當Android的系統啟動的時候,系統會自動掃描sdcard內的(包括大型存放區)跟系統記憶體的多媒體檔案,並把獲得的資訊儲存在兩個系統資料庫中,以後在其他程式中如果想要訪問多媒體檔案的資訊,其實就是在這兩個資料庫中進行的,而不是直接去sdcard中或者手機記憶體裡取。兩張資料庫都是位於/data/data/com.android.providers.media/databases目錄下。如所示:名為external.db裡面儲存的是sdcard(包括大型存放區的
Time of Update: 2013-12-11
當你的Android應用的Activity需要採用Custom drawable的背景時,採用自訂的Theme可以節省UI的載入顯示速度。 解釋原因之前,需要澄清一個概念: window
Time of Update: 2013-12-11
預設地,一個activity佔據整個螢幕。然而,可以為一個activity設定一個“對話方塊”主題,這樣,它就能像一個浮動的對話方塊顯示出來了。舉個例子,你可能想要把你的activity定義成一個彈出的“對話方塊”,通知使用者進行一些操作。在這種情況下,顯示一個“對話方塊”樣式的anctivity是一個引起使用者注意的好方法。想要給activity設定主題,很簡單,只需在AndroidManifest.xml檔案中為<
Time of Update: 2013-12-11
概述 當寫一個應用時,恰當的決定你的圖形需求是很重要的.不同的圖形任務對應不同的技術.例如,一個靜態應用的圖形和動畫的實現肯定與一個互動式遊戲非常不同.這裡,我們將討論一些在android上繪製圖形時的操作以及它們最適合應用的任務.Canvas和Drawables Android提供了一系列View組件來為大多數使用者介面提供通常的功能.你也可以擴充這些組件來修改它們的外觀和行為.另外,你可以使用Canvas類的方法來繪製你自己的2D顯示或為那些像紋理按鈕或逐幀顯示的動畫之類的東西或建立Dr
Time of Update: 2013-12-11
Android 許可權控制碼分析 前在文章介紹過android系統管理層次:http://www.bkjia.com/kf/201204/127682.html ,這裡就核心程式碼分析一下 android系統充分利用了linux的使用者權限管理方法,所以如果需要移植到其它系統,這一塊也是一個相當不小的工作量。那麼android系統到底是如何使用這些的有利因素呢? 首先需要知道linux許可權的兩個基本知識:1、 一個使用者可以屬於多個組.2、
Time of Update: 2013-12-11
前面我們從Android應用程式與SurfaceFlinger服務的關係出發,從側面簡單學習了SurfaceFlinger服務。有了這些預備知識之後,我們就可以從正面來分析SurfaceFlinger服務的實現原理了。SurfaceFlinger服務負責管理系統的框架緩衝區裝置,並且負責渲染系統的UI,即各個應用程式的UI。在本文中,我們就簡要介紹SurfaceFlinger服務,並且制定學習計劃。
Time of Update: 2013-12-11
建立一個Content Providercontent provider管理對中央資料倉儲的存取。你實現一個provider,就是在一個Android應用中實現一個或多個類,再加上manifest檔案中的一些元素。你實現一個 ContentProvider的子類,它作為你的provider和其它應也之間的介面。儘管content
Time of Update: 2013-12-10
1.旋轉函數: glRotatef(float angle, float X, float Y, float Z)其中,angle指定對象旋轉的角度,X,Y,Z三個參數共同決定旋轉軸的方向。即,glRotatef函數是將某對象沿指定軸旋轉angle角度。 2.旋轉實現方法: float rotateTri; float rotateQuad; /
Time of Update: 2013-12-10
Android開發的過程中,每次調用startService(Intent)的時候,都會調用該Service對象的onStartCommand(Intent,int,int)方法,然後在onStartCommand方法中做一些處理。從Android官方文檔中,我們知道onStartCommand有4種int傳回值,首先簡單地講講int傳回值的作用。一、onStartCommand有4種傳回值:START_STICKY:如果service進程被kill掉,保留service的狀態為開始狀態,但不保
Time of Update: 2013-12-10
#include<stdio.h> #include<string.h> #include<stdlib.h> int failure[100];//失配函數 int strmatch_bf(char *s,char *t) { //簡單模式比對,基本思想:將s和t進行比較,如果相等繼續比較,否則t從頭開始,s從i-j+1開始 int i,j; i=j=0; while((i <
Time of Update: 2013-12-10
這裡介紹的水平儀,指的是比較傳統的氣泡水平儀,在一個透明圓盤內充滿液體,液體中留有一個氣泡,當一端翹起時,該氣泡就會浮向翹起的一端。 在上文中,利用方向感應器返回的第一個參數,實現了一個指南針小應用。接下來,我們利用返回的第二、三個參數實現該水平儀。因為第二個參數,反映底部(或頂部)翹起的角度,第三個參數可以反映右側(或左側)翹起的角度。根據這兩個角度就可以開發水平儀,實現手機哪端翹起,氣泡就浮向哪端,這也是水平儀的實現思想。代碼如下: Activity: &nbs
Time of Update: 2013-12-10
本文 一般震動時間的配置在如下檔案:frameworks/base/core/res/res/values/config.xml <!-- 長按震動 --> <!-- Vibrator pattern for feedback about a long screen/key press --> <integer-array
Time of Update: 2013-12-10
按慣例,寫在前面的:可能在學習Android的過程中,大家會和我一樣,學習過大量的基礎知識,很多的知識點也都能說出了123來,但是這些孤立的點終究顯得太零散了,因此,我想從今天開始,以最經典的手機安全衛士項目為例,自己鍛煉一下,也是想和大家交流交流,希望大家都能給出見解,共同進步。 七、應用程式的更新安裝當下載成功後(onSuccess方法中)建立一個安裝軟體的方法:具體代碼: private void apkInstall(File t){ Intent
Time of Update: 2013-11-05
// returns the current touch location in screen coordinatesCCPoint CCTouch::getLocationInView() const { return m_point; }②從觸摸點擷取到在OpenGL座標系中的座標// returns the current touch location in OpenGL coordinatesCCPoint CCTouch::getLocation() const{