搜档网
当前位置:搜档网 › Android Audio System

Android Audio System

Android Audio System
Android Audio System

Android 音频系统

1.系统架构

Android的音频系统拥有一个比较标准和健全的架构,从上层应用,java framework服务AudioMananger,本地服务AudioFlinger,抽象层AlsaHAL,本地库,再调用external的tinyalsa外部支持库,最后到底层驱动的codec。

Java服务AudioManager作为服务端,本地服务AudioFlinger作为客户端,两者通过Binder 机制交互。AudioFlinger对硬件功能的具体实现交给硬件抽象层AlsaHAL完成。抽象层可以调用本地标准接口,或者直接调用Tinyalsa库去操作底层驱动。

详细调用过程如下图:

简单说来,轨迹如下:

Java端发起调用,MediaPlayer会转至MediaPlayerService,然后会调用相应的解码工具解码后创建AudioTrack,所有待输出的AudioTrack在AudioFlinger::AudioMixer里合成,然后通过AudioHAL(AudioHardwareInterface的实际实现者)传至实际的硬件来实现播放。

2.AudioFlinger

AudioFlinger是android中的一个service,在android启动时就已经被加载。AudioFlinger 向下访问AudioHardware,实现输出音频数据,控制音频参数。同时,AudioFlinger向上通过IAudioFinger接口提供服务。所以,AudioFlinger在Android的音频系统框架中起着承上启下的作用,地位相当重要。

AudioFlinger的类结构

下面的图示描述了AudioFlinger类的内部结构和关系:

?IAudioFlinger接口

这是AudioFlinger向外提供服务的接口,例如openOutput,openInput,createTrack,openRecord等等,应用程序或者其他service通过ServiceManager可以获得该接口。该接口通过继承BnAudioFlinger得到。

?ThreadBase

在AudioFlinger中,Android为每一个放音/录音设备均创建一个处理线程,负责音频数据的I/O和合成,ThreadBase是这些线程的基类,所有的播放和录音线程都派生自ThreadBase

?TrackBase

应用程序每创建一个音轨(AudioTrack/AudioRecord),在AudioFlinger中都会创建一个对应的Track实例,TrackBase就是这些Track的基类,他的派生类有:

PlaybackTread::Track // 用于普通播放,对应于应用层的AudioTrack

PlaybackThread::OutputTrack // 用于多重设备输出,当蓝牙播放开启时使用

RecordThread::RecordTrack // 用于录音,对应于应用层的AudioRecord ?播放

默认的播放线程是MixerThread,它由AudioPolicyManager创建,最终会进入AudioFlinger的openOut函数。

3.AudioTrack和AudioFlinger的通信机制

通常,AudioTrack和AudioFlinger并不在同一个进程中,它们通过android中的binder

机制建立联系。

AudioTrack主要是用来播放声音的,AudioTrack贯穿了JA V A层,JNI层和Native层。

下面这张图展示了他们两个的关系:

我们可以这样理解这张图的含义:

audio_track_cblk_t实现了一个环形FIFO;

AudioTrack是FIFO的数据生产者;

AudioFlinger是FIFO的数据消费者。

1)建立联系的过程

下面的序列图展示了AudioTrack和AudioFlinger建立联系的过程:

2)FIFO的管理

audio_track_cblk_t

audio_track_cblk_t这个结构是FIFO实现的关键,该结构是在createTrack的时候,由AudioFlinger申请相应的内存,然后通过IMemory接口返回AudioTrack的,这样AudioTrack和AudioFlinger管理着同一个audio_track_cblk_t,通过它实现了环形FIFO,AudioTrack向FIFO中写入音频数据,AudioFlinger从FIFO中读取音频数据,经Mixer 后送给AudioHardware进行播放。

●audio_track_cblk_t的主要数据成员:

user -- AudioTrack当前的写位置的偏移

userBase -- AudioTrack写偏移的基准位置,结合user的值方可确定真实的FIFO

地址指针

server -- AudioFlinger当前的读位置的偏移

serverBase -- AudioFlinger读偏移的基准位置,结合server的值方可确定真实的

FIFO地址指针

frameCount -- FIFO的大小,以音频数据的帧为单位,16bit的音频每帧的大小是

2字节

buffers -- 指向FIFO的起始地址

out -- 音频流的方向,对于AudioTrack,out=1,对于AudioRecord,out=0

●audio_track_cblk_t的主要成员函数:

framesAvailable_l()和framesAvailable()用于获取FIFO中可写的空闲空间的大小,

只是加锁和不加锁的区别。

framesReady()用于获取FIFO中可读取的空间大小。

3)IMemory接口

在createTrack的过程中,AudioFlinger会根据传入的frameCount参数,申请一块内存,

