最新范文 方案 计划 总结 报告 体会 事迹 讲话 倡议书 反思 制度 入党

创新实践安卓软件开发报告

日期:2020-12-10  类别:最新范文  编辑:一流范文网  【下载本文Word版

创新实践安卓软件开发报告 本文关键词:实践,创新,报告,开发,软件

创新实践安卓软件开发报告 本文简介:沈阳理工大学课程设计专用纸No18摘要从没有比现在更好的时机,能通过为Android编写程序,将我们的创意带人生活中。安卓AppStore给了我们巨大的机会,程序的开发也从未像如今这样简单和广泛。你不仅能够拥有数百万的潜在客户还能拥有尖端的开发工具和硬件。2008年Google推出了一款名为Andr

创新实践安卓软件开发报告 本文内容:

沈阳理工大学课程设计专用纸No18

摘要

从没有比现在更好的时机,能通过为Android编写程序,将我们的创意带人生活中。安卓App

Store给了我们巨大的机会,程序的开发也从未像如今这样简单和广泛。你不仅能够拥有数百万的潜在客户还能拥有尖端的开发工具和硬件。2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。而很少受到早期手持设备的硬件和软件限制。

本设计在对Android开发有初步了解的情况下,设计一个有代表性的Android商业App,通过对商业实例的学习,了解真实项目的系统构架、引擎设计,了解声音、视频、图片处理等相关的编程技术要点、以便在实际的游戏项目开发中借鉴和综合应用这些知识。

关键字:Android;APP;

目录

1

开发工具与环境1

1.1

下载并安装eclipse1

1.2

下载并安装jdk1

1.3开发环境简介1

1.4开发环境搭建2

1.4.2安装Eclipse4

1.4.3

安装Android

SDK4

1.4.4

ADT安装创建AVD4

2

系统的设计与分析5

2.1

Android系统的概述5

2.1.1应用层5

2.1.2应用程序框架5

2.1.3系统运行库6

2.1.4

Linux内核7

2.3

日历流程图7

3

系统详细设计8

3.1

日历其实是由3个预制的数据集组成8

3.2

视图的生成8

3.3当所示日期发生选择变更是的视图更新10

3.4

启动和运行13

4

运行结果14

4.1

系统启动14

4.2

进入日历14

4.4

退出应用15

5

结论16

参考文献17

1

开发工具与环境

1.1

下载并安装eclipse

Eclipse

版本有要求:The

“Eclipse

Classic“version

is

recommended.

Otherwise,a

Java

or

RCP

version

of

Eclipse

is

recommended.

1.下载eclipse只需登录到http://www.jsfw8.com/javase/downloads下载最新的JDK安装程序。

然后双击刚下载的JDK安装程序jdk-7u21-windows-i586,根据提示将JDK安装到默认目录。

右键单击我的电脑,依次选择属性/高级/环境变量,在系统变量中新建一个名为JAVA_HOME,值为“C:/Program

Files/Java/jdk1.7.0_21”的环境变量。

再打开Path环境变量,在最后加上“C:/Program

Files/Java/jdk1.7.0_21/bin;”,单击“确定”按钮即可。

1.3开发环境简介

JDK(Java

Development

Kit)是Sun

Microsystems针对Java开发员的产品。自从Java诞生以来,JDK已经成为最广泛的Java

SDK。JDK是整个Java的核心内容,包括了Java运行环境、Java工具和Java基础类库三部分。从Sun的JDK1.5开始,提供了一些非常使用的功能,其版本也不断更新,运行效率得到了非常大的提高。

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组建构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java

Development

Kit,JDK)。

Android

SDK即软件开发工具包(software

development

kit)。被软件开发工程师用于为特定的软件包、软件架构、硬件平台、操作系统等建立应用软件工具的集合。因此Android

SDK是Android专属的开发工具包。其授权协议为Apache,开发语言为Java、需要Android操作系统的支持。

1.4开发环境搭建

下载安装Java开发包(JDK)。选择“windows

offline

installation,multi-language”,根据屏幕提示完成安装。

打开计算机>点右键>属性>高级系统设置>环境变量,在系统变量中添加。

图1.1环境变量

新建JavaHome:C:/Program

Files/Java/jdk1.6.0_10,如图1.2。

图1.2JavaHome

新建CLASSPATH:.;%JavaHome%/lib/dt.jar;%JavaHome%/lib/tools.jar;,如图1.3。

图1.3

CLASSPATH

编辑Path,在变量值前添加:%JavaHome%/bin;,如图1.4。

图1.4

