当前位置:文档之家› Android_音乐播放器_功能实现和分析

Android_音乐播放器_功能实现和分析

Android_音乐播放器_功能实现和分析
Android_音乐播放器_功能实现和分析

基于Android开发音乐播放器的设计

本文主要是在Android系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程来进一步学习Android平台,这样对个人未来发展有很大的意义。本文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse开发工具对播放器代码进行编写。同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。对于播放歌曲的文件,本播放器只限于应用层程序的探讨,所以对具体的文件不做深入研究。

实验证明,基于android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。

关键词: Android,Java,Eclipse,音乐播放器

目录

1.前言 (1)

2系统需求分析 (2)

2.1功能需求 (2)

2.1.1播放器的基本控制需求 (2)

2.1.2功能需求(时序图)分析 (3)

2.2 系统结构图和流程图 (4)

2.3系统界面需求 (4)

2.4系统性能需求 (5)

2.5运行环境需求 (5)

3 Android项目介绍 (6)

3.1什么是Android (6)

3.1.1Android的介绍 (6)

3.1.2 Android Features 特性: (6)

3.1.3 Android 基本框架(Android Architecture) (7)

3.2 Android应用软件开发的核心技术 (10)

3.2.1 Android 应用开发语言 (10)

3.2.2 Android 应用程序组件 (10)

3.3 Android开发环境的搭配 (13)

3.4 Android模拟器中sd卡的创建和文件的上传 (15)

3.4.1 SD卡的创建 (15)

3.4.2向sd卡里面上传文件及异常解决 (16)

4音乐播放器的详细设计 (17)

4.1 播放器的欢迎界面和主界面的设计和说明 (17)

4.2 Android媒体播放原理 (20)

4.3 播放功能实现细节 (21)

5软件测试 (22)

5.1 软件的测试 (22)

5.1.1软件测试的环境 (22)

5.1.2测试阶段 (22)

6 代码附录 25

1.前言

当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,是的手机操作系统也出现了不同各类,现在的市场主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开发源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。

Android:是谷歌于2007年公布的开放式源代码手机系统,一直受到人们的热捧。Android是基于Linux内核的软件平台和操作系统,它开放性就优于其他封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。

随着计算机的广泛运用,手机市场的迅速发展,各种音频资源也在网上广为流传,这些资源卡是平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味最求外观花俏,功能庞大,对用户的手机造成很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。

现今社会生活紧张,而欣赏音乐史其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3等音乐文件,并且能够控制播放器播放,暂停,停止,上一曲,下一曲。界面简单,操作简单。

本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的播放器,让手机主人随时随地处于音乐的旋律中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。

2系统需求分析

2.1功能需求

2.1.1播放器的基本控制需求

根据项目的目标,我们可获得项目系统的基本需求,一下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。

图2.1 播放器基本控制图

在播放器正在运行时,用户单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”

按钮,播放器将播放上一首或下一首歌曲。

2.1.2功能需求(时序图)分析

从时序图中可以看出播放器中信息发送和调用过程

图2.2 音乐播放器的时序图

2.2 系统结构图和流程图

图2.3 音乐播放器系统流程图

2.3系统界面需求

播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。能实现要求的功能,但又不重复。要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。

2.4系统性能需求

根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:

1、当要求歌曲播放时,程序响应时间最长不能超过5秒

2、当要求歌曲暂停时,程序响应时间最长不能超过5秒

3、当要求歌曲停止时,程序响应时间最长不能超过5秒

4、当要求歌曲上/下一首时,程序响应时间最长不能超过5秒

5、界面切换响应时间最长不能超过3秒

2.5运行环境需求

操作系统:Windows xp

支持环境:Android 2.1版本

开发环境:Eclipse 3.5 ADT 0.95

3 Android项目介绍

3.1什么是Android

3.1.1Android的介绍

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其他几十个手机公司建立开发手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。

3.1.2 Android Features 特性:

Android 系统有如下的几大特性

1.应用程序框架支持组建的重用与替换

2.Dalvik 虚拟机专门为移动设备做了优化

3.内部集成浏览器该浏览器基于开源的WebKit引擎

4.优化的图形库包括2D和3D图形库,3D图形库基于OpenGl ES

5.SQLite 用作结构化的数据存储