AudioTrack可以通过IAudioTrack接口的getCblk()函数获得指向该内存块的Imemory 接口,然后AudioTrack通过该IMemory接口的pointer()函数获得指向该内存块的指针,这块内存的开始部分就是audio_track_cblk_t结构,紧接着是大小为frameSize的FIFO内存。

4.AudioPolicyService

AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有MediaSever加载。

AudioPolicyService主要完成以下任务:

?JA V A应用层通过JNI,经由IAudioPolicyService接口,访问AudioPolicyService提供的服务

?输入输出设备的连接状态

?系统的音频策略(strategy)的切换

?音量/音频参数的设置

AudioPolicyService的构成

下面这张图描述了AudioPolicyService的静态结构:

进一步说明:

1)AudioPolicyService继承了IAudioPolicyService接口,这样AudioPolicyService就可

以基于Android的Binder机制,向外部提供服务;

2)AudioPolicyService同时也继承了AudioPolicyClientInterface类,他有一个

AudioPolicyInterface类的成员指针mpPolicyManager,实际上就是指向了

AudioPolicyManager;

3)AudioPolicyManager类继承了AudioPolicyInterface类以便向AudioPolicyService提

供服务,反过来同时还有一个AudioPolicyClientInterface指针,该指针在构造函数

中被初始化,指向了AudioPolicyService,实际上,AudioPolicyService是通过成员

指针mpPolicyManager访问AudioPolicyManager,而AudioPolicyManager则通过

AudioPolicyClientInterface(mpClientInterface)访问AudioPolicyService;

4)AudioPolicyService有一个内部线程类AudioCommandThread,顾名思义,所有的命

令(音量控制,输入、输出的切换等)最终都会在该线程中排队执行;

●输入输出设备管理

音频系统为音频设备定义了一个枚举:AudioSystem::audio_devices,例如:DEVICE_OUT_SPEAKER,DEVICE_OUT_WIRED_HEADPHONE,DEVICE_OUT_BLUETOOTH_A2DP,DEVICE_IN_BUILTIN_MIC,DEVICE_IN_VOICE_CALL等等,每一个枚举值其实对应一个32bit整数的某一个位,所以这些值是可以进行位或操作的,

●音量管理

AudioPolicyManager提供了一下几个与音量相关的函数:

initStreamV olume(AudioSystem::stream_type stream, int indexMin, int indexMax) setStreamV olumeIndex(AudioSystem::stream_type stream, int index)

getStreamV olumeIndex(AudioSystem::stream_type stream)

AudioService.java中定义了每一种音频流的最大音量级别:

/** @hide Maximum volume index values for audio streams */

private int[] MAX_STREAM_VOLUME = new int[] {

5, // STREAM_VOICE_CALL

7, // STREAM_SYSTEM

7, // STREAM_RING

15, // STREAM_MUSIC

7, // STREAM_ALARM

7, // STREAM_NOTIFICATION

15, // STREAM_BLUETOOTH_SCO

7, // STREAM_SYSTEM_ENFORCED

15, // STREAM_DTMF

15 // STREAM_TTS

};

由此可见,电话铃声可以有7个级别的音量,而音乐则可以有15个音量级别,java 的代码通过jni,最后调用AudioPolicyManager的initStreamV olume(),把这个数组的内容传入AudioPolicyManager中,这样AudioPolicyManager也就记住了每一个音频流的音量级别。应用程序可以调用setStreamV olumeIndex设置各个音频流的音量级别,setStreamV olumeIndex会把这个整数的音量级别转化为适合人耳的对数级别,然后通过AudioPolicyService的AudioCommandThread,最终会将设置应用到AudioFlinger的相应的Track中。

●音频策略管理

我想首先要搞清楚stream_type,device,strategy三者之间的关系:AudioSystem::stream_type音频流的类型,一共有10种类型。

AudioSystem::audio_devices音频输入输出设备,每一个bit代表一种设备,见前面的说明。

AudioPolicyManager::routing_strategy 音频路由策略,可以有4种策略。

getStrategy(stream_type)根据stream type,返回对应的routing strategy值,getDeviceForStrategy()则是根据routing strategy,返回可用的device。Android把10种

stream type归纳为4种路由策略,然后根据路由策略决定具体的输出设备。

Anroid开发环境搭建实验报告

