电子信息学院
实验报告书
课程名:《操作系统原理》
题 目: 实验二 Android的视图层与UI设计
实验类别: 【验证、设计】
班 级:
学 号:
姓 名:
1、 实验题目
Android的视图层与UI设计
2、实验目的与要求
(1)实验目的:
让同学熟悉Android开发中的UI设计,包括了解和熟悉常用控件的使用、界面布局和事件时间处理等内容。
(2)实验要求:
1. 熟悉和掌握界面控件设计;
2. 了解Android界面布局;
3. 掌握常用控件的时限和属性设置;
4. 创建和使用定制的控件。
3、实验步骤与源程序
一、 常用控件
1. 新建 “HelloUI” 工程,
2. MainActivity.java
package lin.example.helloui;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView)findViewById(R.id.textView1);
Button button = (Button)findViewById(R.id.button1);
}
}
3. res/layout/activity_main.xml
(1) Graphical Layout:
Android中有许多常用控件:
文本框:TextView、EditText
按钮:Button、RadioButton、CheckBox、ImageButton
列表:List、ExpandableListView、Spinner、AutoCompleteTextView、GridView、ImageView
进度条:ProgressBar、ProgressDialog、SeekBar、RatingBar
选择器:DatePicker、TimePicker
菜单:Menu、ContentMenu
对话框:Dialog、ProgressDialog
常用的控件有文本框、按钮和列表等。
控件的属性:可以直接在类中为控件设置属性,也可以在xml文件中设置属性。每个控件都有一系列的属性,例如id、size、text、color等等,大家可以找找API查看控件的属性。
(2)ativity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="lin.example.helloui.MainActivity"
tools:ignore="MergeRootFrame" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
4 运行
Console: Android
[20##-05-03 15:43:52 - HelloUI] ------------------------------
[20##-05-03 15:43:52 - HelloUI] Android Launch!
[20##-05-03 15:43:52 - HelloUI] adb is running normally.
[20##-05-03 15:43:52 - HelloUI] Performing lin.example.helloui.MainActivity activity launch
[20##-05-03 15:43:52 - HelloUI] Automatic Target Mode: launching new emulator with compatible AVD 'AVD_for_3_7_WVGA_Nexus_One'
[20##-05-03 15:43:52 - HelloUI] Launching a new emulator with Virtual Device 'AVD_for_3_7_WVGA_Nexus_One'
[20##-05-03 15:47:48 - HelloUI] New emulator found: emulator-5554
[20##-05-03 15:47:48 - HelloUI] Waiting for HOME ('android.process.acore') to be launched...
[20##-05-03 15:50:54 - HelloUI] HOME is up on device 'emulator-5554'
[20##-05-03 15:50:55 - HelloUI] Uploading HelloUI.apk onto device 'emulator-5554'
[20##-05-03 15:50:58 - HelloUI] Installing HelloUI.apk...
[20##-05-03 15:53:08 - HelloUI] Success!
[20##-05-03 15:53:09 - HelloUI] Starting activity lin.example.helloui.MainActivity on device emulator-5554
4、测试数据与实验结果
二,界面布局
1. 新建 ”Hellouib” 工程
2. MainActivity.java
package lin.example.hellouib;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textViewa = (TextView)findViewById(R.id.textView1);
TextView textViewb = (TextView)findViewById(R.id.textView2);
TextView textViewc = (TextView)findViewById(R.id.textView3);
TextView textViewd = (TextView)findViewById(R.id.textView4);
TextView textViewe = (TextView)findViewById(R.id.textView5);
TextView textViewf = (TextView)findViewById(R.id.textView6);
TextView textViewg = (TextView)findViewById(R.id.textView7);
TextView textViewh = (TextView)findViewById(R.id.textView8);
}
}
4. activity_main.xml:
(1)Graphical Layout:
(2)ativity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="lin.example.hellouib.MainActivity"
tools:ignore="MergeRootFrame" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="red"
android:gravity="center_horizontal"
android:background="#aa0000"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="green"
android:gravity="center_horizontal"
android:background="#00aa00"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="blue"
android:gravity="center_horizontal"
android:background="#0000aa"
android:layout_weight="1"/>
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="yellow"
android:gravity="center_horizontal"
android:background="#aaaa00"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row one"
android:textSize="15pt"/>
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row two"
android:textSize="15pt"/>
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row three"
android:textSize="15pt"/>
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="row four"
android:textSize="15pt"/>
</LinearLayout>
</LinearLayout>
4 运行
Console: Android
[20##-05-03 16:42:31 - Hellouib] ------------------------------
[20##-05-03 16:42:31 - Hellouib] Android Launch!
[20##-05-03 16:42:31 - Hellouib] adb is running normally.
[20##-05-03 16:42:31 - Hellouib] Performing lin.example.hellouib.MainActivity activity launch
[20##-05-03 16:42:31 - Hellouib] Automatic Target Mode: launching new emulator with compatible AVD 'AVD_for_3_7_WVGA_Nexus_One'
[20##-05-03 16:42:31 - Hellouib] Launching a new emulator with Virtual Device 'AVD_for_3_7_WVGA_Nexus_One'
[20##-05-03 16:43:10 - Emulator] emulator: emulator window was out of view and was recentered
[20##-05-03 16:43:10 - Emulator]
[20##-05-03 16:43:11 - Hellouib] New emulator found: emulator-5554
[20##-05-03 16:43:11 - Hellouib] Waiting for HOME ('android.process.acore') to be launched...
[20##-05-03 16:45:48 - Hellouib] HOME is up on device 'emulator-5554'
[20##-05-03 16:45:48 - Hellouib] Uploading Hellouib.apk onto device 'emulator-5554'
[20##-05-03 16:45:50 - Hellouib] Installing Hellouib.apk...
[20##-05-03 16:47:26 - Hellouib] Success!
[20##-05-03 16:47:26 - Hellouib] Starting activity lin.example.hellouib.MainActivity on device emulator-5554
[20##-05-03 16:47:31 - Hellouib] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=lin.example.hellouib/.MainActivity }
5、测试数据与实验结果
把锁往右滑动,得到:
5、结果分析与实验体会
移动互联网开发(Android)
实验报告
姓名: 万 思
学号: k081241139
专业: 计算机科学与技术
指导老师: 张华
完成日期: 20##-11-16
目 录
实验一 Android开发环境的搭建.................................................................................... 4
1 实验目的及要求.................................................................................................... 4
2 实验设备(环境)及要求...................................................................................... 4
3 实验内容............................................................................................................... 4
4 实验步骤............................................................................................................... 4
5 实验核心代码(关键代码),及调试中的问题....................................................... 4
6 实验的运行结果及分析.......................................................................................... 4
7 实验总结心得体会................................................................................................. 4
实验二 GUI创建套件Widget的使用.............................................................................. 4
1 实验目的及要求.................................................................................................... 4
2 实验设备(环境)及要求...................................................................................... 4
3 实验内容............................................................................................................... 4
4 实验步骤............................................................................................................... 4
5 实验核心代码(关键代码),及调试中的问题....................................................... 4
6 实验的运行结果及分析.......................................................................................... 4
7 实验总结心得体会................................................................................................. 5
实验三 SQLite应用......................................................................................................... 5
1 实验目的及要求.................................................................................................... 5
2 实验设备(环境)及要求...................................................................................... 5
3 实验内容............................................................................................................... 5
4 实验步骤............................................................................................................... 5
5 实验核心代码(关键代码),及调试中的问题....................................................... 5
6 实验的运行结果及分析.......................................................................................... 5
7 实验总结心得体会................................................................................................. 5
实验四 获取手机剩余电量............................................................................................... 5
1 实验目的及要求.................................................................................................... 5
2 实验设备(环境)及要求...................................................................................... 5
3 实验内容............................................................................................................... 5
4 实验步骤............................................................................................................... 5
5 实验核心代码(关键代码),及调试中的问题....................................................... 5
6 实验的运行结果及分析.......................................................................................... 6
7 实验总结心得体会................................................................................................. 6
实验五 网络访问与服务................................................................................................... 6
1 实验目的及要求.................................................................................................... 6
2 实验设备(环境)及要求...................................................................................... 6
3 实验内容............................................................................................................... 6
4 实验步骤............................................................................................................... 6
5 实验核心代码(关键代码),及调试中的问题....................................................... 6
6 实验的运行结果及分析.......................................................................................... 6
7 实验总结心得体会................................................................................................. 6
实验六 Service的使用.................................................................................................... 6
1 实验目的及要求.................................................................................................... 6
2 实验设备(环境)及要求...................................................................................... 6
3 实验内容............................................................................................................... 6
4 实验步骤............................................................................................................... 6
5 实验核心代码(关键代码),及调试中的问题....................................................... 7
6 实验的运行结果及分析.......................................................................................... 7
7 实验总结心得体会................................................................................................. 7
实验一 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,配置环境变量,如果所示。
5 实验核心代码(关键代码),及调试中的问题
1.MainActivity.java
package com.example.app;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button button;
private myapp ma;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
ma=(myapp)getApplication();
ma.setName("张处处");
Intent intent=new Intent(MainActivity.this,other.class);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2.myapp.java
package com.example.app;
import android.app.Application;
import android.os.Bundle;
public class myapp extends Application {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void onCreate() {
// TODO 自动生成的方法存根
super.onCreate();
setName("张三丰");
}
}
other.java
public class other extends Activity {
private TextView textview;
private myapp ma;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
textview=(TextView)this.findViewById(R.id.text);
ma=(myapp)getApplication();
textview.setText("---->appname"+ma.getName());
}
}
6 实验的运行结果及分析
7 实验总结心得体会
掌握了搭建Android开发环境的方法,掌握了Android模拟器的基本操作,如设置选择语言,切换外观和横屏显示。能独立的搭建Android的开发环境,并且测试新的项目成功。通过intent意图以及监听器来实现两个Activity之间的数据传递。
实验二 GUI创建套件Widget的使用
1 实验目的及要求
1.掌握资源编辑器、布局编辑器的使用
2.掌握按钮、编辑框、日期时间、对话框、下拉列表等主要widget组件编程
2 实验设备(环境)及要求
1)PC计算机
2)JDK安装包
3)Eclipse安装包
4)Android SDK安装包
5)ADT插件
3 实验内容
1.设计按钮、复选框、单选按钮、普通按钮、单机按钮弹出对话框。
2.设计单项自动提示文本框、多项自动提示文本框、下拉列表。
4 实验步骤
1.新建项目Button/Edit,在res/layput中修改布局文件main.xml
2.编辑Activity程序文件ButtonActivity
3.继承Dialog类,新建自定义的对话框类DialogPro.java
5 实验核心代码(关键代码),及调试中的问题
6 实验的运行结果及分析
7 实验总结心得体会
这次实验学会了对话框以及单选按钮,多选按钮等技术,在里面也遇到一些错误提示如模拟器启动不成功等,根据错误提示很快可以解决。
实验三 SQLite应用
1 实验目的及要求
1.进一步掌握GUI应用
2.掌握shared Preference应用
2 实验设备(环境)及要求
1)PC计算机
2)JDK安装包
3)Eclipse安装包
4)Android SDK安装包
5)ADT插件
3 实验内容
1.新建项目SharedPreference,设计一个GUI界面。
2.设计按钮响应代码,保存按钮界面输入信息保存于Shared Preference共享文件
3.退出应用程序或关机时自动保存界面信息到共享文件
4 实验步骤
1.新建项目SharedPreference,在res中新建value-zh文件夹,在res/values-zh/string.xml中增加字符串资源,strings.xml.
2.Res\layout中修改布局文件main.xml
3.编辑Activity程序文件SharedPreference.java
5 实验核心代码(关键代码),及调试中的问题
6 实验的运行结果及分析
7 实验总结心得体会
实验四 获取手机剩余电量
1 实验目的及要求
1、学习 Android API 的使用方法,掌握硬件 API 调用方法。
2、掌握使用 BroadcastReceiver 取得电池计量信息的方法。
3、掌握使用 IntentFilter 来进行消息过滤。
2 实验设备(环境)及要求
1)PC计算机
2)JDK安装包
3)Eclipse安装包
4)Android SDK安装包
5)ADT插件
3 实验内容
1.Android API 中的 BroadcastReceiver(Android.content.BroadcastReceiver)类似 Button 的Listener,当注册 Receiver 后,会在后台等待其他程序的调用,当指定要捕捉的 Action 发生时,就会调用 Receiver,运行 onReceive()里面实现的程序。
2.本实验运用 BroadcastReceiver()的特性来实现取得手机电池计量的程序;在本实验中,将通过注册 BroadcastReceiver 时设置的 IntentFilter (Android.content.IntentFilter)来捕捉系统发出的 Intent. ACTION_BATTERY_CHANGED 这个 Action,再以此取得手机电池的计量结果。
4 实验步骤
1、在主程序中创建一个 BroadcastReceiver 对象,在触发 Button 的 onClick 事件时,向系统注册 BroadcastReceiver,通过 IntentFilter 的设置来告诉 BroadcastReceiver 要过滤的
2、Action Message 为 Intent.ACTION_BATTERY_CHANGED(电池电量变化时广播信息)。
3、当 Button 被单击时,注册的 BroadcastReceiver 捕捉到
Intent.ACTION_BATTERY_CHANGED 这个 Action,我们即可以取得手机电池电量,并显示与 AlertDialog 中。
5 实验核心代码(关键代码),及调试中的问题
6 实验的运行结果及分析
7 实验总结心得体会
实验五 网络访问与服务
1 实验目的及要求
1、了解手机WEB网站访问的编程方法
2、通过网络进行数据访问
2 实验设备(环境)及要求
1)PC计算机
2)JDK安装包
3)Eclipse安装包
4)Android SDK安装包
5)ADT插件
3 实验内容
4 实验步骤
项目界面:使用HttpClient来提交或者获取server端的数据。
5 实验核心代码(关键代码),及调试中的问题
6 实验的运行结果及分析
7 实验总结心得体会
实验六 Service的使用
1 实验目的及要求
1. 了解基于位置的服务和模拟位置提供器;
2. 学会使用模拟器来测试定位服务。
2 实验设备(环境)及要求
1)PC计算机
2)JDK安装包
3)Eclipse安装包
4)Android SDK安装包
5)ADT插件
3 实验内容
4 实验步骤
5 实验核心代码(关键代码),及调试中的问题
6 实验的运行结果及分析
7 实验总结心得体会
本科实验报告课程名称实验项目实验地点专业班级学生姓名指导教师Android设计与开发Android课程实验学号年月日太原理工大学学…
报告编号第5组综合课程设计报告基于Android平台的记事本的设计与实现学生姓名指导教师所在系电子工程系所学专业计算机科学与技术班…
实验报告课程名称手机应用开发实验名称Android实验院系信息与控制工程学院专业班级姓名学号指导教师20xx年月日实验一一实验名称…
南昌航空大学实验报告二0一三年一月六日课程名称移动终端编程技术实验名称Android组件通信和后台服务班级姓名同组人指导教师评定签…
学校开展爱国卫生宣传活动工作总结岐山县第三初级中学20xx年x月x日学校开展爱国卫生宣传活动工作总结20xx年x月份是我国第二十五…
瞿鹏的十年大庆总结十年大庆圆满结束的那一刻,我觉得我们半年的努力和辛苦终于换回了令人满意的成绩。十年大庆是对我们的一次重要考验,其…
红政法[20xx]24号政法委开展“一帮一联、双挂双创”活动总结20xx年以来,我委认真贯彻落实《红寺堡开发区关于在基层党组织和党…
时光飞逝转眼又到了年底,回顾即将过去的一年里经历了很多,也感悟到很多。首先感谢公司领导和店内同事在这一年里帮助与支持,自己才能更好…
十里铺镇中心幼儿园第一学期大班科学教学工作总结单位:陕西省山阳县十里铺镇中心幼儿园姓名:赵佩红《幼儿园指导纲要》明确指出:幼儿教育…