文档库 最新最全的文档下载
当前位置:文档库 › Android编程基础 实验报告三

Android编程基础 实验报告三

Android编程基础 实验报告三
Android编程基础 实验报告三

南昌航空大学实验报告

二0一三年一月六日

课程名称:移动终端编程技术实验名称:Android组件通信和后台服务班级:姓名:同组人:

指导教师评定:签名:

一、实验目的

了解使用Intent进行组件通信的原理,掌握使用Intent启动Activity的方法;

掌握获取Activity返回值的方法;了解Intent过滤器的原理与匹配机制;

了解Service的原理和用途;

掌握进程内服务的管理方法;

掌握服务的隐式启动和显式启动方法;

二、实验工具

Eclipse(MyEclipse)+ ADT + Android2.2 SDK;

三、实验题目

1.编程实现

⑴功能描述:

主界面上有一个“登录”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件,在用户关闭这个Activity后,将用户输入的用户名和密码传递到主界面中。

⑵编程要点:

①主界面的Activity命名为MainActivity;启动新的Activity命名为UserLoginActivity;

②分别使用显示启动和隐式启动的方式,启动新的Activity;

③用户名中不能出现“@”符号,同时长度不超过12个字符;密码使用密码文本显示方式,即显示为“******”,同时只能为数字;

④返回的用户名和密码要以Toast的方式显示出来;

⑤MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息。

2.编程实现

⑴功能描述:

编程建立一个简单的进程内服务,实现比较两个整数大小的功能。服务提供IntCompare(Int, Int)函数,输入两个整数,输出较大的整数。

⑵编程要点:

①主界面的Activity命名为MainActivity;提供两个EditText,分别输入两个整数;提供一个Botton,启动比较过程;提供一个TextView,显示较大的整数;

②分别使用启动方式和绑定方式使用Service;

③分别使用Handle和AsyncTask更新TextView中的内容。

四、实验步骤

1.详细工程结构及部分代码(显式和隐式都在其中):

结果:

代码:

MainActivity.java

public class MainActivity extends Activity {

protected int SUBACTIVITY1 = 1;

private static String TAG = "MainActivity";

Button button1,button2;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/5415334230.html,yout.main);

Log.i(TAG, "(1) onCreate()");

button1 = (Button) this.findViewById(R.id.button1);

button2 = (Button) this.findViewById(R.id.button2);

button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

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

Toast.makeText(getApplicationContext(), "显示启动",

Toast.LENGTH_SHORT).show();

startActivityForResult(intent, SUBACTIVITY1);

}});

button2.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {

Intent intent = new Intent("com.example.test");

Toast.makeText(getApplicationContext(), "隐式启动",

Toast.LENGTH_SHORT).show();

startActivityForResult(intent, SUBACTIVITY1);

}});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

Uri uriData = data.getData();

Toast.makeText(getApplicationContext(), uriData.toString(),

Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(getApplicationContext(), "用户名和密码为空",

Toast.LENGTH_SHORT)

.show();

}

}

@Override //可视生命周期开始时被调用,对用户界面进行必要的更改

public void onStart() {

super.onStart();

Log.i(TAG, "(2) onStart()");

}

@Override //在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面信息

public void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

Log.i(TAG, "(3) onRestoreInstanceState()");

}

@Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更

新的资源

public void onResume() {

super.onResume();

Log.i(TAG, "(4) onResume()");

}

@Override // 在onResume()后被调用,保存界面信息

public void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInstanceState);

Log.i(TAG, "(5) onSaveInstanceState()");

}

@Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息

public void onRestart() {

super.onRestart();

Log.i(TAG, "(6) onRestart()");

}

@Override //在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源。

public void onPause() {

super.onPause();

Log.i(TAG, "(7) onPause()");

}

@Override //在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源

public void onStop() {

super.onStop();

Log.i(TAG, "(8) onStop()");

}

@Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等

public void onDestroy() {

super.onDestroy();

Log.i(TAG, "(9) onDestroy()");

}

}

UserLoginActivity,java

public class UserLoginActivity extends Activity {

EditText username,password;

Button submit,reset;

private static String TAG = "MainActivity";

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/5415334230.html,yout.login);

Log.i(TAG, "(1) onCreate()");