6.多媒体支持包括常见的音频、视频和静态印象文件格式(如

MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

7.GSM电话(依赖于硬件)

8.蓝牙Bluetooth,EDGE,3G,安定WIFI(依赖于硬件)

9.照相机,GPS,指南针,和加速度计(依赖于硬件)

10.丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图

表,和Eclipse集成开发环境插件

3.1.3 Android 基本框架(Android Architecture)

图3.1 Android Architecture(android 软件结构图)

其软件层次结构自上而下分为以下几个层次

第一、应用程序(Application)

第二、应用程序框架(Application Framework)

第三、各种库(Libraries)和Android运行环境(RunTime)

第四、操作系统层

(1)Application

Application Android 会同一核心应用程序包一起发布,该应

用程序包包括email客户端,SMS短消息程序,日历,地图,

浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写

的。

(2) Application FrameWork

开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过的遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。

所有的应用程序都由一系列的服务和系统组成,包括:

a.可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(Grids),文本框(Text boxes),按钮(button),甚至包括另一个可嵌入的web浏览器。

b.内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人的数据库),或者共享它们自己的数据。

c.资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(Layout Files)。

d.通知管理器(Notification Manager)使得应用程序生可以在状态栏中显示客户通知信息。

e.活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

(3) Libraries库

Android包括一个被Android系统中各种不同组件所使用的

C/C++库集。该库通过Android应用程序框架为开发者提供服

务。

(4) Android Runtime

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMS来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。

(5) Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议和驱动模型。Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。

3.2 Android应用软件开发的核心技术

3.2.1 Android 应用开发语言

JAVA是Android上的主流开发语言,各种支持也最完善。Android发布的API和SDK也都主要是面向JAVA开发人员的。我的播放器实例也是用JAVA开发的。

3.2.2 Android 应用程序组件

Android 应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。例如假设我们需要编写一个内嵌于网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的Chrome Lite浏览器组件。又如假设我们编写了两个应用程序,其中一个程序中有列表显示图标的组件,那么我们在另一个应用程序中就可以使用该组件,而不需要在编写该功能。也就是说,不同于我们平常编写的程序,Android 的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。

Android应用程序的组件有以下四种:

1.Activities

一个Activity实际上表现出来的就是一个程序的界面。这个界面可能有许多不同的形式,比如有列表形式,有文字形式,有图像格子等形式。一个应用程序也可能有不止一个Activity。比如一耳光短消息的程序,需要有列表显示所有消息的Activity,还至少需要一个编辑短信的Activity,还可能需要设置、菜单等界面。

每个Activity都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其他窗口之上(如Android中的Toast信息)。

Activity中显示出来的内容其实是由view堆叠形成的,view是由View基类派生出来的各种形式的界面元素,如ListView,GridView等等,通过组合这些view,就形成了一个可见的Activity。我们可以用Activity.setContentView()方法来设置一个Activity中所要显示的view。

2.Services

Service是一种没有界面的组件,同我们平常在Windows或Linux系统中所理解的“服务”一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service组件式至关重要的。以下载管理器为例,用户肯定希望能够在切换到其他程序时仍然在后台继续下载,这就需要用到service完成下载工作。而显示下载进度、已下载文件等信息则由Activity完成,同时我们还希望控制下载过程,如停止、继续等,这就需要Activity 与service之间进行通信。Android允许activity连接到或者绑定到service上,这样就可以让用户在界面上控制后台service的行为。

3.Broadcast receivers

Broadcast意为广播消息,Android系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载。

Broadcast receiver则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其他组件去处理广播消息。它可以启动一个Activity来同用户交互,也可以使用NotificationManager向用户发出通知。NitificationManager的通知形式有许多种,不如说振动、响铃、闪LED灯,还可以在Android界面的消息栏处显示信息。

4.Content providers

Content provider是一种为其它应用程序提供数据的组件。这些数据可以保存在文件中,也可以保存在SQLite数据库中,还可以以其他任何有效的方式保存。ContentProvider类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。其它应用程序在需要使用这些数据时,可以用ContentResolver对象,使用其中的方法。ContentResolver可以与任何contentprovider交互,获取其中的数据。

只需要某个组件,Android就会尽力保证它的可用;如果该组件还没有启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。

3.3 Android开发环境的搭配

任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置.