实验一A n d r o i d开发环境搭建 一、实验内容 1)了解Android开发所需要的开发包和工具,以及获得它们的方式; 2)下载、安装和配置Android开发包; 3)测试安装的开发环境,创建了一个Android项目; 4)在模拟器上运行和调试Android应用程序,并将该应用程序安装到Android手 机上。 二、实验步骤 1、参考《Android应用开发揭秘》的第一章,学习了解什么是Android系统以及Android的系统架构、Android应用程序框架; 2、参考《Android应用开发揭秘》的第二章,从FTP上下载java JDK和Eclipse 放在安装目录下,Eclipse直接将下载的压缩包解压即可。对于JDK双击安装,然后对java的开发环境进行配置:设置环境变量创建“Path”变量名,添加JDK安装目录中“bin”文件夹路径;创建“CLASSPATH”变量,添加JDK安装目录中“lib”以及“demo”的路径;最后进行测试是否安装成功。 4、安装完成后配置Android SDK,将Android SDK安装目录中的tools文件夹路径添加到环境变量中,更改系统变量中的“Path”项,添加路径: 5、安装和配置ADT,参照Android应用开发秘籍,启动Eclipse,点击“Help”菜单,按照步骤,在“Add Site…”之后,文本框里输入地址。打开菜单“Windows”,依次选择“Preferences”->“Android”,点击浏览选择Android SDK的安装路径,点击OK;然后打开菜单“File”,如下图查看得安装配置成功。 6、创建第一个Android项目HelloAndroid,新建项目,选择“Android Application Project”子项,如图。在“Project name”文本框输入“HelloAndroid”,“Build Target”选项框中选择“Android SDK ”,依次完成项目的设置,如下图。 HelloAndroid项目创建好,由ADT插件自动生成,可以运行。 7、运行HelloAndroid,使用Android仿真模拟器。选择Window,打开AVD Manager,新建一个AVD,选择API的等级为API 10,,填写SD卡的大小为2G,如图。 8、运行HelloAndroid项目 9、调试HelloAndroid项目,首先将Eclipse开发工具的工作界面切换到DDMS: 10、实验过程中发现的问题以及解决问题的方法 在安装Android SDK的时候,遇到信息“Failed to fetch URL…”的错误提示,然后将HTTPS方式改为HTTP方式,问题就解决了。

A20_Android开发手册_V1[1].0

C o n f i d e n t i a l A20Android 开发手册 V 1.0 2013-02013-03 3-15

C o n f i d e n t i a l Revision History Version Date Section/Page Changes 1.0 2013-03-15 初始版本

C o n f i d e n t i a l 目录 一、A20概述 (4) 1.1A20主控介绍.....................................................................................................................51.2外围设备介绍.....................................................................................................................51.3软件资源介绍.....................................................................................................................5二、建立开发环境. (5) 2.1硬件资源............................................................................................................................62.2软件资源. (6) 2.2.1安装JDK (ubuntu12.04).....................................................................................62.2.2安装平台支持软件(ubuntu12.04).....................................................................62.2.3安装编译工具链(ubuntu12.04).........................................................................62.2.4安装phoenixSuit (windows xp )........................................................................72.2.5其他软件(windows xp ).. (7) 三、源码下载 (8) 3.1wing 源码下载....................................................................................................................83.2仓库的目录树.. (8) 3.2.1android 目录树.........................................................................................................83.2.2lichee 目录结构.. (9) 3.2.2.1buildroot 目录结构........................................................................................93.2.2.2linux-3.3目录结构......................................................................................103.2.2.3u-boot 目录结构..........................................................................................113.2.2.4tools 目录结构............................................................................................123.2.2.5boot 目录结构 (12) 四、编译和打包 (13) 4.1源码编译 (13) 4.1.1lichee 源码编译......................................................................................................134.1.2android 源码编译...................................................................................................134.2打包固件.. (13) 4.2.1完全打包...............................................................................................................134.2.2局部打包 (14) 五、固件烧写 (14) 5.1使用PhoenixSuit 烧写固件.............................................................................................145.2使用fastboot 更新系统 (14) 5.2.1进入fastboot 模式.................................................................................................145.2.2fastboot 命令使用.. (15) 六、recovery 功能使用 (15) 6.1键值的查看......................................................................................................................156.2按键选择..........................................................................................................................166.3功能使用..........................................................................................................................16七、调试 (17) 7.1调试apk...........................................................................................................................177.2调试linux 内核. (17)

windowsXP下Android安卓开发环境搭建详细教程及图解

注:本教程是讲解在Windows XP下搭建安卓开发环境的。 安装目录: 步骤1 安装JDK 步骤2 安装Android SDK 步骤3 安装Tomcat 步骤4 安装Ant 步骤5 安装Eclipse 步骤6 安装Eclipse的ADT插件 步骤7 在图形界面下管理AVD 步骤8 设置Android系统语言 本教程的软件可以从我博客“绿杨芳草”下载。 方法/步骤 1、安装JDK 运行安装程序【jdk-6u22-windows-i586-p.exe】,分别点击下一步进行安装。 在安装过程中先后会出现两次选择安装目录的界面,全部改为以下路径: jdk安装目录:C:\Java\jdk1.6.0_22 jre安装目录:C:\Java\jre6\