username=(EditText)this.findViewById(https://www.wendangku.net/doc/5415334230.html,ername);

password=(EditText)this.findViewById(R.id.password);

submit=(Button)this.findViewById(R.id.submit);

reset=(Button)this.findViewById(R.id.reset);

username.setFocusable(true);

username.setOnKeyListener(new OnKeyListener(){

public boolean onKey(View v, int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

int unicodeChar = event.getUnicodeChar();

if(unicodeChar== 64)

{

return true;

}

else

return false;

}});

submit.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

String name =username.getText().toString();

String pass=password.getText().toString();

String uriString="用户名:"+name+"密码:"+pass;

Uri data = Uri.parse(uriString);

Intent result = new Intent(null, data);

setResult(RESULT_OK, result);

finish();

}

});

reset.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// TODO Auto-generated method stub

setResult(RESULT_CANCELED, null);

finish();

}

});

}

@Override //可视生命周期开始时被调用,对用户界面进行必要的更改public void onStart() {

super.onStart();

Log.i(TAG, "(2) onStart()");

}

@Override //在onStart()后被调用,用于恢复onSaveInstanceState()保存的用户界面

信息

public void onRestoreInstanceState(Bundle savedInstanceState) {

super.onRestoreInstanceState(savedInstanceState);

Log.i(TAG, "(3) onRestoreInstanceState()");

}

@Override //在活动生命周期开始时被调用,恢复被onPause()停止的用于界面更新的资源

public void onResume() {

super.onResume();

Log.i(TAG, "(4) onResume()");

}

@Override // 在onResume()后被调用,保存界面信息

public void onSaveInstanceState(Bundle savedInstanceState) {

super.onSaveInstanceState(savedInstanceState);

Log.i(TAG, "(5) onSaveInstanceState()");

}

@Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息

public void onRestart() {

super.onRestart();

Log.i(TAG, "(6) onRestart()");

}

@Override //在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源。

public void onPause() {

super.onPause();

Log.i(TAG, "(7) onPause()");

}

@Override //在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源

public void onStop() {

super.onStop();

Log.i(TAG, "(8) onStop()");

}

@Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等

public void onDestroy() {

super.onDestroy();

Log.i(TAG, "(9) onDestroy()");

}

}

2.详细工程结构及部分代码(显式和隐式都在其中):

(显式启动)

结果:

部分代码:

MainActivity.java

public class MainActivity extends Activity {

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

public static int maxNum;

public static Handler handler=new Handler();

private static TextView result=null;

private static Button compare=null;

private static Button reset=null;

private static EditText one=null;

private static EditText two=null;

public static void UpdateGUI(int refreshDouble){

maxNum=refreshDouble;

handler.post(RefreshLable);

}

private static Runnable RefreshLable=new Runnable(){ public void run() {

result.setText(String.valueOf(maxNum));

}};

public void onCreate(Bundle savedInstanceState) {

final Bundle mybundle=new Bundle();

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/5415334230.html,yout.main);

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

result=(EditText)findViewById(R.id.result);

compare=(Button)findViewById(https://www.wendangku.net/doc/5415334230.html,pare);

reset=(Button)findViewById(R.id.reset);

one=(EditText)findViewById(R.id.one);

two=(EditText)findViewById(R.id.two);

compare.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

mybundle.putString("one", one.getText().toString());

mybundle.putString("two", two.getText().toString());

intent.putExtras(mybundle);

startService(intent);

}

});

reset.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

one.setText(null);

two.setText(null);

result.setText(null);

}

});

}

}

CompareService.java

public class CompareService extends Service {

private Thread workThread;

Bundle bundle=null;

int one=0,two=0;

public void onCreate() {

super.onCreate();

workThread = new Thread(null,backgroudWork,"WorkThread");

}

@Override

public void onStart(Intent intent, int startId) {

super.onStart(intent, startId);

bundle=intent.getExtras();

String c1=bundle.getString("one");

String c2=bundle.getString("two");

if(!c1.toString().equals("")&&!c2.toString().equals("")){

one=Integer.parseInt(c1);

two=Integer.parseInt(c2);

}

if (!workThread.isAlive()){

workThread.start();

}

}

public IBinder onBind(Intent intent) {

return null;

}

private Runnable backgroudWork = new Runnable(){

@Override

public void run() {

int randomDouble =IntCompare(one,two);

MainActivity.UpdateGUI(randomDouble);

stopSelf();

}

};

int IntCompare(int a,int b){

if(a>=b)

return a;

else

return b;

}

}