Path

在CMD窗体中输入java

–version,如果屏幕出现如图1.5一样的代码信息,说明JDK安装成功了。

图1.5

CMD窗体

1.4.2安装Eclipse

选择标有“eclipse

IDE

for

java

developers“的文件进行安装。进入解压后的目录,就可以看到一个名为“eclipse.exe”的可执行文件,双击此文件直接运行,eclipse

能自动找到用户先期安装的JDK路径

1.4.3

安装Android

SDK

将下载的android-sdk压缩包解压为文件放于自选位置。在Eclipse中选择Windows>Preferences>Android>Browse找到解压文件>Apply>OK。打开环境变量,编辑Path,在变量值前添加:C:

/java/adt-bundle-windows-x86-20130522/sdk/tools;,如图1.6。

图1.6

Path

1.4.4

ADT安装创建AVD

打开SDK

Manager.exe,选择tools>Manage

AVDs,在Android

Virtual

Device

Manager中点击New,输入AVD的信息,点OK完成AVD的创建。如图1.7。

图1.7

AVD

2

系统的设计与分析

2.1

Android系统的概述

Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定有一个层次的系统构架,下图为Android的构架图:

图2.1

Android

系统构架

2.1.1应用层

Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

2.1.2应用程序框架

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括:丰富而又可扩展的视图(Views),可以用来构建应用程序,

它包括列表(lists),网格(grids),文本框(text

boxes),按钮(buttons),

甚至可嵌入的web浏览器;

内容提供器(Content

Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),

或者共享它们自己的数据:资源管理器(Resource

Manager)提供

非代码资源的访问,如本地字符串,图形,和布局文件(

layout

files

);通知管理器

(Notification

Manager)

使得应用程序可以在状态栏中显示自定义的提示信息;

活动管理器(

Activity

Manager)

用来管理应用程序生命周期并提供常用的导航回退功能。

2.1.3系统运行库

系统运行库包括程序库和Android运行库。首先是程序库,

Android

包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过

Android

应用程序框架为开发者提供服务。以下是一些核心库:系统

C

-

一个从

BSD

继承来的标准

C

系统函数库(

libc

),

它是专门为基于

embedded

linux

的设备定制的;媒体库

-

基于

PacketVideo

OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG

Surface

Manager

-

对显示子系统的管理,并且为多个应用程序提

供了2D和3D图层的无缝融合;

LibWebCore

-

一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图;SGL

-

底层的2D图形引擎;3D

libraries

-

基于OpenGL

ES

1.0

APIs实现;该库可以使用硬件

3D加速(如果可用)或者使用高度优化的3D软加速;FreeType

-位图(bitmap)和矢量(vector)字体显示;SQLite

-

一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。其次是Android

运行库,Android

包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。

Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中

“dx“工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

2.1.4

Linux内核

Android

的核心系统服务依赖于

Linux

2.6

内核,如安全性,内存管理,进程管理,

网络协议栈和驱动模型。

Linux

内核也同时作为硬件和软件栈之间的抽象层。

2.3

日历流程图

iPlanet日历S2erver2.x

Run

db_recover

下载和安装Calender

Server5.1.1

运行db_upgrade

运行les2milgrate

Sun

ONE

下载和安装Calender

Server6.x

运行cs5migrate

Sun

Java

System

Calender

Server

6

Netscape

Calender

Server4.x

下载和安装Calender

Server5.1.1

运行ncs4migrate

图2.2

流程图

3

系统详细设计

3.1

日历其实是由3个预制的数据集组成

日历整个系统是由3个GridView组成,3个GridView分别预制当前月、上个月和下个月当发生滑动事件的时候产生替换,同时在加载时重新生成。

private

Context

mContext

=

BaseCalendar.this;

private

GridView

title_gView;

private

GridView

gView1;//

上一个月

private

GridView

gView2;//

当前月

private

GridView

gView3;//

下一个月

//

private

GridView

gView1;

boolean

bIsSelection

=

false;//

是否是选择事件发生

private

Calendar

calStartDate

=

Calendar.getInstance();//

当前显示的日历

private

Calendar

calSelected

=

Calendar.getInstance();

//

选择的日历

private

Calendar

calToday

=

Calendar.getInstance();

//

今日

private

CalendarGridViewAdapter

gAdapter;

private

CalendarGridViewAdapter

gAdapter1;

private

CalendarGridViewAdapter

gAdapter3;

//

顶部按钮

private

Button

btnToday

=

null;

private

RelativeLayout

mainLayout;

//

private

int

