android项目报告总结
android项目报告总结(精选11篇)
android项目报告总结 第1篇
2014-第一学期
计算机科学与技术(软件外包方向)实践周项目总结
学 院: 专 业: 班 级: 学生姓名: 指导教师:
下发日期: 20 12月15日
目录
第一章 项目基本情况 ................................................................................................................ - 3 -
1.1 项目概况 ............................................................................................................................ 1 1.2项目进度计划 ..................................................................................................................... 1 第二章 项目任务与完成情况 ......................................................................................................... 3
2.1 本人承担的主要任务 ........................................................................................................ 3 2.2 项目中的问题及解决方法 ................................................................................................ 3 2.3 项目任务的完成情况 ........................................................................................................ 3 第三章 项目总结 ............................................................................................................................. 4
3.1项目的心得体会 ................................................................................................................. 4 3.2问题与探讨 ......................................................................................................................... 4
第一章 项目基本情况
1.1 项目概况
本次的项目是掌上作业系统,是基于Android的手机学习考试软件。主要要求实现的功能如下:
(1)用户登陆:能够在联网的前提下实现用户的登录,并且登陆成功后登陆图片显示亮色,反之是灰色。
(2)用户未登录,点击各功能模块是提示“请先登录”;登陆成功后,才能够正确使用软件功能。
(3)专门页面进行课程简介、考试形式、考试时间进行查询。 (4)实现无纸化测验,利用手机简洁地进行试题考试。 1.2项目进度计划
图1.2计划进度表
12月18日,实现开发环境搭建,需求分析、接口分析,并且开发环境搭建完成,初步任务分解方案。最后确定方案为:由来实现登录界面,并且登录成功
后主界面的功能;由来实现功能主界面、建设中提示界面的功能;由来实现作业列表功能;由来实现作业练习模块的功能。
12月19日至12月21日,根据任务分配为实现各自的功能而准备并且积极讨论、相互寻求帮助,基本上完成了各自的功能。
12月22日至12月25日,根据小组项目进度计划进行项目实践,实现明显Bug不超过3个的可运行系统,在各项工作完成后,有进一步实现了界面的美观并且添加了一些新的功能,使得项目更加的完善。
12月26日,项目答辩,真机运行系统演示,回答老师提出的问题。
第二章 项目任务与完成情况
2.1 本人承担的主要任务
主要实现登录界面,并且登录成功后主界面的布局。
实现登陆界面功能的过程中,对简单的登陆进行完善强化。登陆功能必须满足在手机接入校园网WLAN的前提下,联网登陆。在主界面中,未登陆成功时,用户没有使用各功能模块的权限,系统会提示用户登陆,并且此时圆形头像应该呈现灰色未登录。点击头像进行登陆,输入账号密码(学生的学号密码),若输入错误则提示相应信息,成功则跳转到主界面。
以上是我本次Android实践周的主要任务,在这个基础上,我会进行一些额外功能的添加,例如在点击登陆按钮时,页面进入类似QQ登陆一样的提示界面,并且提供隐身登陆、记住密码、自动登录功能的实现。 2.2 项目中的问题及解决方法
初步做完页面布局后发现,与自己的想象差距很大,首先是页面布局的不协调部不对称,这个时候要求自己安静仔细的重新修改。
在做好每个界面,并且每个界面都对应它的Java类,再添加,运行后出现错误,后来发现没有在AndroidManifest中注册信息,需要注册。
输入账号密码点击登陆按钮后,能够正常登陆,但是添加隐身登陆后无法正常登陆,系统进行报错,未解决错误。
添加自动功能登陆也出现错误,无法正常登陆,未解决问题。 2.3 项目任务的完成情况
经过两个周的项目实训,由于基础比较薄弱,遇到了很多问题,但是在小组内成员和同学的帮助下,基本上完成了小组内任务,实现了用户连接校内网时的登陆,但是添加的隐身登陆和自动登陆功能仍就是错误,无法实现功能。
android项目报告总结 第2篇
总结android项目的基本开发步骤
做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流。一 应用规划:
-确定功能。
-必须的界面及界面跳转的流程。
-需要的数据及数据的来源及格式。
-是否需要服务端支持。
-是否需要本地数据库支持。
-是否需要特殊权限。
-是否需要后台服务。二 架构设计:
-分层。
-网络连接。
-数据处理-xml、domain。
-封装Activity。三 界面设计:
-主界面确定。
-模块界面、列表、查看、编辑界面。
-菜单、按钮、对话框、提示信息。
-界面总体颜色。四 数据操作和存储:
-数据来源。
-数据类型。
-存储方式。五 业务实现:
-客户端业务解析。六 页面跳转:
-每个页面间的跳转。
-菜单、按钮、事件等。
#开发之前还需要做一些准备工作
1.技术储备
a.Java
重要程度:❤❤❤❤❤-框架,编程思想,编码规范,设计模式等 b.Xml
重要程度:❤❤❤❤-布局,选择器,配置文件等
c.数据库
重要程度:❤❤❤-关系型数据库,SQLite
http:/// 2.开发工具
a.Eclipse或者AndroidStudio
b.Android SDK
c.其他:svn / git,JDK,资源,数据库,模拟器,真机等
#开发过程中还有以下的一些流程 1.多种开源框架和优秀源码的引用
-xUtils,Volley,Vitamio,SlidingMenu等 2.数据访问-访问框架-传递方式
3.多种API的接入-短信服务-即时通信
-消息推送-第三方登录等 4.后台开发
-后台的开发,为app提供接口-后台的云服务器
5.内存优化
-垃圾回收-
一、二级缓存-适配器的优化
-图片框架及资源的优化
6.多线程异步
-Handler-Asynctask
7.屏幕适配
#开发基本结束之后还有很多需要流程 1.多型号真机实测 2.云服务器优化 3.APK加密 4.数字签名 5.用户协议 6.应用平台 7.项目上线
8.应用推广和广告插入 9.版本更新和维护
android项目报告总结 第3篇
关键词:持续集成,自动化测试,安卓项目
随着Android手机的市场份额不断的扩大, Android应用程序大规模出现。由于Android应用程序变更性比较大且需求易变化, 这些变化可能会对整个Android程序带来风险, 为了保障产品的质量, 很多大公司已经开发出适合Android产品的持续集成系统, 但这些系统普遍存在开发周期长而且成本比较高。为了缩减开发周期、降低开发成本, 帮助中小企业也能实施持续集成, 利用开源的工具设计并实现一个持续集成系统。
1 持续集成
集成是软件开发过程中一个重要的环节, 如果不能早集成、常集成, 那么等到最后再集成会出现很多问题, 给项目带来不可预期的麻烦, 为了提升开发的效率、降低项目的不可预见性, Martin Fowler提出持续集成的观点 (Continous Intergration ,CI), 该观点指出在实践中项目成员频繁地进行集成 , 每次集成都通过自动化构建来验证, 从而尽快地发现集成错误。
持续集成里的构建不仅仅包含编译、链接、组成可执行程序, 还应包括对这个可执行程序进行的自动化测试。对于一次成功的构建, 开发人员都被要求在这个自动化过程中的每一步都不能出错, 而最重要的一步就是自动化测试, 可以这么认为: 自动化测试是持续集成的核心。
2 总体设计方案
持续集成的场景通常是这样的: 首先开发者向版本控制库提交代码, 同时持续集成服务器不断地检测版本库是否有变更, 若有变更, 则持续集成服务器执行构建脚本, 最后把构建的结果反馈给开发人员。分析整个持续集成的过程, 整个持续集成系统应该包含以下3个实践: 第一是统一的源码库; 第二构建自动化; 第三自动化测试。图1为持续集成的场景图。
基于以上分析, 结合Android Note Pad项目, 持续集成方案如下: 对于统一的源码库, 采用git工具来管理。之所以选择git, 是因为git是一个开源的分布式版本控制系统, 可以有效、高速的处理从很小到非常大的项目版本管理; 对于构建的自动化, 因为Ant基于Java与平台无关的构建工具, 脚本的格式是基于XML的, 比make脚本来说 还要好维 护一些 ,因此采用开源的工具Ant完成; 对于自动化测试, 由于本方案需要应用在Andorid项目中, 对于不同的需求测试, 采用不同的工具或框架。整个系统以开源的可以扩展插件的持续集成工具Jenkins来完成, 它是一个支持自动化构建的工具。Jenkins的工作流程图如图2所示。
3 自动化测试框架及相关技术
自动化测试是持续集成的核心部分, 一个持续集成系统应包含不同类型的自动化测试。在此只对单元测试、功能测试和压力测试进行展开。在Android SDK中已经给出了如何在系统上进行测试的方法, 测试框架图如图3所示。
由图3知Android的测试方法有:
(1) Android中的JUnit:Android上实现了Junit单元测试 ,利用JUnit等单元测试框架进行单元测试对于Java程序员并不陌生, 利用这些非常有效的工具, 使得代码的质量得到有效的监控和维护。
(2) Android中的Instrumentation类 :在图3的测试包中除了JUnit外, 还有Instrumentation类。使用Instrumentation, 可以在主程序启动之前, 创建模拟的系统对象, 如Context; 控制应用程序的多个生命周期; 发送UI事件给应用程序; 在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
此外, Android测试对Junit进行了扩展, 扩展如图4所示:
图4中所示的是比较重要的几个扩展。比如Note Pad的客户端首页的Activity是Notes List, 想测试它上面的一些功能,就可以实现Activity Instruemtation Test Case2
可以使用JUnit进行单元测试, 用Activitity InstruemtationTest Case2类进行功能测试 , 其他的方法进行补充。上述提供的方法中并没有提到压力测试, 压力测试使用自动化测试工具Monkey来完成。图5是自动化测试的流程图。
4 持续集成方案的实现
基于以上对持续集成方案的分析, 下文详细地介绍了持续集成方案的实施步骤、集成构建系统的配置和自动化构建的结果。
4.1 实施步骤
(1) 环境的搭建。根据实施的目的 , 准备2台机器来搭建持续集成环境: 1台用作Jenkins服务器, 1台用作源代码仓库
(2) 编写并调试ant脚本build.xml。该脚本是持续集成各个环节中最关键的部分, 主要包含5部分的配置代码: 清理、编译源代码、安装apk、执行自动化测试以及测试用例覆盖率的检查。
(3) 编写自动化测试脚本。测试脚本包含单元测试脚本 、功能测试脚本以及压力测试脚本。测试用例用Test Link来管理
(4) 验证系统的可行性 , 图6为整个系统的实施图。
4.2 基于 Jenkins 持续集成系统配置
4.2.1 创建 Job
进入Jenkins首页后, 新建两个Job:Note Pad和Note Pad Test,点击Note Pad进入配置 界面 , 在源码管 理处选择git并填写Note Pad项目的源 代码的路 径 ( 源代码包 含Note Pad代码和Note Pad的测试代码 ), 构建项选择Invoke Ant, 在targets处填上clean debug install, Job Note Pad主要完成Note Pad的编译并将生成的apk安装到手机中。
4.2.2 Test Link 的配置
进入Jenkins首页后, 点击Note Pad Test进入配置界面, 构建项选择Invoke Test Link, 按照Test Link新建的测试项目, 填写Test Link Configuration; Test Execution选择Invoke Ant, 在targets处填上clean emma debug install test; Result SeekingStrategy选择JUnit case name, 在Include Pattern处填写测试报告文件的路径, 这样Jenkins就能显示测试结果。
4.2.3 Emma 的配置
进入Jenkins首页后, 首先要安装Emma插件, 在构建后的操作中选择Record Emma coverage report, 在Folders or filescontaining Emma XML reports中填入测试用例覆盖率检查报告文件coverage.xml的路径, 这样Jenkins就能显示测试用例覆盖检查的结果。
4.3自动化构建的结果及分析
Jenkins中的Build History会记录当前构建的状态和历史构建的结果, 绿灯表示构建成功, 红灯表示构建失败。根据上述的配置, 提交变更代码触发Jenkins运行, Jenkins会通过html页面显示测试报告和Emma测试用例覆盖率的检查报告 ,如图7所示。通过CI测试报告, 可以看到3个测试用例全部成功, 但代码的覆盖率只达到80%左右, 故需要继续完善测试用例, 尽可能地提高代码覆盖率。如果编译未通过或者有失败的测试用例, 则开发人员应当第一时间修改代码, 再自动化构建一次, 直到构建成功为止。
通过该持续集成方案, 有利于提前发现项目中存在的问题, 可以按预期发布版本, 保证软件开发的质量。而且采用的都是开源的框架, 该方案具有开发周期短、花费小等优点,对于正在开发Android项目的公司具有很大帮助。
5 结语
提出了Android项目持续集成方案, 该方案主要以自动化测试为核心, 以较少的成本实施了该持续集成方案, 解决了Android项目的集成问题 , 可以帮助中小企业快速地实施持续集成。
android项目报告总结 第4篇
关键词:民办高校 Android 项目 优势
1.引言
Android是一种开源的操作系统平台[1]。目前越来越多的手机制造商、软件开发商、电信运营商以及芯片制造商支持Android平台,Android手机已占据了全球智能手机市场50%左右的份额。Android应用市场的需求越来越大,在这样的背景之下,在民办高校实施Android应用开发项目符合当前的行业背景和市场需求。
2.民办高校环境下项目实施的特点、优势
民办高校环境下实施Android软件开发项目具有以下的特点及优势:
(1)决策效率高、管理成本低:民办高校既具有事业单位高校的管理模式,又具企业的决策机构。在这样一个背景下实施项目可以决定其既具有较高的决策效率,又具有较低的管理成本,在校教师既可以服务于学校,又可以服务于项目,在管理成本方面具有先天的优势。
(2)项目的实施成本低:项目的实施包括了很多环节,其中比较具有优势的环节有:获取创意的低成本,高校本来就是一个各种思想活跃的地方,通过一些学生活动就可以获取一些奇特、新颖的想法,对这些想法进行加工、融合,可以挖掘出一些潜在市场需求;其次是获取技术资源和人力资源的成本低,高校的科研人员多,对智能终端技术感兴趣并且熟悉的师生多,具有丰富的技术储备和人力资源储备,在这方面的成本肯定会低于软件公司的成本。
[JP3](3)可以融合附加产业,产生效益:利用研究所,可以实施智能终端Android培训项目。在研究所发展壮大之后,在业务旺节可以集中人力和物力在产品的研发上面;在业务淡季,可以调配一些人力和物力实施一些与智能终端相关的培训项目,这种业务的目标受众,既可以是校内外感兴趣的学生团体,也可以是校外相关企业、机关的从业人员,配合与之相适应的招生模式和就业模式,相信会是一个比较有潜力的市场。
(4)销售渠道优势。民办高校的投资方通常具有多行业的投资背景,并且具有较好的社会关系。这对销售渠道的铺设提供了很多有利资源。
3.项目实施所要面对的困难和挑战
民办高校创建这样的一个项目通常会面临很多的困难和挑战,我从整个项目的实施流程来分析各个阶段所以面临的问题:
(1)在投入早期短时间内不会获得收益,公司或者研究所的建立初期,投入人力、财力过后不会马上出成果,每一个软件产品的研发过程都具有相对较长的周期,有几个月甚至一年以上的。在技术与人力配备充足的前提下,还需要一个好的创意(Idea),每一个软件产品的最困难之处就是Idea的获取,虽然高校有丰富的学生资源,有丰富的想法,但很多想法与创意是无法实施的,或者说是不现实的,并不能满足大众的需求,在目标人群的选择上面,我们会面对诸多问题。这样一个困惑期,目前我们无法去估算长短,只能通过脚踏实地的去摸索,多搞一些集思广益的活动,多做一些社会调查研究才能确定一个项目的Idea。
(2)有了一个好的Idea,接下来就是软件开发项目的实施,项目的实施会面很多风险。如资金短缺、项目进度延误、人员变更以及预算和进度等方面的问题。一方面,软件开发过程及软件产品都要面临各种决策的选择。另一方面,风险将涉及思想、观念、行为、地点等因素的改变。要对软件项目中的风险进行分析并采取相应的措施加以管理,尽可能减少风险造成的损失。软件项目开始之前要对风险进行充足的分析,软件项目的实施过程中一旦出现风险要及时采取应对措施,这些都可以避免软件开发项目的失败。
(3)行业竞争与盗版,以及知识产权问题。
由于Android系统是开源的,因此为应用商店市场带来了很多机会。目前,我国较大的Android应用商店有几十家,而Android论坛有上百家。中国互联网盗版现象非常严重,不仅盗版,还有扣费、改代码等,这些对整个项目来说都是具有较大的风险。
一个具有好的创意的应用软件,随着关注和感兴趣的用户越来越多,其被盗版或者仿制的可能性就会越来越大,当市面上有相同功能和性能的产品出现时,竞争压力就会越来越明显。一方面,我们希望软件的下载用户越来越多,被关注得越来越多,另一方面,我们防盗版的工作就会越来越复杂,这方面的投入也会越来越多,相应的知识产权问题就会越来越突现。这个时候我们就会面临取舍问题,是任由其他人进行复制,还是投入更多在防盗版上面,这都是一个很难的选择。中国互联网盗版现象,不是靠一个公司或者个人就可以解决的,所以这对一个应用软件产品来说也是一个棘手的问题。
4.结束语
民办高校环境下实施这样一个项目主要的优势还是在于税收成本、人力资源成本、研发成本以及最重要的渠道成本。这样一种创业模式类似于高校的科技孵化园,用最低的成本,最直接的方式把技术转化成生产力,产生经济效益的同时,提升学校形象,可以说既对学生有利,对教师有利也对投资者有利。即使这个项目不能马上产生明显的经济效益,长远来看也是民办高校发展模式的一种创新,民办高校大力投入科研经费,并且配套建科技孵化园的例子是不多见的,对我们来说,既是机遇,也是挑战。
参考文献:
[1]韩超, 梁泉.Android 系统原理及开发要点详解 [M]. 北京:电子工业出版社,2010(1).
android项目报告总结 第5篇
步骤1:在project.properties文件中,把下面这段话注释去掉:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
二、对于Arcgis For Android项目进行混淆时,由于使用arcgis的第三方类库,对项目混淆时需要对第三方类库进行排除,
步骤1:在project.properties文件中,把下面这段话注释去掉:
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
步骤2:在proguard-project.txt文件中添加下面内容即可:
-libraryjars libs/arcgis-android-api.jar //导入第三方的类库,防止混淆时候读取包内容出错
-dontwarn com.esri.** //去掉警告
-keep class com.esri.** {*;} //不混淆第三方包中的指定内容
-libraryjars libs/jackson-core-lgpl-1.9.5.jar
-dontwarn org.codehaus.jackson.**
-keep class org.codehaus.jackson.** {*;}
-libraryjars libs/jackson-mapper-lgpl-1.9.5.jar
-dontwarn org.codehaus.jackson.**
-keep class org.codehaus.jackson.** {*;}
-libraryjars libs/jcifs-1.3.17.jar
-dontwarn jcifs.**
Android实训实习报告总结 第6篇
巩固和学习了更多的Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。android入门后,只会照着别人的葫芦来画瓢,即没有设计思想,也没有自主原创的代码,不好不好
于是乎,进了公司跟着项目走,用项目来驱动自己去学习和提高
公司是1+1开发模式,即1个美工 + 1个工程师,负责完成一个项目(主要是游戏开发),就完全需要自己设计游戏的布局、逻辑,以及各种动画,来增强用户体验的效果 当时主要是看Android官方的SDK API文档、中文API文档、JDK源码,对有些感念不清楚,就上论坛去找答案,如CSDN、ITEye、IBM、知乎,或者去啃google 官方的文档。
二、新掌握的Java基础学习
2.1、Activity View、Surfaceview的理解
掌握了常用控件、view、surfaceview使用方式,知道怎样去适配不同屏幕后,每天就是重复的工作,堆砌代码,难以进一步去提升自己
于是就自己给自个找点事干,自定义控件,如对话框背景等,或去google code找些开源的代码下来研究,学习人家的设计思想、模块功能的划分、代码组织结构等知识 这个过程中,涉及到的知识比较多,如版本管理工具SVN、Git、Mercurial,如设计模式
的思想,如怎样构建通用的开源应用框架(考虑sdk1.5等版本),如何适用在不同屏幕分辨率的手机上等等
学习中会不断遇到一个又一个新的问题,因此需要不断去查资料、再学习各种工具,逐步积累,潜移默化中自己掌握的知识和工具就多了,眼界也开阔了。
2.2、android-pulltorefresh
一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WevView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且它实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。
成果: ListView能满足一个Android 项目的列表:
(1)下拉刷新ListView(2)下拉刷新及滑动到底部加载更多ListView(3)拖动排序的ListView,同时支持ListView滑动item删除,各个Item高度不
一、单选、复选、CursorAdapter做为适配器、拖动背景变化等。
2.3、Menu MenuDrawer 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕上下左右划出,支持当前View处于上下层,支持Windows边缘、ListView边缘、ViewPager变化划出菜单等。
SlidingMenu 滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。
ArcMenu 支持类似Path的左下角动画旋转菜单及横向划出菜单、圆心弹出菜单
android-satellite-menu 类似Path的左下角动画旋转菜单
radial-menu-widget 圆形菜单,支持二级菜单
2.4、异常处理
登录提交时,用户名、密码不能为空,否则不与提交。数据库返回登录信息,处理登录成功与否的异常。
注册提交时,检查注册用户名,密码不能为空,密码与确认密码要相同,否则不与提交注册。
三、Android Xutils 框架的使用
在开发中还学习了一套强大的快速开发框架,Android Xutils 框架。
3.1、xUtils使用
xUtils 包含了很多实用的android工具。
xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2(api level 8)
3.2、DbUtils数据库
android中的orm框架,一行代码就可以进行增删改查; 支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新; 自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
3.3、ViewUtils视图
android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定; 新的事件绑定方式,使用混淆工具混淆后仍可正常工作; 目前支持常用的11种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
3.4、HttpUtils网络请求 支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件; 返回文本内容的GET请求支持缓存,可设置默认过期时间和针对当前请求的过期时间。
3.5、BitmapUtils图片异步加载
加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象; 支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。
四:发现式学习
工作情况及遇到的问题等:
4.1、Bitmap的生成
Bitmap实现在android.graphics包中。但是Bitmap类的构造函数是私有的,外面并不能实例化,只能是通过JNI实例化。这必然是 某个辅助类提供了创建Bitmap的接口,而这个类的实现通过JNI接口来实例化Bitmap的,这个类就是BitmapFactory。
4.2、必要知识认知
1、在使用方法decodeFile()/decodeResource()时,都可以指定一个BitmapFacotry.Options。
利用Options的下列属性,可以指定decode的选项:
inPreferredConfig 指定decode到内存中,手机中所采用的编码,可选值定义在Bitmap.Config中。缺省值是ARGB_8888。
inJustDecodeBounds 如果设置为true,并不会把图像的数据完全解码,亦即decodeXyz()返回值为null,但是Options的outAbc中解出了图像的基本信息。inSampleSize 设置decode时的缩放比例。
谈通过HttpGet和HttpPost向服务器提交请求,并从服务器返回结果信息。通过如下3步访问Http资源。
(1)创建HttpGet或者HttpPost对象,将要请求的URL通过构造方法传入HttpGet或HttpPost对象。(2)使用DefaultHttpClient.execute方法发送Http Get或Http Post请求,并返回HttpResponse对象。
(3)通过HttpResponse.getEntity方法返回响应信息,并进行相应的处理。
如果使用HttpPost方法提交Http Post请求,还需要使用HttpPost.setEntity方法设置请求参数。
2、实习任务概述:
1.面向对象编程(封装,继承,多态)。
2.this关键字使用,JavaBean定义规范以及作用
3.方法的重载(overLoading),构造方法的作用
4.package(创建包)import(导包)的使用以及作用
5.super关键字使用
6.方法的重写(override)
7.访问修饰符(public,protected,默认,private)的使用
8.static修饰符的作用及用法
9.final修饰符的作用及用法
10.抽象类(abstract)的定义和特点以及使用
11.接口(interface)的定义 12.接口的实现(implements)13.接口和抽象类的区别
14.对象包装器,装箱和拆箱的使用
15.数组的使用。
16.String类,StringBuffer类,StringBuilder类的使用以及三者之间的区别 17.JavaSE API的使用。
18.日期类Date,SimpleDateFormat的使用,数学类Math和Random类的使用
19.异常的处理(try,catch,finally,throw,throws)20.Java中的集合类(List,Map,Set接口的使用以及Properties属性文件的操作)21.编写音乐播放器应用 22.编写电话及短信应用 23.编写SD卡存取应用
3、实习所用软件简介: Eclipse
Eclipse 是一个开放源代码的、基于java的可扩展开发平台。就其本身而言,它只是一个框架 和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
JDK JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成。
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。
Android SDK 指的既是Android专属的软件开发工具包。
PopupWindow是应用开发中经常用到的组建,使用它可以在当前屏幕的上层显示一个弹窗,同时也可以指定弹窗的位置以及背景色等特性,大大提高用户体验,那么这里我就以下几点介绍它的使用: 从指定的位置弹出这个窗口(淡入淡出动画)从屏幕底部弹出这个窗口(带有透明度背景,自定义触摸其他位置自动关闭弹窗)
4.3、遇到的问题及解决方案
在Android编程过程中巩固熟悉了Java的编程。由于Android应用程序的开发离不开Java的支持,所以基础的Java知识是必须的。Android系统是基于Linux的手机操作系统平台,要深入系统的学习Android,不仅仅是有Java和Android应用开发,必须要具备Linux,CC++高级编程才能深入的涉及Android Framework和Android内核开发。成为Android开发的高素质人才。所以,在后续对Android的学习中可能会看一些较底层的书籍。
android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:
1。如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。
(该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)2。如果修改android sdk版本,则需要以下几个步骤:
1)修改SDK:选择工程,build path--> configure build path---> library 删除引用的低版本SDK,然后add External JARs,选择高版本SDK,OK,保存。
2)修改classpath文件: 该文件可能存在该项:
3)修改AndroidManifest.xml在AndroidManifest.xml文件中,application标签后添加
4)修改default.properties(很重要): 该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。再看看工程和新建的android 2.2的工程结构就一样了。
五、实习心得
Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android平台的Web Service、传感器应用开发、GPS应用开发、Google Map服务等都是非常重要的知识点以及学习领域。
1.IDE
这半年来,从Eclipse到Android Studio,经历了两个IDE,在这里做一下简单的评价。
如果真要说,Android Studio是基本上大胜Eclipse的,至少Android Studio不会像Eclipse那样卡,公司配的电脑是渣了点,64位,win7,只有4G内存,跑Eclipse跑久了简直就是噩梦。
Android Studio的智能提示比Eclipse强多了,快捷键也很强大。至于工程的组织结构,Android Studio和Eclipse的差距还是很大的,但习惯了也不觉得有啥,哪种都行。
Android Studio有个不好的地方就是无法在同一个窗口显示多个工程,所以只能多开一个。。
Android Studio采用Gradle构建,一开始的构建简直是丧心病狂。。如果没有VPN,想都不敢想。。构建上,Eclipse是比Android Studio快,但Android Studio导第三方库很方便,写一个Gradle脚本就行,并且配置上更加灵活。可以这样说:Eclipse是帮我们搭好了房子,我们只要熟悉它就行,而Android Studio是让我们用工具去搭建自己喜欢的房子。
更加重要的是,aar包只能由Android Studio构建,而谷歌现在推崇的方式就是aar包,所以以后开源的项目很有可能都是打成aar包,并且基本上,大部分的开源项目已经是采用Gradle构建。。
Android Studio一个不好的地方就是升级太快,在半年的 时间内,我从0.8.1升级到1.0。。可恶的是,每次升级,Gradle也升级,并且还断代。。虽然么官方现在是版本稳定了,因为IDEA已经出了新版本了,但我试过1.0出事了,直接撤回0.9.4。。
总体而言,未来Android开发一定是用Android Studio或者IDEA,Eclipse已经被官方抛弃了。。2.版本控制工具
我使用SVN比较少,刚工作的时候,刚好就是把SVN换成Git,但对于Git的使用方式也经历了一番变化。
一开始使用Git,就像SVN一样,一个master分支,大家都往上面推,一旦出事了,大家都卡住了。。后来使用SourceTree做管理,分支切换,提交和解决冲突好多了。现在的开发模式是这样的:
master分支是正式分支,在没确保稳定之前是不会推东西上去的,dev分支是开发分支,而每个人本地也有一个dev分支,大家可以根据自己的需求在本地开多几个分支,这样就不会出现master分支无法发布的现象,因为master分支永远是正确的。
遗憾的是,由于使用的是工具,对命令行还是不熟悉。。3.数据库
数据库一开始采用的是原生,编写了一大堆Helper,而且光是存表,就已经写了很多代码,一个一个set进去。。后来换成对象数据库LitePal,好多了,但LitePal本身的效率是原生的三分之一,但基本的情况已经足够了。。不过,必须直视的是,LitePal的功能支持还不够完善,一开始不支持索引,后来的版本才支持,并且很多情况下,采用Sql语句都比使用LitePal的接口方法方便多了,LitePal的查找数据竟然是根据那个自增长的id。。只要稍微改一下,LitePal还是很好用的,尤其是对象一建好,表就建好了,特别方便,还有就是数据库的升级也非常方便。
有个不好的地方就是,可以直接操作表对象,这样很可能就会将不想存的数据存进表里,于是就封装了一下,不能直接操作表对象,而是操作实体对象,数据库的操作都是通过实体对象的接口方法,而接口方法调用的就是表对象的方法。4.网络库和异步库
这部分的工作并不是我做的,但还是可以说一下。
一开始是自己封装的网络库,但封装得太复杂了,很难维护,而且它不是一个简单的网络库,是一个网络异步和本地异步一起实现的库,基于大量的回调,使用起来也是不错的。
后来换成Volley,不过就发现Volley的实现不太满足我们的要求,就用OkHttp将Volley的底层改掉,然后上层的接口形式采用链式调用的方式,代码的形式更加简单。
原生的异步AsnyTask简直就是个坑,它就是一个任务队列,多个任务执行并不是并发的,有可能就卡在其中一个出不来了。。试过debug的时候跳进去就跳不出来了。。后来就自己写了一个,也是采用链式调用的接口形式。
5.事件采用EventBus作为事件管理,简直就是爽。简简单单就可以跨线程,跨组件通信,很多以前要很复杂才能实现的功能一下子就可以实现了。
android项目报告总结 第7篇
软件工程师
职责和业绩:
是网络有限公司自主研发的一代类似SNS的产品,跟传统的SNS有很大的不同,这个产品包括SNS,而重点内容是关于“人生旅行”,最大的特点是看好最近兴行的3G业务,手机与互联网会有空前深入的联系,故此认为手机和3G可以记录人生足迹。手机拍摄照片--上传--用电脑扩展上传的内容(可以是blog、更多的照片,RSS)----分享。创造,体验,分享,这个产品是充分体验了这一理念。
软件功能模块:
1.注册用户、登录。2.拍照(GPS定位拍照获取经纬度、海拔、照片上传至服务端)。
3.信息发布(旅程信息)。4.对本地驻留信息操作(足迹浏览及用户信息)。
5.系统设置(同步设置、WIFI、像素大小、质量、本地存储图片容量、地图图层、好友公开程度)。
责任描述:
1.service后台监听WIFI /GPS状态。
2.信息发布(用户拍照完将各类信息填写完整通过Http协议调用上传接口同步到服务端),可断点续传,手动同步。
3、用户登录,注册,发布旅程(POST/GET)JSON返回信息处理。
4.自定义拍照(根据手机厂商自适应相关接口)和自定义相关UI设计,便于通用。
5、系统设置模块(WIFI,动态获取手机支持像素设置,同步管理)。
适用机型: HTC、MOTO702。
产品已成功在google market上架,通过此产品的开发使我对android有了更深的掌握,如:系统服务监听,拍照,对服务器数据读写控制,WIFI/GPS/管理,SQLite优化处理,对android有了更深的见解。
20xx.5-20xx.9 外包项目经验:
工程师
职责和业绩:
一.管家预约客户端。
说明:健康预约体检项目是中国健康管家与各大专业体检中心共同推出的一项综合性健康服务项目,用户可了解医院、医生信息并提前预约专家号。同时具备导医导诊、诊前提醒、停诊通知等多项服务功能:
1、预约挂号;
2、预约体检;
3、名医咨询(排班列表/排班明细);
4、预约体检;
5、名医咨询 ;
6、就诊指导。
二.Android平板(epad)点餐客户端
说明:主要为10寸EPAD(Zenithnk)上做一套点餐系统,点菜主画面分为冷菜、热菜、点心等数个类别,菜名+价格 +口味选择(例如重辣)+菜介+数量选择+顾客要求。通过HTTP/POST方式同服务端交互,点击确认点菜后将点菜信息发送到服务器端,服务器给出确认信息。
三.我要团购客户端
说明:本应用用于、等大优惠大折扣的精品团购信息低至0.5到5折的精选各类商品,有餐馆套餐、精美食品、家具用品、家用电器、休闲娱乐每天推出10款以上各类大折扣大优惠的商品,避免团购网站每天团购商品单一问题。本应用将直接与各类团购网站合作需要一一跟各个团购网站与商家商议合作才可能产生盈利。
20xx.7-20xx.4 信息技术有限公司
java软件工程师
职责和业绩:
在职期间担任JAVA组长,负责J2EE、android等项目开发。
该应用是信息技术有限公司与中国*Mobile Market合作发布的第二款手机游戏。对各具特色的地方菜系,代表了各地色、香、味、形俱佳的传统特色烹饪技艺。
软件功能包括: (1)菜系选择.(2)菜谱选择.(3)查看菜谱.(4)关于.(5)帮助.
责任描述:
在该应用中负责菜谱资料的导入(SQLite),查看菜谱模块的开发和优化处理。
感受:熟悉了android api,常用适配器的使用和掌握了SQLite数据处理和UI自定义布局。
20xx/12 -- 20xx/03 开心小测试
该应用是*科技与中国*MMarket平台合作的第一款应用,丰富个性的测试题,多元化的娱乐体验是本游戏的亮点。
软件功能包括: (1)题目选择.(2)游戏帮助.(3)关于.(4)帮助.
责任描述:
1.android环境搭建与模拟器测试.
2.开心小测试资料整理导入(SQLite).
3.答题结果模块开发。
感受:对Android开发领域有了一定的认知,熟悉了Android 开发模式为后续的开发打下了良好的基础。
20xx/5 -- 20xx/9 短信直联双软认证系统
基于互联技术与互联网技术,采用B/S结构,通过Web软件平台+SMS信息通道+手机支付收费通道,整合成为用户管理平台+内容服务及下发管理平台+数据同步接口+手机支付收费管理平台为一体的集成系统。重点解决了信息通道即时性开通及内容下发、目标群体批量管理问题和通道收费便捷性问题。
责任描述:
担任该项目组长,主要负责概要设计文档攒写和开发进度调整等相关事宜。编码期间负责短信群发管理、短信套餐管理等核心模块开发。该系统成功得到“软件产品认证”和“软件企业认证”。
20xx/10 -- 20xx/2 茂名数据业务营销活动资讯系统
该项目主要为茂名数据业务室而开发,其主要目的为:
1).方便客户查询,提升客户满意度 营销活动的客户热情度不断增加且不断增多,造成客户对营销活动的奖励不明确而引起 客户投诉。
2).方便与客服人员的沟通 为了能让数据业务室的产品经理与服务管理室的客服人员更有效、更方便的沟通。
3).加强内部营销活动管理 室内人员较少,经常一个人要负责几个甚至十多个营销方案,经常出现营销方案过多而造成跟进不到位、漏赠送返还等现象。为了能让数据业务室的产品经理能够更有效、更方便的对营销活动方案进行管理、查询,加强内部营销活动的管理。
责任描述:
android项目报告总结 第8篇
1 Java相关信息
Java[2]是由sun公司创造和开发的一门完全面向对象的开发语言,于1995年5月Java语言正式发布。由于Java语言高效的网络编程、可移植性和支持多线程等优点,使得Java语言迅速得到发展。自1999年Sun公司将Java划分成三个平台:J2ME[3]、J2SE[4]和J2EE[5],分别对应移动设备开发、桌面级程序开发和企业级应用开发。
随着Symbian联盟的解体,J2ME平台的开发也随之走到了尽头,但是Android[6]平台的出现,让Java在移动平台开发上重新焕发出了新的生命力。
与C/C++相比,Java舍去了goto这种不合理的关键字;抛弃了容易造成安全漏洞的指针,提供了内存的自动管理机制,从而提高了Java程序的可靠性。而且Java语言语法简单,使得学生进行Java程序开发十分容易。
2 传统教学模式的缺点
随着计算机和多媒体技术的普及,传统的黑板教学方式演变成了多媒体教学。生动形象的多媒体教学给教学方式带了极大的改变,但是面对Java这种实践性极强的课程,多媒体教学显得有气无力。对Java课程的讲述内容可以进行分析。
从表1可以看出对实践性特别强的课程,仅仅是通过多媒体教学是无法改善“教”与“学”之间存在的差异,也无法让学生真正体会到Java语言的魅力。
3 现有的一些改进教学模式
“想知道梨子的滋味,只有亲口尝一尝”。为了提高课堂教学效果和学生的动手能力,很多学校都开设了实验课和课外兴趣小组[7],但是效果仍旧不明显,学生的动手能力并没有得到显著提高,究其原因有以下几点:
1)实验课时少,学生的动手能力没有充分发挥;
2)试验课程内容分配不合理,实验课枯燥无味;
3)每次实验课老师和学生都是一对多,不能照顾到每个同学,学生的兴趣不高;
4)由于在学习知识过程中遇到挫折,由于学习的惰性,使得学生在困难面前失去动力,不愿意付出努力,最终以背课本应付考试了事。
4 Android的优势
Android是Google开发的基于Linux平台的开源手机操作系统,主要使用于移动设备,具有很好的开放性,更重要的是Android支持Java语言,同时Android平台提供给第三方开发商一个十分自由的环境。
1)使开发人员不会受到各种条条框框的限制,提高了开发人员的积极性。
2)很多公司提供了商用化的平台,可以为开发者提供一个交易的平台,使得开发人员能够从中获得经济利益。
Android开发环境安装十分方便,在Windows操作系统中安装好开发环境一般分成两个部分;第一部分是Eclipse和JDK的安装,对Eclipse安装十分简单,通过解压缩即可,选择好workspace则完成了Eclipse的安装;第二部分则是Android SDK的安装和配置。
在现有市场情况下中国移动的移动应用商城、安卓商城等应用商城为开发人员提供了交易的平台,个人也可以和商城签订协议,上传自己开发的软件。
Android项目开发难度简单,周期较短,对于在校学生而言,既可以通过Android项目来提高自身的动手能力,又可以通过完成的项目来增加自己的经济收入,最重要的是能够将理论和实际相结合,真正做到学以致用。
基于上述情况提出一种基于Android项目驱动的教学方法,在完成教学大纲的教学任务下,加强学生的课外训练,通过项目来训练学生的动手能力,以市场来引导学生的兴趣和创业意识[8,9]。
5 总结
以上是对Java程序课程教学方法的一点建议,通过一段时间的引导,克服了学生在学习程序设计课程中畏难情绪和兴趣不高等问题,增加了学生的知识面和对市场的了解,培养了学生的创业意识和成才的愿望。
摘要:Java课程是一门实践性较强的课程,要求大学生在学习时要有较强的动手能力。传统的教学模式无法提高学生的学习积极性,流程化的实验课程也无法提高学生的动手能力。针对传统教学方法和实验课程的一些缺点和弊端,提出了一种基于Android的教学方法,提高了学生的兴趣和动手能力,培养了大学生的创业意识,有效的改善了Java教学的弊端。
关键词:Java,动手能力,学习兴趣,传统教学,创业意识,Android
参考文献
[1]教育部.国家中长期教育改革和发展规划纲要(2010-2020年)[EB/OL].http://www.gov.cn/jrzg/2010-06/06/content_1621777.htm.
[2]刘宝林.Java程序设计与案例[M].北京:高等教育出版社,2004.
[3]张晓蕾.J2ME手机游戏设计案例教程[M].北京:电子工业出版社,2009.
[4]何广军,杨昱昺.J2SE项目开发教程[M].北京:北京大学出版社,2012.
[5]余浩东.J2EE应用框架设计与项目开发[M].北京:清华大学出版社,2008.
[6]刘浦迎.Android移动编程实用教程[M].北京:电子工业出版社,2012.
[7]王彦本,杨武军.程序设计系列课程教学改革实践[J].西安邮电学院学报,2009,14(5):161-163.
[8]李元元.开放环境下的研究型大学拔尖创新人才培养模式构建[J].现代教育管理,2011(5):98-101.
android项目报告总结 第9篇
项目名称:APP文字创作与阅读平台.
开发人数:2人
负责内容: 首页模块,发现模块搭建
工具:android studio eclipse
主要技术点:1、使用ViewPager+Fragment来搭建整个应用的结构框架,去除了ViewPager的滑动切换功能,点击底部Tab标签时才进行模块切换。
2、首页使用顶部带轮播图的ListView展现推荐内容列表,并添加下拉刷新上拉加载功能。
可以拍照或选择本地相册中的图片作为帖子内容上传到服务器。
android项目报告总结 第10篇
解决办法如下:
点击File-----------new------------Android project,选择Create project from existing source
location就是选中该项目目录,注意改Project Name名和导入的项目一致,
android项目导入后xml无提示
,
android实验报告 第11篇
实验名称
音乐播放器
班
级
学
号
姓
名
指导教师
实验成绩
2016 年04月
一、实验目的
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。
二、实验内容及要求
在其中写清楚这个实验具体要你做什么,怎么做,要达到什么样的效果等。本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,下一首,上一首播放列等基本播放控制功能,界面简明,操作简单。
三、实验方案设计
在其中写清楚你的程序的详细设计,用流程图配文字的形式描述。如果其中涉及到算法,一定要把算法阐述清楚。
3.1.1假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下
图2.1 播放器基本用例图
3.1.2用例分析 用例名称:启动软件 参与者:用户
目标:使得用户启动软件并加载手机和sd卡上的音频文件到播放列表 前置条件:无
基本事件流:1.用户启动软件
2.播放器将播放列表中的当前的歌曲
用例名称:播放 参与者:用户
目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行
基本事件流:1.用户单击“播放”按钮
2.播放器将播放列表中的当前的歌曲
用例名称:暂停 参与者:用户
目标:使得用户可以暂停正在播放的歌曲 前置条件:歌曲正在播放且未停止和暂停 基本事件流:1.用户单击“暂停”按钮
2.播放器将暂停当前的歌曲
④用例名称:停止 参与者:用户
目标:使得用户可以停止正在播放的歌曲 前置条件:歌曲正在播放或暂停 基本事件流:1.用户单击“停止”按钮
2.播放器将停止当前播放的歌曲
⑤用例名称:推出 参与者:用户
目标:使得用户退出或者后台播放音乐 前置条件:程序在运行
基本事件流:1.用户按返回键
2.播放器退出或者进入后台播放
四、实验测试
Step1.启动软件后,软件自动检索手机和sd卡的音频文件,并组织显示成列表.Step2.点击列表的歌曲名字。
Step3.播放音乐。
Step4.点击暂停,音乐暂停
Step5.点击播放 转到step3 Step6.点击停止 停止播放音乐
Step7.点击退出,若音乐处于播放状态,则音乐转向后台播放,界面退出。
Step8.点击退户,若音乐处于暂停或者停止状态,直接退出。
音乐播放器流程图
4.1MusicInfoController类
这个类继承于service,是播放音乐的服务类。播放音乐,暂停音乐,停止播放等操作都封装在这个类中。
主要的执行动作有:
4.1.1.类启动 onCreate(){
mMediaPlayer = new MediaPlayer();//分配一个播放对象
mMediaPlayer.setOnPreparedListener(mPrepareListener);//绑定之前
mMediaPlayer.setOnCompletionListener(mCompleteListener);//绑定之 后
}
4.1.2.服务绑定activity
MediaPlayer.OnCompletionListener mCompleteListener = new
MediaPlayer.OnCompletionListener()//实例化一个绑定监听器的匿名类
{
public void onCompletion(MediaPlayer mp)//完成绑定后
{
broadcastEvent(PLAY_COMPLETED);//广播消息
}
};
4.2MusicInfoController类
这个类主要用于获取android系统中的音频文件,并提供访问接口,它是一个单例类。
4.2.1获得播放文件列表
private Cursor query(Uri uri, String[] prjs, String selections, String[] selectArgs, String order){ ContentResolver resolver = pApp.getContentResolver();//取得一个连接对象if(resolver == null){
return null;
}
return resolver.query(uri, prjs, selections, selectArgs, order);} public Cursor getAllSongs(){
return query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);//查询ContentResolver 的所有音频文件
} 4.3MusicList类
改类继承于ListActivity,主要用于显示歌曲列表,并且封装部分操作,以及与父级目标通信。
4.3.1播放
protected void onListItemClick(ListView l, View v, int position, long id){ //歌曲列表的某项被点击
super.onListItemClick(l, v, position, id);
if(mCursor == null ||mCursor.getCount()== 0){
return;
}
mCursor.moveToPosition(position);//游标移动到当前路径
String url = mCursor.getString(mCursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));//取得绝对路径
mMusicPlayerService.setDataSource(url);//传递绝对路径
mMusicPlayerService.start();//播放音乐
}
4.3.2暂停/播放
mPlayPauseButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if(mMusicPlayerService!= null
mMusicPlayerService.isPlaying()){
mMusicPlayerService.pause();//音乐播放的服务暂停
mPlayPauseButton.setText(R.string.play);//改变按钮文字
} else if(mMusicPlayerService!= null){
mMusicPlayerService.start();//如果已经是暂停,则播放音乐
mPlayPauseButton.setText(R.string.pause);//改变文字
}
}
});
4.3.3停止
mStopButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
// Perform action on click
if(mMusicPlayerService!= null){
mTextView.setVisibility(View.VISIBLE);//改变文字状态
mPlayPauseButton.setVisibility(View.INVISIBLE);//隐藏按钮
mStopButton.setVisibility(View.INVISIBLE);//隐藏停止按钮
mMusicPlayerService.stop();//后台音乐停止播放
}
}
});4.4MusicPlayerApp类
该类继承与Application,是程序的生存类。可以标识音乐播放器的生命周期,包括音乐在后台播放等。
4.4.1单例模式
public void onCreate(){
super.onCreate();
mMusicInfoController = MusicInfoController.getInstance(this);//返回该类的一个唯一实例
}
public MusicInfoController getMusicInfoController(){
return mMusicInfoController;}
五、程序的使用手册
系统编译生成apk文件,将apk文件拷到手机或者sd卡中,直接打开即可安装,或者安装360手机助手通过usb调试的方式进行安装。
启动软件后,加载歌曲列表现在这个界面上,如01表示歌曲名,unknown表示歌曲的演唱者
软件启动界面
从加载的歌曲列表中点击要播放的歌曲,开始播放
音乐播放界面
六、心得体会
android项目报告总结
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


