您好,欢迎来到锐游网。
搜索
您的当前位置:首页android实训报告

android实训报告

来源:锐游网
android实训报告 学号: 09090103 姓名:冯超洁

南 京 师 范 大 学 泰 州 学 院

题 目:学

信 息 工 程 学 院

Android实 训 报 告

Android GPS系统

号: 09090103 名: 冯超洁 级: 信工091

2012 年 6月

1

Android GPS系统

摘 要

随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机地图服务就是其中的一项。目前的地图服务主要以使用单机或者网页方式实现,这些方式不适合在户外旅游等场合下进行,给用户造成了很多的不便。Android平台提供给普通开发者非常灵活的地图展示与控制功能,这将使地图 服务的设计与实现有了更好的平台。另外,Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机地图服 务的普及做出贡献。

本文对目前应用现状进行了分析与比较,进而研究分析了Android平台的系统架构和组件模型,在此基础上,基于Android平台设计和开发了一个手机Web地图服务,该系统包括自我定位、地图模式、路线查询、地点查找四大模块。自我定位模块的功能就是把手机用户自己所在地方的地图和经纬度在界面中显示出来。行走踪迹模块的功能就是把用户经过的地方以路线图的形式给画出来。地点查找模块的功能就是查询一个地方,并把它在地图中标注出来。

本系统界面友好、操作便捷,具有良好的可扩展性和可维护性;系统经过测试,可以稳定运行,能够满足手机用户基本的地图服务需求。

关键词:Android;Activity;地图服务;Intent:布局

2

android实训报告 学号: 09090103 姓名:冯超洁

Abstract

With the mobile phone enters into the lives of ordinary people step by step,it will become the main device to obtain information.Therefore,the application services of mobile phone will have great development space,map service is one of them.At present,the map service mainly uses the stand—alone or website way to realize,these methods are not suitable for outdoor tourism,and other occasions,and give the user a lot of

inconvenience.Android platform provides to the general development a function of very flexible display and control the map,which will make the design and implementation of map service have a better platform.In addition,the Android platform is basically free,so can reduce the cost of software effectively, and ultimately lets each user be able to gain the information freely, else makes a contribution to the popularization of mobile map service.

In this paper, there is a analysis and comparison about the status of the current applied

platforms.Further analysis of the Android platform,system architecture and component model,and then to resolve the important API in Android and application of composition.On this basis,design and develop a mobile map service based on the Android platform,this system includes the self-localization,the map mode,the route inquiry, the place search.The self-localization module’s function is to display the latitude,longitude and place where mobile users are in the interface.The walking trail module’s function is to picture the place which the mobile user passes through by the form of road map.The place search module’s function is to inquire a place,and label it in the map.

This system user-friendly, easy to operate,has good extendibility and maintainability;the system after the test,can be stable operation,be able to meet the mobile phone users basic map service needs.

Key Words:Android;Activity;Map Service;Intent;Layout

3

android实训报告 学号: 09090103 姓名:冯超洁

目 录

摘 要 ............................................................................................................................................................................... 2 Abstract ............................................................................................................................................................................. 3 第一章 概要分析 .......................................................................................................................................................... 1 第二章 系统分析 .......................................................................................................................................................... 2 2.1 可行性分析............................................................................ 2 2.1.1 技术可行性 .............................................................................................................................................. 2 2.1.2 经济可行性 .............................................................................................................................................. 2 2.1.3 操作可行性 .............................................................................................................................................. 2 2.2 功能需求.............................................................................. 2 2.2.1 系统功能 .................................................................................................................................................. 2 2.2.2 用户特点 .................................................................................................................................................. 2 2.3 需求分析.............................................................................. 2 2.3.1用户体验需求 ........................................................................................................................................... 2 2.3.2功能需求 ................................................................................................................................................... 2 第三章 设计实现步骤(技术路线) .......................................................................................................................... 3 第四章 详细设计及实现 ................................................................................................................................................ 5 4.1 GPS系统登陆页面.......................................................................5 4.1.1界面文件 main.xml ................................................................................................................................. 5 4.1.2JAVA文件 MainActivity.java ............................................................................................................. 7 4.2 GPS系统注册页面.......................................................................9 4.2.1界面文件 Regist.xml ............................................................................................................................. 9 4.1.2 JAVA文件 RegistActivity.java ..................................................................................................... 12 4.3 GPS系统地图页面......................................................................15 4.3.1界面文件 others.xml ........................................................................................................................... 16 4.3.2 JAVA文件 PosOverActivity.java,OthersActivity.java,LineOverLayActivity.java ..... 17 1)OthersActivity.java .......................................................................................................................... 18 2)PosOverActivity.java ........................................................................................................................ 20 3)LineOverLayActivity.java ................................................................................................................ 21