iMonthViewCurrentMonth

=

0;

//

当前视图月

private

int

iMonthViewCurrentYear

=

0;

//

当前视图年

private

int

iFirstDayOfWeek

=

Calendar.MONDAY;

private

static

final

int

mainLayoutID

=

88;

//

设置主布局ID

private

static

final

int

titleLayoutID

=

77;

//

title布局ID

private

static

final

int

caltitleLayoutID

=

66;

//

title布局ID

private

static

final

int

calLayoutID

=

55;

//

日历布局ID

3.2

视图的生成

生成一个主视图

//

生成内容视图

private

View

generateContentView()

{

//

创建一个垂直的线性布局(整体内容)

viewFlipper

=

new

ViewFlipper(this);

viewFlipper.setId(calLayoutID);

mainLayout

=

new

RelativeLayout(this);

//

创建一个垂直的线性布局(整体内容)

RelativeLayout.LayoutParams

params_main

=

new

RelativeLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

mainLayout.setLayoutParams(params_main);

mainLayout.setId(mainLayoutID);

mainLayout.setGravity(Gravity.CENTER_HORIZONTAL);

LinearLayout

layTopControls

=

createLayout(LinearLayout.HORIZONTAL);

//

生成顶部按钮布局

generateTopButtons(layTopControls);

//

生成顶部按钮

(上一月,下一月,当前月)

RelativeLayout.LayoutParams

params_title

=

new

RelativeLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

params_title.topMargin

=

5;

//

params_title.addRule(RelativeLayout.ALIGN_PARENT_TOP,20);

layTopControls.setId(titleLayoutID);

mainLayout.addView(layTopControls,params_title);

calStartDate

=

getCalendarStartDate();

setTitleGirdView();

RelativeLayout.LayoutParams

params_cal_title

=

new

RelativeLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

params_cal_title.addRule(RelativeLayout.BELOW,titleLayoutID);

//

params_cal_title.topMargin

=

5;

mainLayout.addView(title_gView,params_cal_title);

CreateGirdView();

RelativeLayout.LayoutParams

params_cal

=

new

RelativeLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

params_cal.addRule(RelativeLayout.BELOW,caltitleLayoutID);

mainLayout.addView(viewFlipper,params_cal);

LinearLayout

br

=

new

LinearLayout(this);

RelativeLayout.LayoutParams

params_br

=

new

RelativeLayout.LayoutParams(

LayoutParams.FILL_PARENT,1);

params_br.addRule(RelativeLayout.BELOW,calLayoutID);

br.setBackgroundColor(getResources().getColor(R.color.calendar_background));

mainLayout.addView(br,params_br);

return

mainLayout;

}

3.3当所示日期发生选择变更是的视图更新

在主视图所示日期改变时更新,主要代码如下:

//

根据改变的日期更新日历

//

填充日历控件用

private

void

UpdateStartDateForMonth()

{

calStartDate.set(Calendar.DATE,1);

//

设置成当月第一天

iMonthViewCurrentMonth

=

calStartDate.get(Calendar.MONTH);//

得到当前日历显示的月

iMonthViewCurrentYear

=

calStartDate.get(Calendar.YEAR);//

得到当前日历显示的年

String

s

=

calStartDate.get(Calendar.YEAR)

+

“-“+

NumberHelper.LeftPad_Tow_Zero(calStartDate

.get(Calendar.MONTH)

+

1);

btnToday.setText(s);

//

星期一是2

星期天是1

填充剩余天数

int

iDay

=

0;

int

iFirstDayOfWeek

=

Calendar.MONDAY;

int

iStartDay

=

iFirstDayOfWeek;

if

(iStartDay

==

Calendar.MONDAY)

{

iDay

=

calStartDate.get(Calendar.DAY_OF_WEEK)

-

Calendar.MONDAY;

if

(iDay

<

0)

iDay

=

6;

}

if

(iStartDay

==

Calendar.SUNDAY)

{

iDay

=

calStartDate.get(Calendar.DAY_OF_WEEK)

-

Calendar.SUNDAY;

if

(iDay

<

0)

iDay

=

6;

}

calStartDate.add(Calendar.DAY_OF_WEEK,-iDay);

}

private

Calendar

getCalendarStartDate()

{

calToday.setTimeInMillis(System.currentTimeMillis());

calToday.setFirstDayOfWeek(iFirstDayOfWeek);

if

(calSelected.getTimeInMillis()

==

0)

{

calStartDate.setTimeInMillis(System.currentTimeMillis());

calStartDate.setFirstDayOfWeek(iFirstDayOfWeek);

}

else

{

calStartDate.setTimeInMillis(calSelected.getTimeInMillis());

calStartDate.setFirstDayOfWeek(iFirstDayOfWeek);

}

return

calStartDate;

}