搭建开发环境需要的软件:

操作系统:Windows XP或Linux

软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)

IDE环境:Eclipse IDE+ADT Eclipse3.3以上

JDK:Java Runtime Environment虚拟机、(JDK)Java Development kit

安装步骤如下:

第一步:安装Java虚拟机sun-java6-jdk版本

第二步:安装Eclipse3.5工具官网https://www.doczj.com/doc/9c1299986.html,/downloads/ 选择版本(图4.2):进行安装

图 3.2

第三步:安装Android SDK:首先要下载SDK,可以在这个网址下载

https://www.doczj.com/doc/9c1299986.html,/sdk ,选择相应的系统进行安装

图 3.3

第四步:安装Android ADT插件

运行Eclipse,选择help->install new software 选择add,将会弹出一个框

图 3.4

点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置Android SDK Home,Window->refrence

图 3.5

在SDK location中输入SDK Tools路径:D:\android

software\android-sdk-windows 点击OK

这样Android环境就已经搭建成功了。

3.4 Android模拟器中sd卡的创建和文件的上传

在Android模拟器中,初始时没有sdcard的,为了存放音乐文件,需要自己创建sdcard,我们先来看看如何创建sdcard以及文件上传。

3.4.1 SD卡的创建

通过Android的Tools来创建sd卡并导入进来

1.打开dos,windows+R键打开。转换到你的sdk安装包的tools目录下,

如我的目录如下:E:\android-sdk-windows\tools

2.创建sd卡。在命令行中输入:mksdcard 1024M

E:\androidsdcard\sdcard.img

(这个1024M就是我们要创建的SD卡的大小,还是根据自己的需要来输入,最后面的那个E:\androidsdcard\sdcard.img就是所设置的SD存放路径,这里也可以根据我们自己的需要改变路径的,但要注意路径中不能有空格出现)

3.在Eclipse里面创建模拟器,并以该SD开来创建

4.创建完成之后,启动该模拟器。可以在Android SDK and AVD Manager

里面指定模拟器并启动。

5.同样打开Eclipse的DDMS- File—Explorer 查看sd卡是否安装成

功。

3.4.2向sd卡里面上传文件及异常解决

右边两个小手机按钮就是传输文件的按钮了,用它来实现文件的传入和传出了,向左的表示把手机里的文件导出,向右的表示把文件导入到手机里面去。这里和容易出现异常。异常如下:

异常一:Failed to push selection:Invalid argument

出现此异常,多半是文件所在的目录里面有中文或者文件的名字是中文导致的。建议修改一下试试。还有就是观察自己的操作权限是不是不够,如果是,d—rwxr—x 那就是可以的。如果,sd卡是在eclipse里面系统自动创建的,试着重启一下IDE。

异常二:Failed to push the item(s)

出现这个异常是因为传输超时造成的。可以修改。

打开windows—Preference—android—DDMS

把ADB connection tine out 项的超时时间改大点。

4音乐播放器的详细设计

4.1播放器的欢迎界面和主界面的设计和说明

Android的每一个可视化界面,都有其唯一的布局配置文件,该文件里面有各种布局方式,各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对配置文件进行读取。这样就可以形成不同的可视化界面和绚丽的效果。

欢迎界面布局文件内容如下:

xmlns:android="https://www.doczj.com/doc/9c1299986.html,/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/backgrund"

android:sharedUserId="com.android.activitygrouptest"

>

此处的按钮用于进入播放器的主界面

android:id="@+id/myButton1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="51dp"

android:layout_y="371dp"

android:text="进入"/>

此处的按钮用于退出程序

android:id="@+id/myButton2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="195dp"

android:layout_y="368dp"

android:text="退出"/>

此处的TextView用于显示“我的播放器”

android:id="@+id/myTextView01"

android:layout_width="wrap_content"

android:layout_height="30dp"

android:layout_x="100dp"

android:layout_y="50dp"

基于Android的音乐播放器设计与实现

基于Android的音乐播放器设计与实现