(隐式启动) 结果:

部分代码:

MainActivity.java

public class MainActivity extends Activity {

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

private boolean isBound = false;

private CompareService compareService;

int a=0,b=0;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.wendangku.net/doc/5415334230.html,yout.main);

final TextView result=(TextView)findViewById(R.id.result);

Button compare=(Button)findViewById(https://www.wendangku.net/doc/5415334230.html,pare);

Button reset=(Button)findViewById(R.id.reset);

final EditText one=(EditText)findViewById(R.id.one);

final EditText two=(EditText)findViewById(R.id.two);

if(!isBound){

Intent serviceIntent=new Intent(MainActivity.this,CompareService.class);

bindService(serviceIntent,mConnection,Context.BIND_AUTO_CREATE);

isBound=true;

}

compare.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

String c1=one.getText().toString();

String c2=two.getText().toString();

if(!c1.equals("")&&!c2.equals("")){

a=Integer.parseInt(c1);

b=Integer.parseInt(c2);

}

result.setText(String.valueOf(compareService.IntCompare(a, b)));

}

});

reset.setOnClickListener(new OnClickListener(){

public void onClick(View v) {

one.setText(null);

two.setText(null);

result.setText(null);

}

});

}

private ServiceConnection mConnection=new ServiceConnection(){

@Override

public void onServiceConnected(ComponentName name, IBinder service) { // TODO Auto-generated method stub

compareService=((CompareService.LocalBinder)service).getService();

}

@Override

public void onServiceDisconnected(ComponentName name) {

// TODO Auto-generated method stub

compareService=null;

}};

}

CompareService.java

public class CompareService extends Service {

private final IBinder mBinder=new LocalBinder();

class LocalBinder extends Binder{

CompareService getService(){

return CompareService.this;

}

}

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return mBinder;

}

public int IntCompare(int a,int b){

if(a>=b)

return a;

else

return b;

}

}

五、作业

1.简述Intent的定义和用途?

Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。Intent为Activity、Service和BroadcastReceiver等组件提供交互能力,将一个组件的数据和动作传递给另一个组件。Intent的一个最常见的用途就是启动Activity和Service;另一个用途是在Android系统上发布广播消息,广播消息可以是接收到特定数据或消息,也可以是手机的信号变化或电池的电量过低等信息。

2.简述Service的基本原理和用途?

Service能够长期在后台运行 适用于无需用户干预 且规则或长期运行的后台功能。首先

因为Service没有用户界面 更加有利于降低系统资源的消耗 而且Service比Activity 具有更高的优先级 因此在系统资源紧张时 Service不会被Android系统优先终止。即使Service被系统终止 在系统资源恢复后Service也将自动恢复运行状态 因此可以认为Service是在系统中永久运行的组件。Service除了可以实现后台服务功能 还可以用于进程间通信 Inter Process Communication IPC 解决不同Android应用程序进程之间的调用和通讯问题。

android实验报告

创建一个名为“登录页面”的布局文件,该文件用于展示登录信息。程序界面如下图所示:; public class Activity01 extends Activity { EditText name; EditText pass ; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); public void click(View view){ Intent intent1=new Intent(this,Mylayout1MainActivity.class); startActivity(intent1);} public void click1(View view){ SharedPreferences sf1=getSharedPreferences("account",Context.MODE_PRIVATE); String name1=sf1.getString("name",""); String pass1=sf1.getString("pass",""); String name2=name.getText().toString(); String pass2=pass.getText().toString(); if(name1.equals(name2)&&pass1.equals(pass2)){ Intent intent2=new Intent(this, Textview1.class); intent2.putExtra("name", name1);

Android实验报告_基于SQLite的通信录

第一次实验Android界面设计 一. 实验目的及实验环境 1. 实验目的 1)掌握SQLiteOpenHelper类结构 2)掌握基于SQLite数据库的应用开发过程 3)掌握Content Provider发布数据的方法 4)掌握Content Resolver获取数据的方法 2.实验环境 系统开发平Android Studio 3.0 系统开发平台:Android 7.1 运行平台:Windows10 x64 运行环境:https://www.wendangku.net/doc/5415334230.html, Framework SDK 2.0 二. 实验教材、组织方式、实验容 1.实验教材:Andorid开发与应用 2.组织方式:个人独立完成 2.实验容: 实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。 三.方案设计 Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver来获取共享数据。