public

class

TitleGridAdapter

extends

BaseAdapter

{

int[]

titles

=

new

int[]

{

R.string.Sun,R.string.Mon,R.string.Tue,R.string.Wed,R.string.Thu,R.string.Fri,R.string.Sat

};

private

Activity

activity;

//

construct

public

TitleGridAdapter(Activity

a)

{

activity

=

a;

}

@Override

public

int

getCount()

{

return

titles.length;

}

@Override

public

Object

getItem(int

position)

{

return

titles[position];

}

@Override

public

long

getItemId(int

position)

{

return

position;

}

@Override

public

View

getView(int

position,View

convertView,ViewGroup

parent)

{

LinearLayout

iv

=

new

LinearLayout(activity);

TextView

txtDay

=

new

TextView(activity);

txtDay.setFocusable(false);

txtDay.setBackgroundColor(Color.TRANSPARENT);

iv.setOrientation(1);

txtDay.setGravity(Gravity.CENTER);

LinearLayout.LayoutParams

lp

=

new

LinearLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);

int

i

=

(Integer)

getItem(position);

txtDay.setTextColor(Color.WHITE);

Resources

res

=

getResources();

if

(i

==

R.string.Sat)

{

//

周六

txtDay.setBackgroundColor(res.getColor(R.color.title_text_6));

}

else

if

(i

==

R.string.Sun)

{

//

周日

txtDay.setBackgroundColor(res.getColor(R.color.title_text_7));

}

else

{

}

txtDay.setText((Integer)

getItem(position));

iv.addView(txtDay,lp);

return

iv;

}

}

}

3.4

启动和运行

当你点击运行程序是的加载代码

TextView

txtDay

=

new

TextView(activity);//

日期

txtDay.setGravity(Gravity.CENTER_HORIZONTAL);

//

判断是否是当前月

if

(iMonth

==

iMonthViewCurrentMonth)

{

txtToDay.setTextColor(resources.getColor(R.color.ToDayText));

txtDay.setTextColor(resources.getColor(R.color.Text));

}

else

{

txtDay.setTextColor(resources.getColor(R.color.noMonth));

txtToDay.setTextColor(resources.getColor(R.color.noMonth));

}

int

day

=

myDate.getDate();

//

日期

txtDay.setText(String.valueOf(day));

txtDay.setId(position

+

500);

iv.setTag(myDate);

LinearLayout.LayoutParams

lp

=

new

LinearLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

iv.addView(txtDay,lp);

LinearLayout.LayoutParams

lp1

=

new