摘要 在如今这个生活节奏越来越快的社会,科技也随之发展的越来越智能化。而手机的智能化就是其中体现的一个方面,现在市场上比较主流的手机系统就是Android,苹果和w8。Android是一个开源的系统,它底层是基于Linux的操作系统。 本毕业设计的音乐播放器采用了Android开源系统技术,利用Java语言和EclipseJDK编辑工具对音乐播放器进行编写。同时也给出了比较详细的系统设计过程、部分界面图及主要功能运行流程图,本设计还对一些架构的和界面的高度过程中遇到的问题和解决方法进行了详细的讨论,还有一些开发过程中遇到的错误问题进行了举例。该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,有良好的性能,炫酷的播放界面。能在Android 手机系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式(单曲循环,单曲循环,顺序循环,顺序播放,随机播放)、以及歌词开闭状态等比较人性化的设置.该音乐播放器的名称是:“旋风播放器“,名字就和它的风格一样。 关键词:Linux操作系统;Android;流程图;音乐播放器;开源系统

Abstract In this increasingly fast pace of life society, science and technology also will be the development of more and more intelligent. The intelligent phone which reflects one aspect of the market is now more mainstream phone system is Android, Apple and W8. Android is an open source system, it is the underlying Linux-based operating system. The music player of the graduate design uses the Android open source technology, the use the Java language and EclipseJDK of editing tools to write the music player. But also gives a more detailed system design process, part of the interface map and main functions of a flowchart of the operation, the design of a high degree of process architecture and interface problems encountered and solutions are discussed in detail, as well as some development process errors encountered examples. The music player is set to play, pause, stop, previous one, the next song, lyrics display and other functions in one, good performance, cool player interface. Android mobile phone system can run independently. The player also has access to the phone file browser function, song playback mode (single cycle, single cycle, order cycle, the order of play, random play), as well as the opening and closing lyrics state humane set the music the name of the player: "whirlwind player", the name and its style. Key words: Linux operating system; Android; flowchart; music player; open source system

Android Hotfix 新方案——Amigo 源码解读

Android Hotfix 新方案——Amigo 源码解读 首先我们先来看看如何使用这个库。 用法 在project 的build.gradle中 dependencies { classpath 'me.ele:amigo:0.0.3' } 在module 的build.gradle中 apply plugin: 'me.ele.amigo' 就这样轻松的集成了Amigo。 生效补丁包 补丁包生效有两种方式可以选择: ? 稍后生效补丁包 ? 如果不想立即生效而是用户第二次打开App 时才打入补丁包,则可以将新的Apk 放到/data/data/{your pkg}/files/amigo/demo.apk,第二次打开时就会自动生效。可以通过这个方法 ? File hotfixApk = Amigo.getHotfixApk(context); ?

获取到新的Apk。 同时,你也可以使用Amigo 提供的工具类将你的补丁包拷贝到指定的目录当中。 ? FileUtils.copyFile(yourApkFile, amigoApkFile); ? ? 立即生效补丁包 ? 如果想要补丁包立即生效,调用以下两个方法之一,App 会立即重启, 并且打入补丁包。 ? Amigo.work(context); ? Amigo.work(context, apkFile); ? 删除补丁包 如果需要删除掉已经下好的补丁包,可以通过这个方法 Amigo.clear(context); 提示:如果apk 发生了变化,Amigo 会自动清除之前的apk。 自定义界面 在热修复的过程中会有一些耗时的操作,这些操作会在一个新的进程中的Activity 中执行,所以你可以通过以下方式来自定义这个Activity。

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

Android源码下载方法详解

Android: Android源码下载方法详解 分类:Android平台 安卓源码下载地址:https://www.doczj.com/doc/9c1299986.html,/source/downloading.html 相信很多下载过内核的人都对这个很熟悉 git clone git://https://www.doczj.com/doc/9c1299986.html,/kernel/common.git kernel 但是这是在以前,现在如果这么执行的话,会显示如下内容 Initialized empty Git repository in /home/star/working/kernel/.git/ https://www.doczj.com/doc/9c1299986.html,[0: 149.20.4.77]: errno=Connection refused fatal: unable to connect a socket (Connection refused) 通过浏览器输入https://www.doczj.com/doc/9c1299986.html,/,发现该网站已经被重定向为 https://www.doczj.com/doc/9c1299986.html,/source/downloading.html 可以在该页面的最后发现内核的下载方法。 下面我们介绍一下Android源码下载的步骤。 工作环境: 操作系统:Ubuntu 10.04 或Ubuntu10.10 git程序:1.7.0.4 或1.7.1 转载请注明出处:https://www.doczj.com/doc/9c1299986.html,/pku_android 方法一: 1.1 初始化安装环境 参考网页https://www.doczj.com/doc/9c1299986.html,/source/initializing.html 主要要做的就是安装jdk和安装一些软件包 $ sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \ libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \ libxml2-utils 如果已经安装了,就不许要这步了 1.2 无论下载内核和源码,都需要进行如下操作 参考网页https://www.doczj.com/doc/9c1299986.html,/source/downloading.html $ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://https://www.doczj.com/doc/9c1299986.html,/dl/googlesource/git-repo/repo > ~/bin/repo 如果出现: repo init error: could not verify the tag 'v1.12.7',