四.运行结果

五.总结 通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver 获取数据的方法。 六.附录:源代码 主布局文件activity_main.xml:

基于android开发实验报告总结

基于android开发实验 报告总结 组员: 指导老师: 2016.12.15

目录 实验一 Android开发环境的搭建 (3) 1 实验目的及要求 (3) 2 实验设备(环境)及要求 (3) 3 实验内容 (3) 4 实验步骤 (3) 5 实验核心代码(关键代码),及调试中的问题 (4) 6 实验的运行结果及分析 (9) 3 实验设备(环境)及要求 (10) 实验三 GUI创建套件Widget的使用 (18) 1 实验目的及要求 (18) 2 实验设备(环境)及要求 (18) 3 实验内容 (19) 4 实验步骤 (19) 5 实验核心代码(关键代码),及调试中的问题 (19) 6 实验的运行结果及分析 (28) 实验四 SQLite应用 (29) 1 实验目的及要求 (29) 2 实验设备(环境)及要求 (30) 3 实验内容 (30) 4 实验步骤 (30) 5 实验核心代码(关键代码),及调试中的问题 (30) 6 实验的运行结果及分析 (41)

实验一 Android开发环境的搭建 1 实验目的及要求 1.搭建Eclipse+Android开发平台 2.创建简单的Android应用程序 3.创建Activity并利用intent的实现Activity的跳转 2 实验设备(环境)及要求 1)PC计算机 2)JDK安装包 3)Eclipse安装包 4)Android SDK安装包 5)ADT插件 3 实验内容 1)搭建Eclipse+Android开发环境 2)创建一个简单的”hello world”工程 3)创建两个Activity,实现简单的Activity之间的参数传递 4 实验步骤 1)下载安装JDK 1.6,配置环境变量,如果所示。

安卓空气质量app查询实验报告

课程设计报告 课程名称: 移动平台开发 设计题目:空气质量查询 院系:计算机科学与工程学院 专业:计算机科学与技术 班级:计科141 学号:Z09314123 姓名:吴佩 指导教师:孙霞 设计地点:N6-113 开课时间:2016 至2017 学年第1 学期

目录 1.引言 (1) 1.1.题目描述 (1) 1.2.设计意义 (1) 2.开发环境 (1) 2.1.硬件环境 (1) 2.2.软件环境 (1) 3.相关技术及知识点 (2) 3.1.Activity (2) 3.2.Service (2) 3.3.网络通信 (3) 4.需求分析 (3) 4.1.系统功能需求分析 (3) 4.2.系统流程图 (4) 4.3.系统界面需求分析 (4) 4.4.系统性能需求分析 (4) 5.设计与实现 (5) 5.1.界面布局 (5) 5.2.省市二级联动 (6) 5.3.获取空气质量数据 (9) 5.4.播放背景音乐 (16) 6.个人总结 (17)

1.引言 1.1.题目描述 本次实验是开发一款基于Android平台的空气质量查询应用,将网络系统的功能扩展到智能手机终端上,让手机能够通过移动网络访问Web网站并处理各种各样的业务,可以让智能手机用户能够随时随地查询互联网所提供的空气质量信息。 1.2.设计意义 可以让广大Android手机用户能够在第一时间获取最新的空气质量信息,以便提前预防,方便出行。同时,把气象灾害造成的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对经济社会发展的现实性作用,有巨大的实用价值。虽然该技术在Android平台已经比较成熟,但是通过该软件的开发仍然能帮助我更好的认识Android系统的工作原理。 2.开发环境 2.1.硬件环境 神州笔记本电脑 2.2.软件环境 Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。而用Java语言进行开发,需要用到SUN 公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,需要使用Google提供的Android SDK。同时,要在Eclipse 上安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级或下载的工具。 简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。 (1) Java SDK (2) Eclipse (3) Android SDK (4) ADT

安卓实验报告报告

《Android网络程序设计》课程期末作品设计报告 学号:130705222 姓名:廖梓茗 班级:13信息 2 班 学院:电子信息学院 2016年6 月

1 主要界面截图 分组界面全部赛程界面 球队赛程界面

“我的”界面--未登录“我的”界面--已登录 登陆界面

修改密码界面