第五章 心得体会 .......................................................................................................................................................... 22

I

android实训报告 学号: 09090103 姓名:冯超洁

Android GPS系统

第一章 概要分析

随着第三代数字通信(3G)技术获得了广泛的接受,它为智能手机用户带来了更快的数据传输速率。智能手机不再仅是通讯网络的终端,还将成为互联网的终端。另外智能手机正一步步走进普通人的生活,这意味着智能手机将会成为人们获取信息的主要设备。因此,手机的应用服务将会有很大的发展空间,手机Web地图服务就是其中的一项,它的最大优点在于便携性好和数据的实时性。基于以上分析,设计手机地图服务具有非常好的实用意义。到目前为止,开发内嵌式地图应用的软件是相当的困难,而且往往还需要支付很高的地图厂商的版权费用,加之手机上GPS功能的不完善,导致很多可以基于当前位置来开发功能的软件少之又少。还有就是现在手机生产商众多,而且操作系统不开源,各种应用放上去非常困难。对运营商来讲,往往需要对某类手机进行单独开发,成本无形增大很多。实现开源后,与运营商结成同盟,将导致成本降低。目前,操作系统的成本占15%一20%,这对消费者是一个很大的压力,把成本降到零,这对消费者和运营商都有好处。为此,Google于2007年11月推出了一个专为移动设备设计的软件平台——Android。它的出现打破了这些格局,还提供给普通开发者非常灵活的地图展示与控制功能。

Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和一些关键的平台应用,拥有移动电话工作所需的全部软件。Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验。

Android平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定特色化的产品,以形成自己的竞争优势,这对于手机制造商来说,具有很强的吸引力。因此,它具有很大的市场发展潜力。

1

Android GPS系统

第二章 系统分析

2.1 可行性分析

智能手机平台之争已经进入群雄争霸的时代,新势力的不断崛起,使其不断进步。因此,对智能

手机的平台的研究与开发是当前移动计算技术发展中最为活跃的领域。 Android与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。 2.1.1 技术可行性

Android的应用都基于Java开发,Java具有一次编写、到处运行的跨平台属性,只要编写一遍程序,就能够实现在所有Android设备中运行,真正做到了硬件无关性,大幅度降低了开发者的负担。Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。 2.1.2 经济可行性

到目前为止,开发内嵌式地图应用的软件是相当的困难,而且还需要支付很高的地图厂商的版权费用,对运营商来讲,往往需要对某类手机进行单独开发,成本无形增大很多。实现开源后,与运营商结成同盟,将导致成本降低。目前,操作系统的成本占15%一20%,这对消费者是一个很大的压力,把成本降到零,这对消费者和运营商都有好处。为此,Google于2007年11月推出了一个专为移动设备设计的软件平台——Android。它的出现打破了这些格局,还提供给普通开发者非常灵活的地图展示与控制功能。 2.1.3 操作可行性

Android是一个真正意义上的开放性移动设备综合平台,它包括操作系统、用户界面、中间件和一些关键的平台应用,拥有移动电话工作所需的全部软件。Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验。