安装好之后,配置环境变量: 打开环境变量窗口方法:右键【我的电脑】--单击【属性】--单击【高级】--单击【环境变量】。 在上方的用户变量中依次新建如下变量,并分别填入如下路径: 变量名:JAVA_HOME 变量值:C:\Java\jdk1.6.0_22 变量名:PATH 变量值:%JAVA_HOME%/bin 变量名:CLASSPATH 变量值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar 图1 配置完成之后,分别点击【开始】--【运行】--输入【cmd】--输入【javac】--按【回车键】,若看到以下信息,则代表配置成功。

图2 2、安装Android SDK 将【android-sdk_r17-windows.zip】解压到E:\Android目录下(Android目录自己新建,以后所有关于Android开发相关软件都会统一放到该目录中),得到一个android-sdk-windows 文件夹,该文件夹包含如下文件结构: add-ons:该目录下存放额外的附件软件。刚解压后,该目录为空。 platforms:该目录下存放不同版本的Android版本。刚解压后,该目录为空。 tools:该目录下存放了大量Android开发、调试的工具。 SDK Manager.exe:该程序就是Android SDK和AVD(Android虚拟设备)管理器。 通过该工具可以管理Android SDK和AVD。 运行E:\Android\android-sdk-windows目录下的【SDK Manager.exe】 然后等待更新...(该步骤必须联网,因为SDK安装包需要在线获取)。 在更新的过程中若遇到如下的提示窗口:

Android开发规范参考文档

Android开发参考文档 一、Android编码规范 1. java代码中不出现中文,最多注释中可以出现中文.xml代码中注释 2. 成员变量,局部变量、静态成员变量命名、常量(宏)命名 1). 成员变量: activity中的成员变量以m开头,后面的单词首字母大写(如Button mBackButton; String mName);实体类和自定义View的成员变量可以不以m开头(如ImageView imageView,String name), 2). 局部变量命名:只能包含字母,组合变量单词首字母出第一个外,都为大写,其他字母都为小写 3). 常量(宏)命名: 只能包含字母和_,字母全部大写,单词之间用_隔开UMENG_APP_KEY 3. Application命名 项目名称+App,如SlimApp,里面可以存放全局变量,但是杜绝存放过大的实体对象4. activity和其中的view变量命名 activity命名模式为:逻辑名称+Activity view命名模式为:逻辑名称+View 建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view 5. layout及其id命名规则 layout命名模式:activity_逻辑名称,或者把对应的activity的名字用“_”把单词分开。

命名模式为:view缩写_模块名称_view的逻辑名称, 用单词首字母进行缩写 view的缩写详情如下 LayoutView:lv RelativeView:rv TextView:tv ImageView:iv ImageButton:ib Button:btn 6. strings.xml中的 1). id命名模式: activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称,strings.xml中,使用activity名称注释,将文件内容区分开来 2). strings.xml中使用%1$s实现字符串的通配,合起来写 7. drawable中的图片命名 命名模式:activity名称_逻辑名称/common_逻辑名称/ic_逻辑名称 (逻辑名称: 这是一个什么样的图片,展示功能是什么) 8. styles.xml 将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中; 9. 使用layer-list和selector,主要是View onCclick onTouch等事件界面反映

Android配置开发环境

1.下载需要用到的工具: (1)下载JAVA的IDE开发工具– Eclipse 到Eclipse官方网站下载Ecplise For Java EE的最新Windows版本 下载页面地址: https://www.sodocs.net/doc/7911878859.html,/downloads/ 下载Ecplise (2)下载Java开发包— Java SE Development Kit (JDK) JDK 6 到Sun官方网站下载JDK6,选择JDK 6 Update 12 下载页面地址: https://www.sodocs.net/doc/7911878859.html,/javase/downloads/index.jsp (https://www.sodocs.net/doc/7911878859.html,/technetwork/java/javase/downloads/index.html)

下载JDK6 (3)下载Android开发包— Android SDK 到Google的官方网站下载Android的开发包For Windows的 下载地址:https://www.sodocs.net/doc/7911878859.html,/android/android-sdk-windows-1.5_r2.zip 2.下载完需要的工具之后,开始安装 (1)安装Ecplise:下载回来的 Ecplise(eclipse-java-europa-winter-win32.zip)直接解压即可 (2)安装JDK6:运行下载回来的JSK安装包(jdk-6u12-windows-i586-p.exe)一路”下一步”即可(版本可能会有所不同) (3)安装Android开发包(SDK):下载回来的SDK包 (android-sdk-windows-1.5_r2.zip)直接解压即可 3.让Ecplise自动安装Android开发插件(ADT- plugin) (1)启动安装完(解压)后的Ecplise目录下的Ecplise.exe (2)点击菜单”Help”->”Software Updates”,在打开的窗口中切换到选项 页”Availabe Software”

实验一Android开发环境搭建与Helloworld