Android源代码结构分析

目录 一、源代码结构 (2) 第一层次目录 (2) bionic目录 (3) bootloader目录 (5) build目录 (7) dalvik目录 (9) development目录 (9) external目录 (13) frameworks目录 (19) Hardware (20) Out (22) Kernel (22) packages目录 (22) prebuilt目录 (27) SDK (28) system目录 (28) Vendor (32)

一、源代码结构 第一层次目录 Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示: . |-- Makefile (全局的Makefile) |-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码) |-- bootloader (引导加载器),我们的是bootable, |-- build (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具) |-- dalvik (JAVA虚拟机) |-- development (程序开发所需要的模板和工具) |-- external (目标机器使用的一些库) |-- frameworks (应用程序的框架层) |-- hardware (与硬件相关的库) |-- kernel (Linux2.6的源代码) |-- packages (Android的各种应用程序) |-- prebuilt (Android在各种平台下编译的预置脚本) |-- recovery (与目标的恢复功能相关) `-- system (Android的底层的一些库)

基于android平台的音乐播放器的设计与实现

嵌入式系统综合设计说明书 题 目:基于Android 的音乐播放器设计与实现 姓 名: 学 院:信息工程学院 班 级: 指导教师: 2012 年9 月24 日

摘要 Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。 关键词:android;音乐播放器;嵌入式;java

Abstract Android is a Linux-based open-source operating system, this article on the android platform design and realization of the music player, the use of the Java language and the Eclipse programming tools. Can be achieved through the design of the music playback, pause, previous song, next song, music list, sound control, the Help menu and other functions through the principle player in android platform-based design, and to understand the design of the music player realization of the related technology, to master the android programming ideas, as well as basic application components, great help later in the android development. Keywords: android; music player; embedded; java

Android USB 驱动分析

Android USB 驱动分析 一、USB驱动代码架构和使用 1、代码简介 USB驱动代码在/drivers/usb/gadget下,有三个文件:android.c, f_adb.c, f_mass_storage.c;g_android.ko 是由这三个文件编译而来,其中android.c 依赖于 f_adb.c 和 f_mass_storage.c(这两个文件之间无依赖关系)。 可在android.c中看到: static int __init android_bind_config(struct usb_configuration *c) { struct android_dev *dev = _android_dev; int ret; printk(KERN_DEBUG "android_bind_config\n"); ret = mass_storage_function_add(dev->cdev, c, dev->nluns); if (ret) return ret; return adb_function_add(dev->cdev, c); } 2、驱动使用 要使USB mass storage连接到主机: 打开/sys/devices/platform/usb_mass_storage/lun0/file文件,向 file文件写入一个存储 设备的路径,例如/dev/block/vold/179:0 (major:minor)路径; 这里的usb_mass_storage根据实际应用可以改的,由 platform_device_register函数的参数决 定。 例如: static struct platform_device fsg_platform_device = { .name = "usb_mass_storage", .id = -1, }; static void __init tegra_machine_init(void) { .... (void) platform_device_register(&fsg_platform_device); .... }

基于Android音乐播放器的设计与实现

滨江学院 《移动通信程序设计》 课程设计 题目基于Android系统的音乐播放器 院系滨江学院 专业计算机科学与技术 学生姓名王兵 学号 二O一四年六月十日

摘要 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 目录 1前言........................................................... 1.1选题的背景及意义............................................. 1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 ..................................... 2.1开发应用技术介绍............................................. 2.2开发及运行坏境............................................... 3系统的分析..................................................... 3.1可行性分析................................................... 3.2常见的几种音频格式及其特点................................... 3.3需求分析..................................................... 4系统设计....................................................... 4.1系统概要设计................................................. 4.2系统功能设计及描述........................................... 5系统功能实现................................................... 5.1歌曲添加模块................................................. 5.2歌曲列表模块................................................. 5.3播放控制模块................................................. 5.4音量控制模块................................................. 5.5进度控制模块................................................. 5.6滚动字幕模块................................................. 5.7歌曲下载模块................................................. 5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

Android 串口编程原理和实现方式附源码

提到串口编程,就不得不提到JNI,不得不提到JavaAPI中的文件描述符类:。下面我分别对JNI、以及串口的一些知识点和实现的源码进行分析说明。这里主要是参考了开源项目android-serialport-api。 串口编程需要了解的基本知识点:对于串口编程,我们只需对串口进行一系列的设置,然后打开串口,这些操作我们可以参考串口调试助手的源码进行学习。在Java中如果要实现串口的读写功能只需操作文件设备类:即可,其他的事都由驱动来完成不用多管!当然,你想了解,那就得看驱动代码了。这里并不打算对驱动进行说明,只初略阐述应用层的实现方式。 (一)JNI: 关于JNI的文章网上有很多,不再多做解释,想详细了解的朋友可以查看云中漫步的技术文章,写得很好,分析也很全面,那么在这篇拙文中我强调3点: 1、如何将编译好的SO文件打包到APK中?(方法很简单,直接在工程目录下新建文件夹libs/armeabi,将SO文件Copy到此目录即可) 2、命名要注意的地方?(在编译好的SO文件中,将文件重命名为:lib即可。其中是编译好后生成的文件) 3、MakeFile文件的编写(不用多说,可以直接参考package/apps目录下用到JNI的相关项目写法) 这是关键的代码: [cpp]view plaincopy

(二):

文件描述符类的实例用作与基础机器有关的某种结构的不透明句柄,该结构表示开放文件、开放套接字或者字节的另一个源或接收者。文件描述符的主要实际用途是创建一个包含该结构的或。这是API的描述,不太好理解,其实可简单的理解为:就是对一个文件进行读写。 (三)实现串口通信细节 1) 建工程:SerialDemo包名:org.winplus.serial,并在工程目录下新建jni和libs两个文件夹和一个org.winplus.serial.utils,如下图: 2) 新建一个类:SerialPortFinder,添加如下代码: [java]view plaincopy 1.package org.winplus.serial.utils; 2. 3.import java.io.File; 4.import java.io.; 5.import java.io.IOException; 6.import java.io.LineNumberReader; 7.import java.util.Iterator; 8.import java.util.Vector; 9. 10.import android.util.Log; 11. 12.public class SerialPortFinder { 13. 14.private static final String TAG = "SerialPort"; 15.

基于Android音乐播放器的设计与实现

基于Android音乐播放器的设计与实 现

专科毕业设计(论文) 题目基于Android的音乐播放器设计与实现 姓名苏闹 专业计算机应用技术 学号 23011 指导教师黄海燕 郑州科技学院信息工程学院 二○一五年五月 2 2020年4月19日

目录 摘要 (Ⅰ) Abstract (Ⅱ) 前言 (Ⅲ) 1. 项目来源及开发目的和意义 (1) 1.1 项目来源 (1) 1.2 项目开发目的和意义 (2) 2. 音乐播放器开发及应用现状分析 (3) 2.1操作和全面是关键 (3) 2.2 Android音乐播放器的音质分析 (4) 3. 需求分析及总体设计方案 (5) 3.1 主要开发内容 (5) 3.2 需求分析 (5) 3.2.1 界面设计模块功能需求 (6) 3.2.2 后台通讯模块功能需求 (13) 3.2.3 文件夹选择模块功能需求 (13) 3.3 总体设计方案 (13) 3.3.1 页面设计模块结构 (13) 3.3.2 后台通讯模块结构 (13) 3.3.3 文件夹选择模块结构 (14)

4. 开发环境和开发工具 (14) 4.1 开发语言 (14) 4.2 开发工具 (14) 4.3 开发环境 (14) 5. 项目进度安排、预期达到的目标 (15) 5.1 进度安排 (15) 5.2 预期达到的目标 (15) 5.2.1 功能预期目标 (15) 5.2.1 性能预期目标 (15) 5.2.1 其它预期目标 (15) 6. 完成项目所需的条件和经费 (16) 7. 预见的困难及应对措施 (17) 总结 (19) 致谢 (20) 参考文献 (21)

App工程结构搭建:几种常见Android代码架构分析

App工程结构搭建:几种常见Android代码架构分析 关于Android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐的代码,优美的分层总是一种舒服的享受的。 从艺术的角度看,其实我们是在追求一种美。 本文先分析几个当今比较流行的android软件包,最后我们汲取其中觉得优秀的部分,搭建我们自己的通用android工程模板。 1. 微盘 微盘的架构比较简单,我把最基本,最主干的画了出来: 第一层:com.sina.VDisk:com.sina(公司域名)+app(应用程序名称) 。 第二层:各模块名称(主模块VDiskClient和实体模块entities)第三层:各模块下具体子包,实现类。 从图中我们能得出上述分析中一个最简单最经典的结构,一般在应用程序包下放一些全局的包或者类,如果有多个大的模块,可以分成多个包,其中包括一个主模块。 在主模块中定义基类,比如BaseActivity等,如果主模块下还有子模块,可以在主模块下建立子模块相应的包。说明一点,有的时候如果只有一个主模块,我们完全可以省略掉模

块这一层,就是BaseActivity.java及其子模块直接提至第二层。 在实体模块中,本应该定义且只定义相应的实体类,供全局调用(然而实际情况可能不是这样,后面会说到)。在微盘应用中,几乎所有的实体类是以xxx+info命名的,这种命名也是我赞成的一种命名,从语义上我觉得xxxModel.java这种命名更生动更真实,xxxModel给我一种太机械太死板的感觉,这点完全是个人观点,具体操作中以个人习惯为主。还有一点,在具体的xxxInfo,java中有很多实体类中是没有get/set的方法,而是直接使用public的字段名。这一点,我是推荐这种方式的,特别是在移动开发中,get/set方法很多时候是完全没有必要的,而且是有性能消耗的。当然如果需要对字段设置一定的控制,get/set方法也是可以酌情使用的。 2. 久忆日记 相比于微盘的工程结构,久忆日记的结构稍微复杂了一些。如下图: 1).第一层和前面微盘一样的. 2).第二层则没有模块分类,直接把需要的具体实现类都放在下面,主要日记的一些日记相关的Activity。 3).第二层的实体包命令为model包,里面不仅存放了实体类

基于android平台的音乐播放器的课程设计报告

吉首大学 《疯狂Android讲义》课程设计 报告书 题目音乐播放器 作者孙琛赵凡卓朱世康王喜元 所属学院软件服务外包学院 专业年级移动互联2012级 指导老师祝勇军 写作时间 2014年4月01日 吉首大学软件学院教务办制 第1章绪论 (4) 1.1 选题的目的及意义 (4) 1.2 本课题涉及内容的研究现状 (4) 1.3 本系统要实现的基本目标和研究内容 (5) 第3章需求分析 (5) 3.1 软件目标 (5) - I -

3.3系统界面需求 (5) 3.4系统性能需求 (6) 第4章系统的总体设计 (6) 4.1 设计思想 (6) 4.2 系统功能结构图 (6) 第5章数据库的设计 (7) 5.1 数据库表的介绍 (7) 5.1.1用户注册表 (7) 5.1.2 完成下载的音乐表 (7) 5.1.3 播放清单表 (7) 5.2 数据库连接 (7) 第6章系统详细设计 (7) 6.1 欢迎界面模块详细设计 (7) 6.2播放列表模块详细设计 (7) 6.3 歌曲播放模块详细设计 (8) 6.4 本地音乐模块详细设计 (8) 6.5 会员登录模块详细设计 (8) 6.6 会员注册模块详细设计··············错误!未定义书签。 6.7 音乐下载模块详细设计 (9) 6.8 设置皮肤模块详细设计 (9) 第7章系统测试 (9) - II -

7.2 图片上传功能测试 (9) 7.3 文件上传功能测试················错误!未定义书签。 结论 (10) - III -

第1章绪论 1.1 选题的目的及意义 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点 1.2 本课题涉及内容的研究现状 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google 和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最新SDK版本为Android 4.0.3。 - 4 -

最全的Android源码目录结构详解

最全的Android源码目录结构详解 Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (部分厂家开源的硬解适配层HAL代码) |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (底层文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- arch-x86 (x86架构,包含系统调用汇编实现) | |-- bionic (由C实现的功能,架构无关) | |-- docs (文档) | |-- include (头文件) | |-- inet (?inet相关,具体作用不明) | |-- kernel (Linux内核中的一些头文件) | |-- netbsd (?nesbsd系统相关,具体作用不明) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- stdlib (stdlib实现) | |-- string (string函数实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- unistd (unistd实现) | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能)|-- libm (libm数学库的实现,) | |-- alpha (apaha架构) | |-- amd64 (amd64架构) | |-- arm (arm架构) | |-- bsdsrc (?bsd的源码)

基于Android的音乐播放器设计

基于Android的音乐播放器设计 当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对Android系统上音乐播放器应用程序的设计与实现进行讨论。本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android 系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置。 第1章绪论 1.1 选题的目的及意义 Android是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。 要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV等,拥有播放菜单,能选择播放清单,具备一般播放

基于Android系统的音乐播放器的设计与实现毕业论文(2)

基于Android系统的音乐播放器的设计与实现 摘要:进入21世纪的数字时代,网络发展十分的迅猛,在现今工作压力大的社会下,娱乐随之兴起,各种各样的网络游戏、娱乐软件像雨后春笋一样以不断更新的方式进入我们的生活,丰富了我们的业余时间。这些游戏能在不同的操作平台上进行安装,且其安装、操作简单适合每一位玩家,让所有的玩家都能畅玩一番。 然而在所有的操作系统中,Android系统无疑不是其首选的。在Android平台上发布的酷狗、酷我、百度影音等等播放器,以其简单快捷的操作,好看的画面,舒适的结构,强大的功能所折服我们。本文通过Android技术的研究,实现了自主设计的一款音乐播放器,完成了本地音乐的加载、最近音乐播放的加载、正在播放页面的实现、上一曲、下一曲、暂停、播放、继续播放、进度条、时间显示等等这些功能。本款音乐播放器采用TabHost进行总框架的布局,其他部分则采用相应的布局方式,使这款播放器看上去丰富,形象点。同时这款播放器操作简单、实用、结合了Android课中所学到的很多知识,即对知识的一个总结。本音乐播放器的设计遵循企业软件的工程思想,开始模拟了客户来公司洽谈某项业务,完成需求分析、界面设计、编写代码、进一步社交、产品的维护、用户需求。这一系列的流程来一步步的制作这款播放器。 关键字:Android、播放器、客户、操作、流程 Abstract:Digital era in twenty-first Century, network development is very rapid, in today's stressful society, along with the rise of various kinds of entertainment, network game,entertainment software like bamboo shoots after a spring rain as to continuously update the way into our lives,enrich

android源码分析精典

Android 2.1 源码结构分析 lee Android 2.1 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development (应用程序开发相关) |-- external (android使用的一些开源的模组) |-- frameworks (核心框架——java及C++语言) |-- hardware (主要保护硬解适配层HAL代码) |-- out (编译完成后的代码输出与此目录) |-- packages (应用程序包) |-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码) bionic 目录 |-- libc (C库) | |-- arch-arm (ARM架构,包含系统调用汇编实现) | |-- arch-x86 (x86架构,包含系统调用汇编实现) | |-- bionic (由C实现的功能,架构无关) | |-- docs (文档) | |-- include (头文件) | |-- inet (?inet相关,具体作用不明) | |-- kernel (Linux内核中的一些头文件) | |-- netbsd (?nesbsd系统相关,具体作用不明) | |-- private (?一些私有的头文件) | |-- stdio (stdio实现) | |-- stdlib (stdlib实现) | |-- string (string函数实现) | |-- tools (几个工具) | |-- tzcode (时区相关代码) | |-- unistd (unistd实现) | `-- zoneinfo (时区信息) |-- libdl (libdl实现,dl是动态链接,提供访问动态链接库的功能) |-- libm (libm数学库的实现,) | |-- alpha (apaha架构) | |-- amd64 (amd64架构) | |-- arm (arm架构)

相关主题
文本预览
相关文档 最新文档