2.2 功能需求

2.2.1 系统功能

不同的用户有不同的使用权限。如新用户需完成注册,而已注册的用户就可直接登录GPS界面。 2.2.2 用户特点

新用户和已注册的用户可以通过主界面登录系统,但因角色的不同会跳转到不同的页面。

2.3 需求分析

2.3.1用户体验需求

一个成功的Android应用程序往往需要提供良好的用户体验。良好的用户体验体现在以下几点: (1)界面友好 用户界面要简洁直观,并且易于操作。

(2)快速响应 快速处理用户的输入或请求,对于有些需要较多时问的应用程序,可以在它

处理时,给用户一个提示,让用户知道程序还在运行中。

(3)无缝性 Android应用程序模型的构建是能够允许用户在不同的应用程序之问进行流

畅的切换。

2.3.2功能需求

手机地图服务系统扮演着提供服务的重要角色,它需要提供友好的、方便的用户操作界面,接收用户的各项操作转化成与之对应的命令。其功能需求主要包含以下内容:

(1)地图缩放功能 用户能够通过此缩放功能,随时放大或者缩小当前的地图信息。 (2)视图模式切换功能 在显示地图信息的时候,应该提供给用户显示地图的普通信息和卫星

信息两种常规的视图模式,用户可以根据自己的需要选择一种。

(3)自我定位功能 当手机用户来到一个地方或者迷路时,可以通过此功能来确定自己当

前所在的位置信息和对应的地图信息。

(4)行走踪迹功能 当用户出去旅游或者去一个地方又怕迷路时,可以通过此功能把走过

的路线描绘出来,为回顾行程提供方便。

2

android实训报告 学号: 09090103 姓名:冯超洁

第三章 设计实现步骤(技术路线)

本次实训的项目是在基于eclipse工具开发的,具体实现步骤如下所示: (1)添加一个新的android模拟器

(2)通过eclipse创建一个项目。选择File->New->Project。在菜单中选择Android->Android

Project,点击Next

(3)创建一个新的Android工程。

3

Android GPS系统

(4)选择run as,选择android application,启动手机模拟器,即可看到运行效果

(5)获得Map API Key

建立一个基于Google APIs的模拟器

新建项目时需选择Google APIs

4

android实训报告 学号: 09090103 姓名:冯超洁

第四章 详细设计及实现

4.1 GPS系统登陆页面

登录运行界面:

4.1.1界面文件 main.xml

两个供输入的EditText,其中一个限定了输入类型为password; 包含两个Button,以实现登录和注册。

android:background=\"@drawable/tupian\" android:padding=\"20dp\" android:shrinkColumns=\"0\" android:stretchColumns=\"1\"

android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\" android:orientation=\"vertical\"

xmlns:android=\"http://schemas.android.com/apk/res/android\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:layout_marginTop=\"20dp\" android:layout_marginRight=\"20dp\" android:text=\"用户名:\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:layout_marginTop=\"20dp\" android:maxLength=\"10\" android:singleLine=\"true\"

android:selectAllOnFocus=\"true\" android:hint=\"请输入姓名\" android:id=\"@+id/name\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\"

android:layout_marginRight=\"20dp\"

5

Android GPS系统

android:text=\"密码:\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:singleLine=\"true\"

android:selectAllOnFocus=\"true\" android:hint=\"请输入密码\" android:id=\"@+id/password\"

android:inputType=\"textPassword\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:layout_marginRight=\"20dp\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:textColor=\"#000000\"

android:text=\"记 住 登 陆 信 息\" android:id=\"@+id/cb\"/>

android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\" android:orientation=\"vertical\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"登录\" android:id=\"@+id/dl\"

android:layout_marginLeft=\"90dp\" android:layout_alignParentTop=\"true\" android:layout_alignParentLeft=\"true\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:layout_marginRight=\"90dp\" android:text=\"注册\"

android:id=\"@+id/button\"