实验一 Android开发环境搭建与Hello world 一、实验目的 学会搭建并安装Android开发环境,并实现Hello World应用开发。 二、主要仪器设备及套数 计算机 三、实验容 搭建开发环境;安装Java JDK,下载Eclipse,解压Eclipse;官方下安装ADT (Android Development Tools);安装Android;安装手机USB驱动;建立新项目,实现Hello World 四、程序代码 package .example.helloandroid; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.sodocs.net/doc/7911878859.html,yout.activity_main); } Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will

安卓开发环境搭建完全手册

安卓开发环境搭建完全手册 小安:博士,刚才听你说了这么多,我感觉Android平台真是前景无限,决定要从事Android开发,成为一名Android高手。今后请您多多指教! 大致:小安,我代表全体Android开发人员欢迎你加入Android开发的队伍,现在我就告诉你开发Android需要准备些什么。 1.1准备所需软件 1.1.1Android开发需要的工具 1)JDK5或JDK6 需要注意的是仅有JRE是不够的。JRE是Java的运行环境,而JDK不仅包含了JRE,还包含了我们开发Java程序所需要的工具集合。 JDK可以到:https://www.sodocs.net/doc/7911878859.html,/javase/downloads/index.jsp页面下载。 2)Eclipse3.5 使用MyEclipse也可以,但由于MyEclipse是收费的并且插件较多影响运行速度,因此不建议采用。Eclipse是一个开放源代码的、基于Java的可扩展的集成开发环境(IDE)。Eclipse中可以集成进多种插件,以完成特定语言的开发。 下载地址:https://www.sodocs.net/doc/7911878859.html,/downloads/页面中的EclipseIDEforJavaEEDevelopers链接。 3)Android SDK: SDK是我们开发Android应用程序的软件开发工具包。 下载地址:https://www.sodocs.net/doc/7911878859.html,/android/android-sdk_r05-windows.zip 4)Eclipse的插件ADT(Android Development Tools)

Android开发工具(ADT)是一个为EclipseIDE设计的旨在提供一个强大的、集成的环境来建立Android 应用程序的插件。ADT扩展了Eclipse的功能,可以快速建立新的Android项目,创建一个应用程序界面。它添加了基于Android框架API的组件,使用AndroidSDK工具调试你的应用程序,甚至导出签名(或未签名)APKs以分发你的应用程序。在Eclipse中强烈建议使用ADT进行开发,ADT提供了令人难以置信的提高开发Android应用程序的效率。 下载地址:https://www.sodocs.net/doc/7911878859.html,/android/ADT-0.9.5.zip 准备好这些工具,我们就可以安装这些软件来搭建Android的开发环境了。有一点需要注意,以上的链接部分会由于官方的更新而产生变动,有时下载到的版本不同,但下载的方式如此,如果遇到问题可以参考官方帮助文档 1.2安装所需的软件 1.2.1.安装JDK6 1.找到JDK安装文件,双击运行,界面如下:

Android开发环境搭建

Android 开发环境搭建 如遇问题请联系:Steven_Sun 需要硬盘空间至少12G,推荐在20G以上 文档结构: 1.准备工作 为获取和编译源码所做的准备,包括设置网络环境、安装一些必备工具等内容 2.源码获取 获取Android源码,可以选择官网下载或使用已下载好的源码 3.编译源码 编译Android源码,介绍整体编译、编译模块的方法 4.配置AP开发环境 主要是配置集成开发环境eclipse,这是以后工作的主要视窗平台 5.代码调试 通过3个实例介绍如何新建Android工程以及调试已有代码 1 准备工作 1.1 检查网络 请确保你的网络和代理没有问题: 使用sudo apt-get update命令没有错误提示即可。(没问题请跳过1.1节,看1.2节)如果有问题,请执行下面操作: 1.1.1 编辑网络连接 从面板上依次点击系统--->首选项--->网络连接,出现如图1-1的窗口: 选中“有线”标签中的Auto eth0,然后点击“编辑”按钮。

在弹出的窗口中(如图1-2),选择“802.1x安全性”标签, 勾选“对此连接使用802.1x安全性“ “认证“处选择”受保护的EAP(PEAP) 用户名输入你的网域用户名 密码输入网域密码 其他默认,点击“应用”按钮。 图1-2 1.1.2 配置代理服务器 目的是使终端以及apt工具能够使用网络。以便更新软件源和下载Android源码。 上一步配置好以后只是连接上了网域,如果想要实现上网的目的还需要设置代理。这里提供2种设置代理的方法:使用ntlmaps配置代理、使用google浏览器配置代理。 使用ntlmaps代理有时会出现配置好以后仍然无法联网的情况,注意要重复步骤1.1.2.1。关键是配置完之后要重启电脑。 Google浏览器配置代理一般使用起来比较方便,但缺点是下载Android源码时长时间挂机,可能出现断开的情况。这时需要使用google浏览器浏览一下网页,然后再重新输入下载命令继续下载即可。 1.1. 2.1 使用ntlmaps配置代理 安装ntlmaps工具 将 smb://ia-sz/资料2/SZ软体研发部二课 /Steven/ntlmaps_0.9.9.0.1-10ubuntu1_all.deb 这个压缩包拷贝到本地并安装。 安装时会有一个配置的对话框,对应填写如下内容。(注:只有第一次安装ntlmaps才