2 请结合本项目的开发,回答以下问题 2.1 如何在ViewPager中放入多个Fragment?如何为每个Fragment设置标签?介绍一下管理ViewPager的适配器。 给viewpager addOnPageChangerListener 同时绑定fragment数据源 2.2 适配器是什么?以本项目为例介绍一个列表适配器的实现? Adapter是控件与数据之间的桥梁,控制控件什么时候如何显示数据 项目中的listview的adapter全继承BaseAdapter,自由度高。 其中adapter 的getView方法主要控制listview的每个item显示什么视图view 2.3 如何访问网络接口?如何获得网络接口返回的数据?以本项目为例介绍一个网络接口的访问。 本项目访问网络,主要使用HttpClient,调用AsyncHttpClient的get或post发送 一个请求,在回调接口中处理返回数据。

例如获取分组数据接口,先获取AsyncHttpClient对象 AsyncHttpClient client = new AsyncHttpClent(); 再调用client对象的post或是get方法 Client.get(url,new TextHttpResponseHandler()); 在回调函数onSuccess中处理返回信息 2.4 如何解析json数据?以本项目为例介绍一个接口返回的json数据的解析过程。 json数据解析,主要使用Gson或是FastJson解析 FastJson: JSON.priseObjest()或是JSON.priseArray()直接将json映射成list或是object 3 请回答以下问题 3.1 当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity,应使用什么方法?其有哪些参数,分别表示什么? 在新Activity中如何将数据返回启动它的Activity? 原Activity如何用什么方法获取返回的数据?其有哪些参数,分别表示什么? startActivityForResult(intent, requestCode); setResult(intent); 通过onActivityResult()函数中的Intent参数中获取传回的数据 3.2 Activity和Fragment的生命周期状态各有哪些?状态之间如何变换?状态变换时会执行哪些方法?

安卓计算器开发实验报告