LinearLayout.LayoutParams(

LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

iv.addView(txtToDay,lp1);

//

日期结束

4

运行结果

4.1

系统启动

进入系统后,系统加载如图4.1。

图4.1

系统初始化

4.2

进入日历

进入日历主界面(可滑动进行翻页查看其他日期点击添加备注等功能),如图4.2

图4.2

主界面

4.4

退出应用

单击MENU键,退出应用。如图4.3。

图4.3

退出App

5

结论

日历是一款经典的小应用它既有简单易学的特性,而且界面美观;2007年11月5日,互联网巨头Google宣布依靠android系统进军手机操作系统领域后,几年来android一路高歌,拥有越来越多的用户群体,为顺应时代潮流,本次创新实践周的题目是一款能够在android手机上运行的小应用。

通过这次课程设计,我学到了很多新的知识,同时也锻炼了我的综合运用所学的知识,解决问题的能力,也提高我查阅文献资料、对程序整体的把握等其他能力与水平。在课程设计过程中,在小组成员的讨论中,不断地对源程序进行改进与完善,修改了以往扫雷程序的界面,界面更加漂亮。并且在编写的过程中,各种组件的运用,各种算法的应用,各种控件的利用我都是随着课程设计的不断深入而不断熟悉并逐步掌握的。

总而言之,在创新实践周中,我对android平台和游戏开发等领域都有了一定的了解。其中所学到的知识,将成为我今后学习工作当中的监视基础。希望以后还会有这种锻炼自己的实践机会。

参考文献

[1]

景保玉.2010中国移动应用开发现状与趋势大调查.2011年01月12日:10~23

[2]

Michael

J.Young.

轻松搞定XML.林嘉胜译.

清华大学出版社,2001年01月08日:12~58

[3](英)Herbert

Schildt

Java参考大全(J2SE

5

Edition).清华大学出版社.2010年:1~58

[4]

Mark

L.Murphy.Android开发入门教程.人民邮电出版社,2010年12月:1~20

[5]

郭宏志.Android

应用开发详解[M].北京:电子工业出版社.2010-10-2

[6]

余志龙.Google

Android

SDK

开发范例大全[M].北京:人民邮电出版社.2009-7-1

[7]

靳岩,姚尚朗.Google

Android

开发入门与实战[M].北京:人民邮电出版社.2009-7-1

篇2:超详细图文教你制作安卓手机主介绍题

超详细图文教你制作安卓手机主介绍题 本文关键词:机主,教你,图文,制作,介绍

超详细图文教你制作安卓手机主介绍题 本文简介:www.jsfw8.com超详细图文教你制作手机主题要制作个性专属的主题在你的爱机上应用,你手机必须要有ROOT权限,取权限方法。教程正文:①准备好7张你喜欢的图片或照片,电脑端安装有Photoshop或美图秀秀等图片修改美化软件,电脑互联网搜索下即可有惊喜的,就不再上传了。----------②教

超详细图文教你制作安卓手机主介绍题 本文内容:

www.jsfw8.com

超详细图文教你制作手机主题

要制作个性专属的主题在你的爱机上应用,你手机必须要有ROOT权限,取权限方法。

教程正文:

①准备好7张你喜欢的图片或照片,电脑端安装有Photoshop或美图秀秀等图片修改美化软件,电脑互联网搜索下即可有惊喜的,就不再上传了。

----------

②教程用美图秀秀做参考,Photoshop软件应用也如是相同。

……

1,将准备好的图片或照片,用软件打开,如图所示:

------------------------------

------------------------------

2,将图片的分辨率用软件修改为:960x854的规格尺寸。如图所示:

------------------------------

------------------------------

修改好图片(照片)的尺寸后,记得保存图片选择:png格式保存,如图所示:

------------------------------

------------------------------

3,使用裁剪工具把图片裁剪一张854x480的图片,这张图片是作为背景的~短信背景,计算器背景,TrackID的背景等等…

如图所示:

------------------------------

------------------------------

图片裁剪好后依然保存为:png格式放置备用。

再次打开上张图片,还需要裁剪修改2张尺寸小些的图片,尺寸规格不要太大,如图所示:

------------------------------

-----------------------------

要2张,就保存2次,格式依然是:png,再将其中1张用软件调暗些图片的亮度,这样在制作好的主题使用时,比如打开信息啊之类的就不会太亮,导致看不清文字。

每张要的图片都如上修改保存好

-------------------------------

保存好的图片要重新命名:

1,960x854的是壁纸,名字修改为black_wallpaper.png

2,854x480的是背景,名字修改为black_application_background.png

3,320x180的是主题选择页面的预览图名字修改为black_preview_focused.png和black_preview_normal.png两张,总共就四张图片。

(还有绿色,橘色,红色,粉色,蓝色照原主题包的名字修改好即可)

-------------------------------

还有横屏的图片…横屏是不需要壁纸图片的~只需要三张就好。

===============

用RE管理器进系统(system/app)里提取主题文件:DefaultThemes.apk,提取出来复制在电脑任意位置,用winrar解压打开软件,如图:

------------------------------

-----------------------------

进入res,如图所示:

-----------------------------

----------------------------

drawable-hdpi代表是竖屏的,drawable-land-hdpi代表是横屏的.如图所示:

--------------------------

--------------------------

进入drawable-hdpi文件夹里面,把那些图片的名字修改成里面一样就可以了,然后替换文件夹里面的图

片。竖屏和横屏都要换,不然你竖屏是一张图片,横屏是另外一张图片。替换好之后重新打开DefaultThemes.apk,打开方式还是Winrar,然后把res整个文件夹拖回压缩包,这时会跳出一个选项,存储方式要选择

为存储。如图所示:

----------------------------

转自:

www.jsfw8.com

贡献者:

康康

www.jsfw8.com

    以上《创新实践安卓软件开发报告》范文由一流范文网精心整理,如果您觉得有用,请收藏及关注我们,或向其它人分享我们。转载请注明出处 »一流范文网»最新范文»创新实践安卓软件开发报告
‖大家正在看...
设为首页 - 加入收藏 - 关于范文吧 - 返回顶部 - 手机版
Copyright © 一流范文网 如对《创新实践安卓软件开发报告》有疑问请及时反馈。All Rights Reserved