android:layout_alignParentTop=\"true\" android:layout_alignParentRight=\"true\"/> 6

android实训报告 学号: 09090103 姓名:冯超洁

4.1.2JAVA文件 MainActivity.java

使用main.xml布局文件,为登录和注册按钮(Button)注册事件监听,添加事件响应代码; 实现信息错误提示:Toast.makeText(MainActivity.this, ss, 1000).show(); 实现Activity之间跳转设置:new AlertDialog.Builder(MainActivity.this);

Intent intent=new Intent(MainActivity.this,OthersActivity.class);

package com.ketai.table; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.Intent;

import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText;

public class MainActivity extends Activity {

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

Button button=(Button)findViewById(R.id.button); button.setOnClickListener( new View.OnClickListener(){

public void onClick(View v){

//Intent intent=new Intent(从哪儿来.this, 到哪里去.class);

Intent intent=new Intent(MainActivity.this,RegistActivity.class); //跳转

startActivity(intent); } } );

Button b=(Button)findViewById(R.id.dl); b.setOnClickListener(

new View.OnClickListener() { private Object password;

public void onClick(View v) {

final EditText nameEt=(EditText)findViewById(R.id.name);

final EditText passwordEt=(EditText)findViewById(R.id.password); String uname=nameEt.getText().toString(); String upass=passwordEt.getText().toString();

SharedPreferences references=getSharedPreferences(\"account\Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);

String name=references.getString(\"username\ String pass=references.getString(\"password\ if(name.equals(uname)) {

if(pass.equals(upass)) {

Intent intent=new Intent(MainActivity.this,OthersActivity.class); startActivity(intent); }

else{

new AlertDialog.Builder(MainActivity.this)

.setIcon(R.drawable.ic_dialog_menu_generic)//设置图片 .setTitle(\"错误提示\")//设置标题

7

Android GPS系统

} .setMessage(\"您的密码错误,请重新输入\")//设置提示信息 .setPositiveButton(\"确定\设置第1个按钮 .show();//显示对话框

//String sb=\"您的密码错误,请重新输入\";

//Toast.makeText(MainActivity.this, sb, 1000).show(); }

else{

new AlertDialog.Builder(MainActivity.this)

.setIcon(R.drawable.ic_dialog_menu_generic)//设置图片 .setTitle(\"错误提示\")//设置标题

.setMessage(\"无此用户名,请重新输入\")//设置提示信息 .setPositiveButton(\"确定\设置第1个按钮 ); }

}

.show();//显示对话框

//String ss=\"无此用户名, 请重新输入\";

//Toast.makeText(MainActivity.this, ss, 1000).show(); } }

}

8

android实训报告 学号: 09090103 姓名:冯超洁

4.2 GPS系统注册页面

注册运行界面:

4.2.1界面文件 Regist.xml

两个供输入的EditText,其中一个限定了输入类型为password; 包含两个Button,以实现登录和注册; 设置下拉列表,实现省份和城市的联级;

-9

Android GPS系统

android:background=\"@drawable/pict\" android:layout_height=\"fill_parent\" android:layout_width=\"fill_parent\" android:orientation=\"vertical\"

xmlns:android=\"http://schemas.android.com/apk/res/android\">

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\">

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"密 码:\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:maxLength=\"10\" android:singleLine=\"true\" android:id=\"@+id/upass\"

android:inputType=\"textPassword\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\"

android:textColor=\"#000000\" android:text=\"性别:\" android:layout_marginTop=\"12dp\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:orientation=\"horizontal\" android:id=\"@+id/rg\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"男\"

android:id=\"@+id/man\" android:checked=\"true\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"女\"

android:id=\"@+id/woman\"/>

10

android实训报告 学号: 09090103 姓名:冯超洁

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\" android:id=\"@+id/linear\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"爱好:\"

android:layout_marginRight=\"6dp\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"体育\"

android:id=\"@+id/sport\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"音乐\"

android:id=\"@+id/music\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"游戏\"

android:id=\"@+id/game\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\" android:id=\"@+id/linear\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"省份:\"

android:layout_marginRight=\"6dp\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:id=\"@+id/province\"

android:prompt=\"@string/province\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\" android:id=\"@+id/liner\">

11

Android GPS系统

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:textColor=\"#000000\" android:text=\"城市:\"

android:layout_marginRight=\"6dp\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:id=\"@+id/city\"

android:prompt=\"@string/city\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"fill_parent\" android:orientation=\"horizontal\" android:gravity=\"center\">

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"注册\" android:id=\"@+id/btn\"/>

android:layout_height=\"wrap_content\" android:layout_width=\"wrap_content\" android:text=\"返回\" android:id=\"@+id/bt\"/>

4.1.2 JAVA文件 RegistActivity.java 实现Activity之间跳转设置:

Intent intent=new Intent(RegistActivity.this,MainActivity.class); 实现Activity之间数据封装传输:

editor.putString(\"username\

editor.putString(\"password\ editor.putString(\"sex\ editor.putString(\"hobbys\ editor.putString(\"province\ editor.putString(\"city\ editor.commit();

package com.ketai.table; import java.util.ArrayList; import java.util.HashMap; import java.util.Map;

import android.app.Activity; import android.content.Context; import android.content.Intent;

import android.content.SharedPreferences;

12

android实训报告 学号: 09090103 姓名:冯超洁

import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.util.Log; import android.view.View;

import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast;

import android.widget.AdapterView.OnItemSelectedListener; public class RegistActivity extends Activity { private View button;

/** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.regist);

//因为后续相关控件要在Button的侦听器(采用的匿名内部类的方式)中访问,所以下面的变量前要加final关键字

//获得用户名

final EditText unameEt=(EditText)findViewById(R.id.uname); //获得密码框

final EditText upassEt=(EditText)findViewById(R.id.upass);

//获得RadioButton所在的容器 RadioGroup final RadioGroup rg=(RadioGroup)findViewById(R.id.rg);

//获得CheckBox所在的容器 final LinearLayout linear=(LinearLayout)findViewById(R.id.linear); //获得Spinner

final Spinner provinceSp=(Spinner)findViewById(R.id.province); //准备初始化Spinner的数据

final Spinner citySp=(Spinner)findViewById(R.id.city); /*String[] arrays=new String[]{\"江苏\山东\浙江\ //第二个参数是当下拉列表没有展开时采用的layout ArrayAdapter adapter= new ArrayAdapter(this,android.R.layout.simple_spinner_item,arrays);*/ /* final List data=new ArrayList(); data.add(\"江苏\"); data.add(\"山东\"); data.add(\"浙江\");

ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_spinner_item,data);*/ final Map datas=new HashMap(); datas.put(\"江苏\南京\苏州\无锡\ datas.put(\"山东\济南\青岛\烟台\ datas.put(\"浙江\杭州\温州\嘉兴\ //实例化Adapter

ArrayAdapter proviceAdapter=new ArrayAdapter(this,android.R.layout.simple_spinner_item,new

ArrayList(datas.keySet()));

//设置Spinner下拉的样式

proviceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); provinceSp.setAdapter(proviceAdapter); //将Adapter与Spinner绑定

provinceSp.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView parent, View view,int position, long id) { Spinner sp=(Spinner)parent; Log.i(\"MainActivity\ TextView tv=(TextView)view; String province=tv.getText().toString();//获得省份 String[] citys=datas.get(province);//根据省份获得城市 ArrayAdapter cityAd=new

13

Android GPS系统

ArrayAdapter(RegistActivity.this,android.R.layout.simple_spinner_item,citys);

cityAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); citySp.setAdapter(cityAd); }

@Override

public void onNothingSelected(AdapterView parent) { // TODO Auto-generated method stub } } );

//获得按钮

Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务