开放实验项目报告
题 目:安卓手电筒APP设计
学 院 电子科学与工程
学 生 姓 名 高国庆
班 级 学 号 B14020929
指 导 教 师 徐伟
开 课 学 院 电子科学与工程
日 期 2015.11.07
安卓手电筒APP设计
一、项目介绍
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。本次实验是设计一个简单的安卓手电筒,大致了解安卓手电筒的制作流程以及其工作原理。
二、主要功能
1、 运行软件,显示初始界面;
2、 点击按钮,实现闪光灯的开和关功能。
三、Android开发环境搭建
1.JDK安装和配置
jdk是 java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序,其包含了运行java程序的各种必要组件。
配置JDK环境变量
操作步骤:计算机 属性 高级系统设置 环境变量 系统变量
1) 新建JAVA_HOME
值为: C:\Program Files\Java\jdk1.6.0_18(自己所安装JDK的目录)
2) 新建CLASSPATH (如果已有,则直接编辑)
值为:.;%JAVA_HOME%\lib;
3) 新建Path(如果已有,则直接编辑),
值为: %Java_Home%\bin; (若值中原来有内容,用分号与之隔开)
2. ADT-Bundle安装
ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包Eclipse无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通过eclipse来配置Android开发环境的复杂问题。有了ADT-Bundle,新涉足安卓开发的无需再像以前那样在网上参考繁琐的配置教程,可以轻松一步到位进行Android应用开发。
四、手电筒App设计与实现
1、 创建Android工程
A.启动Eclipse,点击工具栏上的图标(或者菜“New”->“Android Application Project”),弹出创建Android工程的 对话框,应用名称使用自己的学号:
B. 在向导的第二页,基本保持默认参数。点击“Next”
C. 在向导的第三页,设置程序的图标。点击“Next”
D. 在向导的第四页,选择创建Activity。此处我们选择Empty Activity(默认选择Blank Activity也可以)。点击“Next”
E. 在向导的第五页,设置Activity和Layoutd的名称。使用默认即可。点击“Finish”,完成工程的创建。
2、添加权限
手电筒App核心原理,其实就是使用Android中的摄像头类Camera控制控制闪光灯的亮灭。
因此我们在程序中,需要使用相机权限和闪光灯权限。
在Eclipse中双击工程中的AndroidManifest.xml
权限的添加可以直接在XML中直接用代码添加,也可以在图形界面中增加。在AndroidManifest.xml文件面板中添加如下代码即可:
<uses-permission android:name="android.permission.FLASHLIGHT">
<uses-permission android:name="android.permission.CAMERA">
3、设计手电筒的UI
手电筒的界面比较简单,使用黑色背景和一个按钮,用来打开或关闭闪光灯。
在此实验中,使用ToggleButton作为开关。并在不同的状态为Button设置对应的背景图片。
Android的界面是由XML文件控制的。该XML文件一般位于工程的res\layout目录下。
Android的UI可以通过在Eclipse的图形化界面下,通过拖拽控件的方式生成,也可以通过直接修改xml文件生成。
Android的UI有多种布局类型:线性布局(LinearLayout)、相对布局(RelativeLayout)、网格布局(GridLayout 4.0新增)、绝对布局(AbsoluteLayout)等等。
选择工程的rec\layout目录文件,添加如下代码,并将所需的背景图片等素材放置在drawable-hdpi文件目录中:
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textOff=""
android:textOn=""
android:background="@drawable/shou_off" />
4、调用Camera的控制
摄像头开关控制
在使用闪光灯之前,注意先使用Camera.open()方法打开摄像头,获取到camera对象。然后通过camera对象getParameters()方法获取到Parameters参数。关闭闪光灯的时候,也是通过Parameters参数进行设置的。
在工程的主程序也就是src目录下的MainActivity文件中,定义打开和关闭手电筒的相关参数public Camera camera和public Parameters parameters,并在主程序内添加如下代码:
publicvoid onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);// 开启
camera.setParameters(parameters);
button.setBackgroundResource(R.drawable.shou_on);
// Toast.makeText(MainActivity.this, "手电已开启", 0).show();
} else {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);// 关闭
button.setBackgroundResource(R.drawable.shou_off);
// Toast.makeText(MainActivity.this, "手电已关闭", 0).show();
camera.setParameters(parameters);
camera.release();
}
}
五、 实验效果及故障分析
程序代码写好后,如果程序未报错,用USB数据线将电脑和一部安卓手机进行连接,点击eclipse软件菜单栏中的运行按钮,如下图红色圈中所示:
选择以安卓设备打开,至此,我们的安卓设备会自动运行该程序并自动在该设备上生成一个安装好的手电筒APP,名称为之前创建工程时的学号如下图所示:
故障分析:因为刚开始接触JAVA,对其中的一些函数、变量等不熟悉,同时也是第一次使用加入ADT相应组件的eclipse软件,所以过程中难免会出现或多或少的问题。开始的时候程序经常报错,比如定义ToggleButton时,因为没有把所需图片素材放入相应文件,导致错误无法消除,同时也提醒自己不管做什么事都要细心,不能马马虎虎。
六、 实验总结与收获
因为没有太多的JAVA基础,所以此次实验的手电筒软件不是很完善,例如,在安卓设备上运行软件后,点显示屏任何一个位置都能讲手电筒打开,这是后期需要改进的地方。通过这次实验使我粗略地了解到了关于安卓APP的相关知识,拓展了自己的课外知识,同时也发现了自己的一些不足,在以后的学习中,我一定会改进自己的不足,不断进步。
第二篇:5安卓实验报告
HUNAN UNIVERSITY
嵌入式软件开发课程项目
题 目: 仿ES文件管理器
学生姓名
学号
专业班级
指导老师
完 成 日 期 2015.1.5
基于Android平台的记事本的设计与实现
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,计算机记事本功能已经越来越流行。它是基于Android平台的文件管理功能,它能够能实现我们自己想要的一些功能,在我们这个实验中,我们主要是实现文件检索,多项目选择文件,文件复制,返回上一级目录,扩大显示文件等功能
关键词: Android OS;文件管理
目录
1项目概述.................................................. 2
1.1项目背景........................................................................................................... 2
1.2项目概述........................................................................................................... 2
1.2.1工作内容.................................................................................................... 2
1.2.2条件与限制................................................................................................ 2
1.2.3产品......................................................................................................... 2
1.2.4运行环境.................................................................................................. 2
1.2.5验收标准.................................................................................................. 2
2.需求分析.................................................. 2
2.1 用户界面分析.................................................................................................. 2
2.2 内部功能分析.................................................................................................. 3
2.2.1文件管理器模块界面.................................................................................. 3
3.可行性分析................................................ 3
3.1技术可行性分析.............................................................................................. 3
3.2经济可行性分析.............................................................................................. 3
3.3社会因素可行性分析...................................................................................... 3
3.3.1法律因素.................................................................................................... 3
3.3.2用户使用可行性......................................................................................... 3
4.项目开发计划.............................................. 4
4.1实施计划........................................................................................................... 4
4.1.1进度......................................................................................................... 4
4.1.2关键问题.................................................................................................. 4
4.2交付期限........................................................................................................... 4
5.概要设计.................................................. 5
5.1总体设计........................................................................................................... 5
5.2用户界面设计................................................................................................... 5
6.详细设计.................................................. 6
6.1总体设计........................................................................................................... 6
6.1.1工程结构.................................................................................................. 6
6.2程序描述............................................................................................................. 8
6.2.1文件检索模块............................................................................................. 8
6.2.2其他模块.................................................................................................... 8
7.测试计划.................................................. 9
7.1计划、............................................................................................................... 9
7.1.1测试项目.................................................................................................... 9
7.1.2测试人员.................................................................................................... 9
8.总结...................................................... 9
参考文献.................................................... 9
1项目概述
1.1项目背景
根据手机功能调查显示,大部分消费者都会使用手机文件检索功能。随着手机文件检索功能的不断加强与完善,手机文件检索对于人们的意义,已不仅仅像一般文件检索一样简单记录,而是向着更个性化人性化的方向发展。
1.2项目概述
1.2.1工作内容
(1) 主界面的设计以及各功能界面的设计
(2) 程序代码的编写以及实现项目功能
(3) 界面的美化
1.2.2条件与限制
开发人员只有本人一人,图片的美化、UI设计不可能很美观,有些工作可能不够细致
1.2.3产品
(1)程序
程序名称:仿ES文件管理器; 使用语言:java; 存储形式:SQLite 平台:安卓手机操作系统
(2)文档
记事本实训报告; 程序源代码
1.2.4运行环境
硬件环境:一台装载了windows 7系统的计算机
软件环境:采用了Eclipse+Android SDK 集成环境,编程语言采用了JAVA.
1.2.5验收标准
我们的记事本项目在虚拟机以及装有Android系统的手机上都能正常运行,我们都有测试。
2.需求分析
2.1 用户界面分析
(1)文件检索模块界面
(2)音乐,视频,图像模块界面
2.2 内部功能分析
2.2.1文件检索模块界面
(1)添加便签用户界面
(2)文件检索,多项目选择文件,文件复制,返回上一级目录,扩大显示文件界面
3.可行性分析
3.1技术可行性分析
本项目仅需要一台装有eclipse及配置好android开发环境的计算机即可,对计算机本身有一定的要求,它可以使用windows xp及其以上版本,mac os,linux等操作系统。
3.2经济可行性分析
由于本软件开发者都是在校学生,一台电脑就行,基本不需要太大的成本.在经济上完全可行。
3.3社会因素可行性分析
3.3.1法律因素
本程序都是同学们自行编写设计,不存在抄袭等现象,内容积极健康。
3.3.2用户使用可行性
界面设计时充分考虑用户的习惯以及手机方面的局限性,程序必须要很简单;本程序只涉及到开发环境配置,安卓组件的熟悉,以及安卓平台上的数据存储。并没有太大的难度,所以,该项目完全有可操作性.
4.项目开发计划
4.1实施计划
4.1.1进度
第一阶段(第 9 周)看资料文件,确认设计项目
第二阶段(第 10—14周)从概要分析到程序设计
第三阶段(第 15 周)功能的测试修改以及撰写实验报告
第四阶段(第 16 周) 项目PPT展示以及答辩
4.1.3关键问题
在这次的项目设计中,有好多问题,有界面之间跳转、界面之间的整合、以及第一次使用ImageView这个组件的不熟练。
4.2验收期限
20##年01月06日
5.概要设计
5.1总体设计
图5.1 系统主要结构功能图
5.2用户界面设计
图5.2.1 文件检索 图5.2.2 多项选择
图5.2.3 返回上一级 图5.2.4图片压缩
5.2.5 图标放大 5.2.6 音频文件
5.2.7视频文件 5.2.8图片文件
6.详细设计
6.1总体设计
6.1.1工程结构
6.1.1整体架构 6.1.2 源文件结构1
6.1.3 源文件2 6.1.4 布局文件
6.1.2主要功能代码
文件检索:
protected Browser(Context context) {
mContext = context;
mInflater = LayoutInflater.from(context);
preResource = new PreparedResource(context);
mData = new FileItemSet();
mFileManager = new FileManager(context, mData);
mFileManager.setOnWhichoperation(this);
mItemsAdapter = new FilesAdapter(mContext, mData);
}
文件管理:
publicclass FileManager {
publicstaticfinal String HOME = "/mnt/";
publicstaticfinal String USB = HOME + "usbDisk";
publicstaticfinal String SD = HOME + "sdcard/";
publicstaticfinal String EXTSD = HOME + "ext_sd/";
publicstaticfinal String MEMORY = HOME + "innerDisk/";
publicenum FileFilter {MUSIC,VIDEO,PICTURE,ALL};
private FileItemSet mData;
private FileItemSet mDataForOperation;
publicenum FilesFor {COPY,CUT,DELETE,UNKOWN};
private FilesFor mFilesFor = FilesFor.UNKOWN;
private RefreshData queryThread;
publicstatic Comparator<File> mComparator;
public FileComparatorByName comp_name;
public FileComparatorBySize comp_size;
public FileComparatorByUpdateTime comp_update;
publicenum ViewMode {
LISTVIEW, GRIDVIEW
};
图标大小扩展
publicclass FileComparatorBySize implements Comparator<File>{
@Override
publicint compare(File file1, File file2) {
if(file1.isDirectory() && !file2.isDirectory()){
return -1;
}elseif(file1.isDirectory() && file2.isDirectory()){
return file1.getName().toLowerCase().compareTo(file2.getName().toLowerCase());
}elseif(!file1.isDirectory() && file2.isDirectory()){
return 1;
}else{
long result = (file1.length()-file2.length());
if(result>=0){
return 1;
}else{
return -1;
}
}
}
6.2程序描述
6.2.1文件操作
功能:
文件检索:通过点击文件检索目录一级一级往下查询得到要寻找的文件。
多项操作:点击多项操作按钮,可以选择多个文件进行操作。
返回上一级:点击该按钮,可以返回文件上一级。
图标扩大:点击该按钮,可以将当级图标放大。
复制:点击更改按钮,可以复制选中的文件。
6.2.2音频文件检索模块
点击该按钮,将系统中的音频文档全部显示出来。
6.2.3视频文件检索模块
点击该按钮,将系统中的视频文档全部显示出来。
6.2.4图片文件检索模块
点击该按钮,将系统中的图片文档全部显示出来。
7.测试计划
7.1计划
7.1.1测试项目
输入
(1)点击文件检索按钮
(2)点击多项操作按钮
(3)点击返回上一级按钮
(4)点击复制按钮
(5)点击图标扩大按钮
(6)点击音频按钮
(7)点击视频按钮
(8)点击图片按钮
输出
(1)显示该级全部文件
(2)可以选择多个文件
(3)返回上级,显示上级全部文件
(4)输出可复制的文件
(5)该级文件图标扩大
(6)显示音频文件
(7)显示视频文件
(8)显示图片文件
8.总结
经过这几个星期的学习,研究和开发,我终于按时完成了这个项目。通过这个项目的研发,我终于认识到理论跟实际还是有很大的不同的。对安卓的基本知识进行了锻炼,对自己的成果也有了很大的成就感,激发了我对安卓研究的巨大兴趣。
通过此次设计过程我们会到了许多知识,每一次完成一个比较完整的小项目,都会非常有成就感,虽然过程中遇到了许多困难,在老师的帮助下一一克服了。通过不断的发现问题,总结问题和解决问题的过程,使我们在此次实训项目中得到了很大的提高,得到了宝贵的经验。
参考文献
[1] 黄梯云.主编《管理信息系统》.机械工业由版社.1997.3.
[2] 王向辉. 主编《Android应用程序开发》清华大学出版社 2012.5
[3] 杨丰盛. 主编《Android 应用开发揭秘》机械工业出版社, 20089