Android开发入门文档 v1.1

RK28平台技术文档 Android 开发入门 部 门: 内核组 版 本: V1.1 作 者: 陈美友 文件状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 日 期: 2008-12-1 关键字 Linux 、Android 、Native C/C++、编译、下载 概 述 本文档主要讲述了Android 的下载、编译,以 及本地C/C++程序的开发、Android 应用程序 的开发等… 本文档适用了Android 开发的初学者

目录 下载ANDROID源码 (3) 编译ANDROID源码: (4) 编译ANDROID中的LINUX内核: (5) 编译NATIVE C/C++程序 (6) 运行NATIVE C/C++应用程序 (7) 在WINDOWS XP操作系统上构建ANDROID应用程序开发环境 (8) 编写ANDROID应用程序 (9) ANDROID SDK文件夹结构分析 (9) ANDROID源代码结构 (10) ANDROID应用程序生成 (10)

注: 如果你要创建Android的SDK,那么你必须安装JDK5,不要安装JDK6 $sudo apt-get install sun-java5-jdk 如果你使用apt-get下载安装程序时,发现某些安装包无法下载的情况, 那么你可以从网络上其它地方用其它的工具下载安装包,然后进行安装。我 通常是通过Windows上的迅雷下载,然后通过VMware中的文件共享传到Linux系统中。 我的电脑: 主系统:Windows XP 模拟器安装在Windows XP上 VMware中安装Linux:Ubuntu8.10 Android源码存放路径:~/mydroid 下载Android源码 在这里面以Ubuntu(x86)操作系统为例,说明下载Android的步骤: 下载必要工具: 下载GIT工具: $ sudo apt-get install git-core gnupg 下载JDK6: $ sudo apt-get install sun-java6-jdk 下载下列工具包:flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev (optional), build-essential, zip, curl $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev 下载Valgrind工具(可选): $ sudo apt-get install valgrind 安装Repo工具: 创建目录存放Repo: $ cd ~ $ mkdir bin $ export PATH=~/bin:$PATH 下载Repo: $ curl https://www.sodocs.net/doc/7911878859.html,/repo >~/bin/repo

Android开发环境搭建

引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍中的一个新人的我,如果有什么不对的地方,还望不吝赐教。 在开始Android开发之旅启动之前,首先要搭建环境,然后创建一个简单的HelloWorld。本文的主题如下: 1、环境搭建 1.1、JDK安装 1.2、Eclipse安装 1.3、Android SDK安装 1.4、ADT安装 1.5、创建AVD 2、HelloWorld 1、环境搭建 1.1、JDK安装 如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下: 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18(你安装JDK的目录) CLASSPATH值为:.;%JAVA_HOME%lib ools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%in; Path: 在开始追加 %JAVA_HOME%in; NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。 安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java ?version 查看JDK的版本信息。出现类似下面的画面表示安装成功了:

图1、验证JDK安装是否成功 1.2、Eclipse安装 如果你还么有Eclipse的话,可以去这里下载,下载如下图所示的Eclipse IDE for Java Developers(92M)的win 32bit版: 图2、Eclipse下载 解压之后即可使用。 1.3、Android SDK安装 在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。 运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的"Force https://..."这项,再点击Available Packages 。 选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包 在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为 D:AndroidDevelopandroid-sdk-windows ools)。

实验一(搭建Android开发环境) (含友情提醒)

实验一 实验名称: Android开发环境搭建 实验目的: 搭建Android开发环境 实验要求: 1.安装JDK ①进入JDK官网下载最新版本的JDK,此处以JDK1.8版本为例。下载地址为:https://www.sodocs.net/doc/7911878859.html,/technetwork/java/javase/downloads/index.html。进入此页面以后,选择自己需要的JDK版本进行下载。 如图1-1所示。 点击下载 图2-1 下载JDK

②安装JDK。 ③配置JDK环境变量。JDK安装完成以后,需要进行环境变量的配置,分别配置JA V A_HOME,Path,以及CLASSPA TH这三个环境变量。 首先是配置JA V A_HOME变量:进入电脑桌面→我的电脑→属性→高级系统设置→环境变量,进入环境变量设置界面,如图2-2所示。 图2-2 进入环境变量配置 在“系统变量”中点击“新建”,设置JA V A_HOME变量,如图2-3所示。 图2-3 配置JA V A_HOME变量 其中,变量值设置为JDK的安装路径。 其次,配置完成JA V A_HOME以后,再配置Path变量。在“系统变量”中找到Path变量以后,点击“编辑”,在Path变量末尾加上:%JA V A_HOME%\bin。注意与前一个变量值,以“;”进行分割。如图2-4所示。

