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
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
這裡介紹的水平儀,指的是比較傳統的氣泡水平儀,在一個透明圓盤內充滿液體,液體中留有一個氣泡,當一端翹起時,該氣泡就會浮向翹起的一端。 在上文中,利用方向感應器返回的第一個參數,實現了一個指南針小應用。接下來,我們利用返回的第二、三個參數實現該水平儀。因為第二個參數,反映底部(或頂部)翹起的角度,第三個參數可以反映右側(或左側)翹起的角度。根據這兩個角度就可以開發水平儀,實現手機哪端翹起,氣泡就浮向哪端,這也是水平儀的實現思想。代碼如下: 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{
Time of Update: 2013-11-05
在談及Lua中的__index,__newindex,rawget和rawset前,需要理解Lua中的元表這個概念。零、元表的概念對Lua中元表的解釋: 元表可以改變表的行為模式。這裡舉個例子:Window = {}Window.prototype = {x = 0 ,y = 0 ,width = 100 ,height = 100,}Window.mt = {}function Window.new(o)setmetatable(o ,Window.mt)return
Time of Update: 2013-11-05
適配器的Java類package com.app.adapter;import org.json.JSONArray;import org.json.JSONObject;import android.R.integer;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import
Time of Update: 2013-11-05
MainActivity:package com.home.testfragment;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentTransaction;import android.view.View;import android.view.View.OnClickListener;import
Time of Update: 2013-10-28
adb shell中的am pm命令,一些自己的見解和大多數官網的翻譯。先說下am命令,am全稱activity manager,你能使用am去類比各種系統的行為,例如去啟動一個activity,強制停止進程,發送廣播進程,修改裝置螢幕屬性等等。當你在adb shell命令下執行am命令:am <command>你也可以在adb shell前執行am命令:adb shell am start
Time of Update: 2013-10-28
在Android本地視頻播放器開發中的搜尋本地視頻章節中,我們能夠搜尋本地視頻並且顯示每個視頻的圖片、標題、時間長度,當然如果需要添加其他的例如視頻的長度和寬度可以使用Video類中的方法,既然我們擷取到視頻後,那麼接下來就是解碼視頻,解碼視頻我使用的是ffmpeg,所以這張就是使用NDK編譯手機可以使用的FFmpeg庫。 NDK=/opt/android-ndk-r8d PLATFORM=$NDK/platforms/android-8/arch-arm/ PREBUIL
Time of Update: 2013-10-28
Emulated Device Key Keyboard Key Home HOME 菜單 (左軟鍵)
Time of Update: 2013-10-28
Android中對於圖形介面以及多媒體的相關操作比較容易實現。而且對於大多數手機使用者來說,他們主要也就是根據這些方面的功能來對系統那個進行修改。我們可以通過本文介紹的Android多媒體架構的源碼解讀,來具體分析一下這方面的基本知識。 Android多媒體架構的代碼在以下目錄中:external/opencore/。這個目錄是Android多媒體架構的根目錄,其中包含的子目錄如下所示: *