嵌入式WebOS应用开发 实验报告 实验名称:使用An droid Developer SDK开发应用程序 专业:_________________________ 姓名:__________________________________ 班级:_______________________________ 学号:______________________________ 一、作品的运行环境及安卓SDK基础操作 SDK An droid Developer 是一款在windows系统上运行的针对 An droid应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。 3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 要在xml 界面中添加排版: xml 代码首末的 格式较为自由可以直接在 界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。 三、 编程以及运行调试 (一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng 32E img'O.png jdE im^il.png] 3E img?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png ..1. uiHiprxg 就可以看见对应的代码, 可直接 在代码中进行修改图片文字的 大小颜色等等。 以下是对应图像图标的代码 图片可以在左侧的选 (二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc 起 ch^tfrorn_bg_ipTW5&d !S'.pflg ~l <+i?,kbnif^M 口 .股 ch?kbojco#f bsckgrourid^na SE chfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq

Android实验一实验报告

Android实验报告一 姓名:丁军峰 班级:信科12-3 学号:08123448

一、实验内容 编写一个Android应用程序,实现对自己物品的管理,功能包括添加、删除和查询等 二、实验目的 了解android开发流程,掌握SQLite数据库和ListView控件的使用三、需求分析 使用SQLite数据库,使用ListView控件显示物品 四、实验过程 1.创建程序,设计用户交互界面

Android程序开发实验报告

山西大学 物理电子工程学院 论文题目:基于Android系统的GPS 程序开发 学号:* 姓名:* * * 指导老师:* *

摘要 在日常生活中,我们经常需要知道自己的具体位置,尤其是在 旅游或陌生城市中。而手机作为目前最常见、最方便的电子信息载体,无疑是我们最好的选择。为了让智能手机用户能够随时随地查询GPS 所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上。本文选择的是最常见的Android系统的程序开发。对于软件从业人员来说,该平台具有无限的吸引力。 因此,本文首先介绍安卓系统在个人计算机上开发平台的搭建,并尝试在安卓系统上开发一款基于手机自带GPS组件的GPS应用。 关键字:Android,GPS,SDK,JDK,ADT,Eclipse 一引言 (一)开发背景 随着网络世界的深入生活,地球网络化已经是一条必然之路。而今后的网络也将逐渐的走向移动互联网的轨道。像手机,平板计算机,笔记本计算机等可以搭乘移动互联网的产品中使用人数最多的数码产品便是智能手机了。它已经在逐步的取代其他的电子产品的市场份额。据《2013-2017年中国智能手机行业市场需求预测与投资战略规划分析报告》估算,2012前三季度,全球智能手机用户总数已经突破了10亿大关。而2011前三季度的用户量只有约7亿户。可以看出,智能手机市场的潜力不可估量。

(二)Android 与GPS 简介 1.Android 是一种基于Linux 的自由及开放源代码的操作系统,主要使用于移动设 备,如智能手机和平板计算机,由Google 公 司和开放手机联盟领导及开发。 2011年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android 占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。 Android 的系统架构和其操作系统一 样,采用了分层的架构。从架构图看, Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运 行库层和Linux 内核层。 Android 系统所具有的特点有:开放性、丰富的硬件、方便开发。 2.GPS 是英文Global Positioning System (全球定位系统) 的简称。GPS 起始于1958年美国军方的一个项目, 1964年投入使用。GPS 定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。GPS 由空间部分、地面控制系统、用户设备部分三部分组成。作为先进的测量手段和新的生产力,GPS 已经融入了国民经济建设、国防建设和社会发展的各个应用领域。GPS 技术与我们的日常生活日益相关。

安卓开发实验报告

安卓开发实验报告 目录 一、页面跳转 二、长按图标抖动以及显示删除 一、页面跳转 功能:通过点击button实现2个activity之间的跳转。 1.设置监听器监听点击button 2.使用intent传输数据

完整代码 1.ui_test.java publicclass UI_Test extends Activity { @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/5415334230.html,yout.incident_activity_1); Button bt = (Button)findViewById(R.id.login); bt.setOnClickListener(new OnClickListener()); } class OnClickListener implements View.OnClickListener{ publicvoid onClick(View v){ EditText name = (EditText)findViewById(https://www.wendangku.net/doc/5415334230.html,); EditText password = (EditText)findViewById(R.id.password); Bundle data=new Bundle(); data.putString("name", name.getText().toString()); data.putString("password", password.getText().toString()); Intent intent = new Intent(UI_Test.this,UI_Result.class); intent.putExtras(data); startActivity(intent); } } 2.ui_result.java publicclass UI_Result extends Activity { @Override protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/5415334230.html,yout.incident_activity_2); TextView name = (TextView)findViewById(https://www.wendangku.net/doc/5415334230.html,Show); TextView password = (TextView)findViewById(R.id.passwordShow); Intent intent=getIntent(); Bundle result = intent.getExtras(); name.setText("您的用户名为: "+result.getString("name")); password.setText("您的密码为: "+result.getString("password"));

Android实验报告

Android实验报告 专业:计算机科学与技术 班级: 学号: 姓名:武易 2016年11月28日 实验一 Activity 生命周期 一、实验目的 Android 生命周期是从程序启动到程序终止的过程。通过本次实验深入理解Android 系统管理生命周期的必要性,并以Activity 为例说明Android 系统是如何管理程序组件的生命周期。 二、实验设备 1、硬件设备系统类型:Win7 版本32 位,处理器: Intel(R)Core(TM)i3-2350M CPU @2.30GHz 2.30GHz 安装内存(RAM):8.00GB 2、软件设备 Win7 操作系统、Eclipse、JDK、Android SDK、ADT 三、实验内容 1、实验要求 观察 Activity的生命周期。 2、详细设计 public class MainActivity extends ActionBarActivity {

private static String TAG="LIFECYCLE"; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); Log.i(TAG,"(1) onCreate()"); button.setOnClickListener(new View.OnClickListener(){ public void onClick(View view){ finish(); } }); } @Override public void onStart(){ super.onStart(); Log.i(TAG,"(2) onStart()"); } @Override public void onRestoreInstanceState(Bundle savedInstanceState){ super.onRestoreInstanceState(savedInstanceState); Log.i(TAG,"(3) onRestoreInstanceState()"); } @Override

android实验报告模板

移动应用开发实验报告 实验名称音乐播放器 班级 学号 姓名 指导教师 实验成绩 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.点击退户,若音乐处于暂停或者停止状态,直接退出。

安卓实验报告

安卓开发实验报告 专业:地理信息系统 姓名:白兰海 学号:201120907124

Android编程报告 一、安卓系统简介 Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。 2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。 以Google、苹果和路基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正式Google发布Android平台的意义,也是Andorid 平台存在的使命所在。而作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事Google手机软件的应用以及本地化的软件的开发,比如将在Google手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。国内众多企业也将眼光投入到Andorid上面,并启动了相关的计划来深入的理解并发展Android。更多的手机软件开发企业已经或者筹备着将公司进行转型,从其方向的开发转向到Android的开发。 二、初识安卓程序 Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection 和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。 View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity 中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过

安卓实验报告

安卓实验报告 班级:xxxxx 学号:11111111 姓名:xxxx

实验一:Activity生命周期的测试 一:实验目的 掌握使用Eclipse开发Android应用开发程序的方法; 掌握Android虚拟设备的创建方法; 了解Android的程序结构; 了解使用命令行创建Android程序方法; 了解Activity生命周期,理解Activity事件回调,onRestoreInstanceState()和onSaveInstanceState两个函数的使用。 二:实验设备 Eclipse 开发Android 应用 Android虚拟设备( AVD) 三:实验内容 (1)正常启动ActivityLife,然后单击用户界面的“结束程序”按钮关闭程序。 (2)正常启动ACtivityLife,然后通过“拨号键”启动内置的拨号程序,再通过“回退建”退出拨号程序,使ActivityLife重新显示在屏幕中。 四:实验核心代码 package com.example.activitylife; import android.app.Activity; import android.app.ActionBar; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import https://www.wendangku.net/doc/5415334230.html,youtInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.os.Build; public class MainActivity extends Activity { private static String TAG="LIFECYCLE"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/5415334230.html,yout.fragment_main); Log.i(TAG,"(1) onCreate()");

安卓实验报告

江西科技师范大学实验报告 课程Android开发与应用 院系教育学院 班级2013教育技术学 学号 姓名 报告规格 一、实验目的 二、实验原理 三、实验仪器四、实验方法及步骤 五、实验记录及数据处理 六、误差分析及问题讨论

年级班学号姓名实验日期年月日 目录 1. 2. 3. 4. 5. 6. 每次实验课必须带上此本子,以便教师检查预习情况和记录实验原始数据。 实验时必须遵守实验规则。用正确的理论指导实践必须人人亲自动手实验,但反对盲目乱动,更不能无故损坏仪器设备。 这是一份重要的不可多得的自我学习资料它将记录着你在大学生涯中的学习和学习成果。请你保留下来,若干年后再翻阅仍将感到十分新鲜,记忆犹新。它将推动你在人生奋斗的道路上永往直前!

课程名称:android 应用开发本课课时:4 课时 授课单元:第一章Android简介与环境搭建 教知识目标: (1) 认识 Android 学(2) 搭建 Android 开发环境 (3) 开发第一个 Android 应用 目(4) Android 应用结构分析 能力目标: 标掌握如何搭建 Android 开发环境,创建和运行 Android 项目,清楚 Android 应用程序的运行过程和 Android 应用程序的结构;了解 Android 应用开发的背景知识 及发展潜力。 教学重点:(1) 搭建 Android 开发环境 (2) Android 应用程序的结构及运行过程。 教学难点:(1) 搭建 Android 环境过程比较复杂,注意每个工具的安装细节 (2) Android 应用程序结构之间的关系,各项目文件夹的作用 教学媒体多媒体机房 教学手段:讲授(PPT)+程序演示 教学内容进程设计 主要步骤教学内容及教学策略教学环境教师与学生活动时间分配 (1)认识 Android 告知(教学(2)搭建 Android 开发环境 课件演示明确本项目教学目的15 内容) (3)开发第一个 Android 应用分钟 (4)Android 应用结构分析 问题引入法:移动通讯的迅猛发学生讨论: (1) 第一款Android 手机 展,使现代生活节奏越来越快,移 是什么时候诞生的 引入(项目动通讯产品的更新换代和市场争15 课件演示(2)Android 手机的特 引入) 夺战也愈演愈烈,这一章我们从什点,以及我们使用分钟么是Android开始引入,然后深入 智能手机与一般手探究Android的过程 机的区别 (1) 如何搭建 Android 开发环境 (JDK的安装及java环境的搭(1) 多媒体教老师把搭建 Android 实施(任务建、Eclipse的安装、ADT插学环境, 如何创建、运行120 驱动) 件的安装、Android SDK的安(2) 案例教学Android 项目演示给分钟装及配置) (3) 视频教学学生后,给学生时间自 (2) 如何创建 SDK 模拟器己安装

Android编程基础 实验报告三

南昌航空大学实验报告 二0一三年一月六日 课程名称:移动终端编程技术实验名称:Android组件通信和后台服务班级:姓名:同组人: 指导教师评定:签名: 一、实验目的 了解使用Intent进行组件通信的原理,掌握使用Intent启动Activity的方法; 掌握获取Activity返回值的方法;了解Intent过滤器的原理与匹配机制; 了解Service的原理和用途; 掌握进程内服务的管理方法; 掌握服务的隐式启动和显式启动方法; 二、实验工具 Eclipse(MyEclipse)+ ADT + Android2.2 SDK; 三、实验题目 1.编程实现 ⑴功能描述: 主界面上有一个“登录”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件,在用户关闭这个Activity后,将用户输入的用户名和密码传递到主界面中。 ⑵编程要点: ①主界面的Activity命名为MainActivity;启动新的Activity命名为UserLoginActivity; ②分别使用显示启动和隐式启动的方式,启动新的Activity; ③用户名中不能出现“@”符号,同时长度不超过12个字符;密码使用密码文本显示方式,即显示为“******”,同时只能为数字;

④返回的用户名和密码要以Toast的方式显示出来; ⑤MainActivity和UserLoginActivity中各个生命周期的回调函数中要以Log.i方式显示日志信息。 2.编程实现 ⑴功能描述: 编程建立一个简单的进程内服务,实现比较两个整数大小的功能。服务提供IntCompare(Int, Int)函数,输入两个整数,输出较大的整数。 ⑵编程要点: ①主界面的Activity命名为MainActivity;提供两个EditText,分别输入两个整数;提供一个Botton,启动比较过程;提供一个TextView,显示较大的整数; ②分别使用启动方式和绑定方式使用Service; ③分别使用Handle和AsyncTask更新TextView中的内容。 四、实验步骤 1.详细工程结构及部分代码(显式和隐式都在其中): 结果:

Android实验一实验报告

A n d r o i d实验报告一 姓名:丁军峰 班级:信科12-3 学号:08123448

一、实验内容 编写一个Android应用程序,实现对自己物品的管理,功能包括添加、删除和查询等 二、实验目的

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="物品清单" />

android:text="物品个数"/> android:inputType="text"/>

安卓实验报告

课程实验 课程名称互联网应用开发学生学院计算机学院 专业班级 学号 学生姓名 指导教师 2014 年11 月23日

实验一第一个Android程序 一、实验要求 1、创建Android开发环境 2、使用Eclipse建立第一个Android程序 3、分析Android的程序的文件结构和用途 二、实验过程 1、安装开发环境 安装jdk7并配置相关环境变量(PATH,CLASSPATH,JAVA_HOME); 安装SDKManager并下载相关开发包(API17); 安装eclipse(Kepler)安装ADT插件(23.0),并配置SDKLOCATION 打开AVDManager创建一个模拟器(android4.0.3) 2、新建工程项目 新建一个工程,选择Android Application根据向导填写项目名称(HelloAndroid)等,其它默认即可。 3、运行工程 选中该工程后点运行配置中选择默认Target为之前创建的AVD,接着直接运行(AVD首次启动很慢) 三、过程演示 1、新建工程

2、A VD显示结果 四、实验心得 本次实验是Android入门实验,环境安装上有时会遇到一些比较棘手的问题,只要有耐性,一般都能解决。 五、部分源代码 AndroidMainfest.xml

Android实验报告生命周期

Android 开发 (实验四) 实验题目:Activity生命周期验证试验指导老师: 班级:计算机科学与技术系班 姓名:(

一、实验目的 1、深入理解Activity运行机制和原理。 2、掌握Activity的声明周期各个阶段工作流程。 3、掌握多个Activity之间生命周期的转换过程。 4、通络Intent实现多页面之间数据的传递(辅助完成)。 二、实验内容 1、搭建任意组件,设计多个界面,运行程序观察其生命周期的 情况。 2、使用Intent实现页面之间数据的传递。 三、实验代码 AlifecyfleActivity.java package com.wr; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AlifecycleActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/5415334230.html,yout.main); Button BtnStart = (Button) findViewById(R.id.BtnStart); BtnStart.setOnClickListener(new MyBtnClickListener()); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy();

相关文档