图2-4 配置Path变量 最后,配置CLASSPATH变量。在“系统变量”中,点击新建,设置CLASSPA TH变量,如图2-5所示。 图2-5 配置CLASSPATH变量 其中,“变量值”中填写:.;%JA V A_HOME%\lib\tools.jar;%JA V A_HOME%\lib\dt.jar。 2.安装Eclipse ①在Eclipse官网下载最新版本的Eclipse,下载地址为:https://www.sodocs.net/doc/7911878859.html,/downloads/,下载以后,进行解压缩,解压地址自己指定。 ②进入Eclipse的解压目录文件下,找到eclipse运行文件,双击后即可运行。如图2-6所示。 图2-6 eclipse安装

Android 开发环境配置图文教程(jdk+eclipse+android sdk)

Android 开发环境配置图文教程(jdk+eclipse+android sdk) 一相关下载 (1) java JDK下载: 进入该网页: https://www.sodocs.net/doc/7911878859.html,/javase/downloads/index.jsp(或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载 进入该网页: https://www.sodocs.net/doc/7911878859.html,/downloads/ (或者直接点击下载:BT下载HTTP下载) 如下图:

我们选择第一个(即eclipse IDE for java EE Developers) (3)下载Android SDK 说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。完全版下载 (android sdk 2.1 r01)升级版下载 (建议使用这个,本例子就是使用这个这里面不包含具体版本,想要什么版本在Eclipse里面升级就行) 二软件安装 (1)安装jdk 6u19 安装完成即可,无需配置环境变量 (2)解压eclipse eclipse无需安装,解压后,直接打开就行 (3)解压android sdk 这个也无需安装,解压后供后面使用 (4)最终有三个文件夹,如下图:

三 Eclipse配置 1 安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择 help->Install New SoftWare 出现如下界面:

点击 Add按钮,出现如下界面 输入网址: https://https://www.sodocs.net/doc/7911878859.html,/android/eclipse/ (如果出错,请将https改成http) 名称: Android (这里可以自定义) 点击OK,将出现如下界面

Java与Android开发学习指南

Java与Android开发学习指南 对于现在的IT界,最为火热的依然属于的移动互联网的开发。 2012年我们在不断进步,并且不断领先。

本套视频将采用最新的JDK 1.7,同时使用JUNO Eclipse进行开发讲解。 例如:实体层开发,需要类和表的映射,对于显示层的部分操作需要一些转换或处理等等。 马上这份笔记的完善版会经过清华大学出版社在2013年的上半年进行推出,而这本课堂笔记将和Java开发实战经典一起作为MLDN的入门书籍。 99%的课程,都为了方便学员复习提供了复习的视频资料。

https://www.sodocs.net/doc/7911878859.html,/,在线课程。 同学一起去根据需求设计业务; 根据业务的功能讨论设计数据库; 后台的开发。前台的实现,远程接口的开发。 从各个公司而言,面试的要求是提高了。 对于代码而言,写代码不麻烦,最麻烦的是调试程序。 目的:是方便更多同学可以轻松的进入到Java开发行业,毕竟这个行业是相对稳定的。 2013年,而Java 是在1995年的时候出现。 最早的时候更多的是关注于服务器端的开发,但是对于客户端,开发的复杂度是很高的,并且受到环境的限制,所以最早的一些ERP系统,只能在电脑上完成,而有了Android/IOS之后,发现移动办公成为了可能。 不管如何操作,业务是最终必须要掌握的。

在整个市场70%的份额都被Android拿走了。这块蛋糕很大。 20左右是占了IOS。 历史: 2003年的时候,当时的手机系统:Symbian、Linux、Windows CE、MTK 2009年的时候,手机系统:Android(Linux)、IOS、Symbian、Windows Phone。项目的整体把握:项目的核心业务设计、架构。 最早的时候如果某一款软件需要被安放在手机里,需要找开发商,给他钱。。。 改了:开发商给钱推广。

Android开发说明文档

Android开发说明文档 一、开发环境的搭建过程: 第一步安装JDK,并在环境变量中配置相应的参数。 第二步安装开发工具,常用的开发工具有两种,一种是eclipse开发工具开发时需要导入ADT插件,一种是motodevstudio开发时不需要任何插 件。 第三步安装sdk(android开发环境),并在环境变量中配置相应的参数。 第四步测试环境是否搭建好,以此用命令javac、android –h进行测试,如果命令窗口中出现相应的说明,则证明开发环境搭建成功。 二、实现手机拍照功能: 1.UI界面设计 UI界面总共有两个,一个是初始化界面,一个是拍照界面。 初始化界面设计,如下图所示; 拍照界面设计,在此界面中,设计了两个按钮,一个是拍照按钮,一个是对焦按钮,拍照按钮用于进行对区域范围景色的拍摄,对焦按钮 是对所在视野区域焦距进行调节,拍摄窗口是横向显示方式,拍摄暂停 画面是花色的;

2.功能实现 当点击拍照按钮进入拍照界面,拍照界面显示当前的视野,然后点击对焦按钮进行焦距调整,然后点击拍照按钮进行拍照,当出现花色时证明拍照完成,拍照完成的图片保存在sd卡的根目录下。 三、实现百度地图获取地址信息: 1.获取百度api的key 在用百度账号进入,设置自己的key值,将key值添加到自己程序里的publicstaticfinal String strKey="iDneBU6NBrm9wyLxdOODPTM5";这段代码中。 2.UI界面设计 在此界面中用LinearLayout布局管理器,在此界面中设置六个编辑框用于获取当前地址所在信息,具体如下图所示。

Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT)

Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT) (转) 以后工作中要用到android开发,所以想搭建好开发环境,笔记本装的是win7,在网上找了找相关资料,发现博客园有一片介绍搭建Android开发环境的文章,所以转载过来方便以后查看。转载地址:https://www.sodocs.net/doc/7911878859.html,/vengen /archive/2010/04/01/AndroidSetup.html 我把该教程做成了一个PDF,网速慢的朋友可以在这里下载https://www.sodocs.net/doc/7911878859.html,bl https://www.sodocs.net/doc/7911878859.html,/vengen/AndroidSetup.zip 准备文件: 1 下载Android SDK https://www.sodocs.net/doc/7911878859.html,/android/download.html WIN7 的安装方法与XP 的安装方式完全相同。 2 下载JDK6 https://www.sodocs.net/doc/7911878859.html,/javase/downloads/index.jsp 3 下载Eclipse3.4.1 https://www.sodocs.net/doc/7911878859.html,/downloads/ 对于Eclipse来说,直接解压之后就可以使用。 4 下载Eclipse的Android ADT插件 许多教程在这一步都是通过Eclipse自身的update功能进行下载: 启动Eclipse,选择【Help】> 【Soft Updates】> 【Find and Install…】 选择“Available Software”标签页,点击【Add Site…】按键。添加updat e站点:https://https://www.sodocs.net/doc/7911878859.html,/android/eclipse/ 这时窗口中新增了“https://https://www.sodocs.net/doc/7911878859.html,/android/eclipse/”项,选中该项,点击【Install…】按键即可下载。 注:许多国内的网友都无法完成这样的升级,通常是进行到一半就没有任何反映了(其他插件,例如pydev也是这样)。 没关系,我们直接到Android官网去下载这个ADT插件: https://www.sodocs.net/doc/7911878859.html,/android/adt_download.html

最全的AndroidOpenGL开发文档

Android 3D 游戏开发教程 (Open Graphics Library) 目前最全的Android OpenGL文档 这几篇Android 3D游戏开发的文章原文出自一位德国人Martin 在https://www.sodocs.net/doc/7911878859.html,写的文章,由lixinso翻译为中文。 拷贝于博客:https://www.sodocs.net/doc/7911878859.html,/lixinso/archive/2010/01/30/5272927.aspx 第一部分首先介绍OpenGL相关的术语,并引导你开始3D开发的第一步。 这个关于3D游戏的系列的叫做V ortex . 这个教程主要focus在3D编程上,其他的东西比如菜单和程序生命周期虽然是代码的一部分,但是在这里不会被提到。 首先开始介绍OpenGL的术语。 顶点V ertex 顶点是3D空间中的一个点,也是许多对象的基础元素。在OpenGL中你可以生命少至二维坐标(X,Y),多至四维(X,Y,Z,W). w轴是可选的,默认的值是1.0. Z轴也是可选的,默认为0. 在这个系列中,我们将要用到3个主要的坐标X,Y,Z,因为W一般都是被用来作为占位符。vertex的复数是vertices(这对非英语母语的人来说比较重要,因为这容易产生歧义)。所有的对象都是用vertices作为它们的点,因为点就是vertex。 三角形Triangle 三角形需要三个点才能创建。因此在OpenGL中,我们使用3个顶点来创建一个三角形。多边形Polygon 多边形是至少有3个连接着的点组成的一个对象。三角形也是一个多边形。 图元Primitives 一个Primitive是一个三维的对象,使用三角形或者多边形创建。形象的说,一个有50000个顶点的非常精细的模型是一个Primitive,同样一个只有500个顶点的低模也叫做一个Primitive。 现在我们可以开始变成了。 创建一个工程交V ortex,activity也是这个名字。我们的工程应该大概是这个样子的:package com.droidnova.android.games.vortex; import android.app.Activity; import android.os.Bundle; public class V ortex extends Activity { private static final String LOG_TAG = V ortex.class.getSimpleName(); private V ortexV iew _vortexV iew; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); _vortexV iew = new V ortexView(this); setContentView(_vortexView);

相关主题