安卓实验4
Android实验报告22个

<<Web开发技术>>大作业设计题目:Web开发技术实验学院:专业:班级:1班2班姓名:学号:2姓名:学号:2姓名:学号:2姓名:学号:22015年月日山东科技大学实验一页面跳转一、实验目的通过使用Java语言,在Android环境下实现页面跳转,加深对Android开发的理解。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.新建项目工程android,框线部分为整个项目要完成的代码和配置部分:2.拖拽button和textfield到activity_index.xml画布上,位置如图:3.编写代码Index.java划线部分的代码:4.Scancode.java接收片段代码,拖拽一个text field接收:5.查看修改android Manifest.xml文件,如下图:四、实验结果实验二URI跳转一、实验目的实现URI跳转即百度链接跳转,加深对Android开发的理解,为后面的学习奠定基础。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.新建activity: Summary.java:2.添加页面及代码:四、实验结果1.完成页面如图:2.跳转至百度页面所示如图:实验三TextView超链接一、实验目的添加TextView超链接,加深对Android开发所使用控件的理解,全面掌握Android开发所使用的各种控件。
二、实验环境:Windows8.1 64位系统+ Android Developer Tools三、实验步骤:1.打开Form Widgets,将TextView拖到画布上:四、实验结果所添加的TextView超链接如图所示:实验四TextView改变样式一、实验目的改变TextView样式,对控件进行更进一步的修改,全面掌握Android开发过程中的页面布局。
Android实验报告

Android实验报告专业:计算机科学与技术班级:学号:1341901124姓名:武易2016年11月28日实验一Activity 生命周期一、实验目的Android 生命周期是从程序启动到程序终止的过程。
通过本次实验深入理解Android 系统管理生命周期的必要性,并以Activity 为例说明Android 系统是如何管理程序组件的生命周期。
二、实验设备1、硬件设备系统类型:Win7 版本32 位,处理器:Intel(R)Core(TM)i3-2350M CPU@2.30GHz 2.30GHz 安装内存(RAM):8.00GB2、软件设备Win7 操作系统、Eclipse、JDK、Android SDK、ADT三、实验内容1、实验要求观察Activity的生命周期。
2、详细设计package com.example.activitylifecycle;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;public class MainActivity extends ActionBarActivity {private static String TAG="LIFECYCLE";@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);Log.i(TAG,"(1) onCreate()");Button button=(Button)findViewById(R.id.button1);button.setOnClickListener(new View.OnClickListener(){public void onClick(View view){finish();}});}@Overridepublic void onStart(){super.onStart();Log.i(TAG,"(2) onStart()");}@Overridepublic void onRestoreInstanceState(Bundle savedInstanceState){ super.onRestoreInstanceState(savedInstanceState);Log.i(TAG,"(3) onRestoreInstanceState()");}@Overridepublic void onResume(){super.onResume();Log.i(TAG,"(4) onResume()");}@Overridepublic void onSaveInstanceState(Bundle savedInstanceState){ super.onSaveInstanceState(savedInstanceState);Log.i(TAG,"(5) onSaveInstanceState()");}@Overridepublic void onRestart(){super.onRestart();Log.i(TAG,"(6) onRestart()");}@Overridepublic void onPause(){super.onPause();Log.i(TAG,"(7) onPause()");}@Overridepublic void onStop(){super.onStop();Log.i(TAG,"(8) onStop()");}@Overridepublic void onDestroy(){super.onDestroy();Log.i(TAG,"(9) onDestroy()");}/*@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);}*/@Overridepublic 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}3、结果显示实验二用户界面控件一、实验目的用户界面是应用程序开发的重要组成部分,决定了应用程序是否美观、易用。
Android课程实验报告

Android课程实验报告实验题目:实现一个简单的Android计算器应用实验目的:通过实现一个简单的Android计算器应用,掌握Android 应用的开发流程和常用控件的使用方法。
一、实验要求1. 实现一个包含加减乘除四则运算功能的Android计算器应用。
2.应用界面至少包含一个显示结果的文本框和15个按钮(包括数字按钮0-9、小数点按钮“.”、加减乘除按钮和等号按钮“=”)。
3. 按钮点击事件的处理采用Lambda表达式实现。
二、实验过程1. 创建一个新的Android项目,并在activity_main.xml文件中添加一个显示结果的文本框(TextView)和15个按钮(Button)。
2. 在MainActivity.java文件中,通过findViewById(方法获取文本框和按钮的实例。
3. 使用Lambda表达式为按钮注册点击事件的处理程序,在处理程序中根据按钮的ID执行相应的操作。
4. 使用StringBuilder类来拼接用户输入的数字和运算符,并将结果显示在文本框中。
三、实验代码1. activity_main.xml```xmlandroid:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"><TextViewandroid:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="10dp" android:textSize="20sp"android:textStyle="bold"android:textAlignment="center" /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content" android:layout_weight="1"android:text="0" /><!--其他按钮的布局与此类似,省略--> <Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="." /><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="=" /></RelativeLayout>```2. MainActivity.java```javaprivate TextView resultTextView;private StringBuilder expression;protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(yout.activity_main); resultTextView = findViewById(R.id.resultTextView);Button btn0 = findViewById(R.id.btn0);Button btn1 = findViewById(R.id.btn1);//其他按钮的初始化与此类似,省略Button btnDot = findViewById(R.id.btnDot);Button btnEq = findViewById(R.id.btnEq);expression = new StringBuilder(;btn0.setOnClickListener(v -> expression.append("0"));btn1.setOnClickListener(v -> expression.append("1"));//其他按钮的点击事件注册与此类似,省略btnDot.setOnClickListener(v -> expression.append(".")); btnEq.setOnClickListener(v ->double result = evaluateExpression(expression.toString(); resultTextView.setText(String.valueOf(result));});}private double evaluateExpression(String exp)//解析并计算表达式的值//省略}```四、实验结果和分析通过运行实验代码,可以在模拟器或真机上打开一个包含加减乘除四则运算功能的Android计算器应用。
安卓程序实验报告(3篇)

第1篇一、实验目的1. 熟悉安卓开发环境及工具的使用。
2. 掌握安卓应用程序的基本开发流程。
3. 学习安卓界面设计、布局、事件处理等基本技能。
4. 提高编程能力及团队协作能力。
二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.53. 编程语言:Java4. 虚拟机:Android 9.0 (Pie)三、实验内容1. 创建安卓项目2. 设计界面3. 编写功能代码4. 测试与调试四、实验步骤1. 创建安卓项目(1)打开Android Studio,点击“Start a new Android Studio project”;(2)选择“Empty Activity”模板,点击“Next”;(3)输入项目名称、保存位置等信息,点击“Finish”;(4)在项目目录中,找到MainActivity.java文件,修改其中的代码,以实现特定功能。
2. 设计界面(1)打开res/layout/activity_main.xml文件;(2)使用布局编辑器设计界面,添加控件(如Button、EditText等);(3)设置控件的属性(如文本、颜色、大小等)。
3. 编写功能代码(1)在MainActivity.java文件中,编写代码实现功能;(2)例如,编写按钮点击事件,实现数据计算、页面跳转等操作。
4. 测试与调试(1)在Android Studio中,点击“Run”按钮,启动模拟器或连接真机进行测试;(2)观察程序运行效果,如有问题,进行调试;(3)根据需要,修改代码,直至程序正常运行。
五、实验结果与分析1. 实验结果本次实验成功创建了一个安卓应用程序,实现了简单的功能,如按钮点击事件、页面跳转等。
2. 实验分析(1)在创建安卓项目时,熟悉了Android Studio的使用,掌握了项目结构及文件管理方法;(2)在设计界面时,学会了使用布局编辑器,掌握了常用控件的属性设置;(3)在编写功能代码时,学习了Java编程语言的基本语法,掌握了事件处理及页面跳转等操作;(4)在测试与调试过程中,提高了问题定位及解决能力。
安卓开发实验报告

安卓开发实验报告
《安卓开发实验报告》
在当今移动互联网时代,安卓系统已经成为全球最流行的移动操作系统之一。
作为开发者,了解安卓开发的基本原理和技术是至关重要的。
在本次实验中,我们将深入探讨安卓开发的相关知识,并对其进行实际操作和应用。
首先,我们需要了解安卓开发的基本概念和原理。
安卓应用是使用Java编程语言和安卓软件开发工具包(SDK)来开发的。
安卓应用通常由多个组件组成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供者(Content Provider)。
这些组件共同构成了安卓应用的基本架构,开发者需要对其进行深入理解和掌握。
其次,我们需要学习如何使用安卓开发工具包(SDK)进行应用程序的开发和调试。
安卓开发工具包提供了丰富的开发工具和资源,包括安卓设备模拟器、调试器、内存分析器等。
通过使用这些工具,开发者可以更加高效地进行应用程序的开发和调试工作。
在实验中,我们还将学习如何创建一个简单的安卓应用,并对其进行实际操作和调试。
通过这个实验,我们可以更加深入地了解安卓应用的开发流程和技术要点,为今后的安卓开发工作打下坚实的基础。
总的来说,安卓开发是一个非常重要且有趣的领域,通过本次实验,我们将深入了解安卓开发的基本原理和技术,并对其进行实际操作和应用。
希望通过这次实验,能够对安卓开发有一个更加全面和深入的了解,为今后的安卓开发工作奠定坚实的基础。
Android实验报告

Android实验报告一.实验目的1.掌握Android项目中界面显示的基本方法;2.了解Android手机硬件API的调用方法;3.了解Android系统的资源存储结构;4.在Android平台下音乐播放器的设计开发二.实验环境计算机安装AndroidSDK,Eclipse,Android模拟器三.实验过程1、建立Android工程2、在res -> layout -> main.xml中设置程序界面3、主界面musicActivity设计。
大致的流程是调用父类onCreat函数,隐藏标题栏,设置布局,寻找布局控件,初始化应用,刷新播放列表,绑定监听器,启动服务。
代码如下:关键代码讲解设置布局函数setView()中,先初始化ListView、GridView,完毕后再将其添加到viewPager中从而可以进行滑动切换显示。
代码如下:(图1)图1播放音乐的函数playMusic(String path)函数中的参数为歌曲的路径(包含歌曲的文件名和后缀),返回类型为空,它的作用就是播放该路径的歌曲并且有一个播放完毕的监听器。
所有的歌曲控制指令都写在musicActivity中,Service本身并不负责对歌曲列表的操作,所以,如果播放完毕,则给musicActivity一个切换歌曲的指令。
代码如下:(图2)图2实现歌曲播放的暂停,上一首,下一首,停止等功能。
代码如下:(图3,图4)图3图4四.实验总结通过这次Android播放器的设计,让我更加深一步的了解到Android这门课程的用处与意义。
通过这次程序设计是我自己的Android基础有了更加深入的了解,使自己的知识更加的牢固。
如今社会Android手机的发展可谓是蒸蒸日上,Android技术人员的稀缺,更加使我们这些学习Android技术的人看到的大好的未来。
促使我更加努力的学习Android技术。
五.分工musicActivity的编写以及数据库的建立,同时负责软件后期的调试和修改;Android实验报告班级:计应1301姓名:焦强学号:20139009。
重庆交通大学安卓实验报告册(含实验题目)

重庆交通大学学生实验报告实验课程名称移动互联APP开课实验室学院年级专业班学生姓名学号指导教师陈禾开课时间2017 至2018 学年第 1 学期实验内容题目与报告(界面设计,程序代码和运行结果)1、在自己的笔记本电脑中安装Android Studio.2、创建一个Hello world的程序3、为安装的Android Studio配置自己熟悉的快捷键和操作页面。
4、新建一个Hello world工程,实现生成APK,并为APP重新设计一个启动图标报告内容(界面设计,程序代码和运行结果)1、在Android studio上新建一个project,在一个Activity用三种显示Intent打开另一个Activity。
并练习采用隐示Intent方式打开一个Activity2、设计一个APP实现以下功能:1)界面如图所示2)实现学生信息的输入和添加3)点击提交按钮后,将输入的信息,显示在另一个Activity3、设计一个APP,能实现一个简单的电话拨号,短信发送,照相机调用,地图打开的功能。
1)可以从另一个Activity中获得的不同的电话号码,实现电话拨打。
2)可以打开相机拍照后,显示在图片框3)可以发送短信4)界面如图所示4、完成以下四个UI界面的设计5、用TextView完成如图所示的图文混排6、完善实验2功能,是现实的输入信息的字符校验和输入提示功能的。
7 通过引入样式,写成各种效果的按钮,最少2种?为按钮增加触摸,点击事件,并实现不同的变化效果8、通过CheckBox和radioButton完善实验2功能。
9、熟悉seekBar的使用10、实现以下CheckBox和radioButton的效果(选作)11、利用http方式下载一张图片(选作),用seekBar实现图片的缩放和图片的旋转。
12、利用下载多张图片(选作),在图形切换控件中轮流显示,并有慢进慢出的动画效果。
实验项目报告书1.完成一个学生信息录入系统,录入学生的信息,并通过列表显示。
安卓课程设计实验过程

安卓课程设计实验过程一、教学目标本课程的教学目标是使学生掌握Android应用程序开发的基本流程和技能,能够独立完成简单的Android应用程序开发。
具体目标如下:1.了解Android操作系统的基本原理和架构。
2.掌握Java编程语言的基本语法和面向对象编程思想。
3.熟悉Android开发环境的使用和基本的开发工具。
4.掌握Android应用程序的生命周期和界面布局。
5.了解Android应用程序的存储和网络通信。
6.能够使用Android Studio进行应用程序开发。
7.能够编写基本的Java代码和Android界面布局。
8.能够进行Android应用程序的打包和调试。
9.能够使用Android SDK进行应用程序的测试和优化。
10.能够独立完成简单的Android应用程序开发。
情感态度价值观目标:1.培养学生的创新意识和解决问题的能力。
2.培养学生的团队合作精神和沟通能力。
3.培养学生对新技术的敏感性和持续学习的意识。
二、教学内容本课程的教学内容主要包括Android操作系统的基本原理和架构、Java编程语言的基本语法和面向对象编程思想、Android开发环境的使用和基本的开发工具、Android应用程序的生命周期和界面布局、Android应用程序的存储和网络通信等。
具体安排如下:1.Android操作系统的基本原理和架构。
2.Java编程语言的基本语法和面向对象编程思想。
3.Android开发环境的使用和基本的开发工具。
4.Android应用程序的生命周期和界面布局。
5.Android应用程序的存储和网络通信。
三、教学方法本课程的教学方法主要包括讲授法、案例分析法、实验法等。
通过多种教学方法的结合,激发学生的学习兴趣和主动性,提高学生的实践能力和创新能力。
具体安排如下:1.讲授法:通过讲解和演示,使学生了解Android操作系统的基本原理和架构、Java编程语言的基本语法和面向对象编程思想、Android开发环境的使用和基本的开发工具等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三Android基本组件交互实验一、实验目的本实验是Android基本组件实验,主要针对Activity、Service和Receiver实现和使用方法。
通过实验使学生掌握Activity的跳转、Service的启动停止以及Receiver的接受等。
二、实验要求◆使得学生熟悉Activity、Service和BroadCast基本使用;◆使得学生掌握短信接收实现和使用;◆使得学生掌握界面跳转基本原理和使用方法;◆使得学生掌握服务和广播的基本机制。
三、实验仪器Android环境的Eclipse四、实验原理1.Activity跳转startActivity——跳转到目标页面,参数为Intent;startActivityForResult ——跳转到下一个Activity,而当这个Activity被关闭以后,自动跳转前一个Activity,并调用onActivityResult( )方法,参数为Intent和requestcode2.IntentAndroid基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent 提供了一种通用的消息系统,将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成Android各个组件之间的通讯。
Intent属性:⏹Action ,对执行动作的描述,在Intent类中定义了一些字符串常量作为标准动作;⏹data ,是对执行动作所要操作的数据的描述,Android中采用URI来表示数据;例:VIEW_ACTION content://contacts/1表示显示标识符为”1″的联系人的详细信息。
⏹catagory 类别,是被执行动作的附加信息;⏹extra 附加信息,除了data之外,还可以通过extra附加信息,extra属性使用Bundle类型进行数据传递;⏹component 组件,显式指定Intent的目标组件的名称;⏹type 数据类型,显式指定Intent的数据类型;3.Service组件Service一般由一个Activity或其他Context对象来启动,当启动Service之后,该Service将会在后台运行,及时启动这个Service的Activity或其他组件的生命周期已经结束,Service仍然会继续运行,直到自己的生命周期结束为止。
每个Service都应该在ndroidManifest.xml中进行声明。
Service的启动方式有两种,对应的生命周期也各不相同。
通过startService方法启动。
当系统调用startService方法,如果该Service还未启动,则依法调用其onCreate方法和onStart方法来启动。
当其他Context对象调用stopService方法、Service调用自身的stopSelf或stopService方法时才会停止Service 的执行。
通过bindService方法启动。
当系统调用bindService方法时,如果该Service未启动,则会调用onCreate方法完成初始化工作,然后会将该Service和Context对象(如Activity)进行绑定,当被绑定的Context对象被销毁时,与之绑在一起的Service也会停止运行。
4.Broadcast Receiver组件Broadcast Receiver同Service一样,并不提供与用户交互的表示层,其实是一种负责接收广播消息并对消息作出反应的组件。
在Android的系统中就存在许多这样的广播,比如电池电量过低或信号过低时,系统就会发出广播进行通知。
应用程序如果需要响应某一个广播消息,应该注册对应的BroadcastReceiver对象,该对象继承自BroadcastReceiver类,该类位于android.content包。
这样一来当系统或另外的应用程序发出特定广播时,该应用程序就可以接受并做出回应,如启动Activity等。
接受广播的时候就需要通过IntentFilter对象来进行过滤。
BroadcastReceiver的生命周期比较简单,其只有一个回调方法--onReceiver,该方法在应用程序接受到发给自己的广播的时候调用,所以BroadcastReceiver的使用方法也相对简单,只需要对onReceive 方法进行合理重写,在适当的地方注册该BroadcastReceiver即可。
注册BroadcastReceiver对象的方式有以下两种。
在AndroidMannifest.xml文件中声明。
注册信息包裹在<receiver></receiver>标签中,并在<intent-filter>标签内设定过滤规则。
在代码中创建并设置IntentFilter对象。
该IntentFilter对象包含了对广播的过滤规则,然后在需要的地方调用Context.registerReceiver方法和Context.unregisterReceiver方法进行注册和取消注册,如果采用这种方式注册的话,当Context对象被销毁时,该BroadcastReceiver也就不复存在了。
五、实验内容1. 接收短信、开启和停止服务的界面布局;2. 实现短信接收服务;3. 接收广播信息。
六、实验过程及代码1 布局文件2 配置文件3 Activity4 服务5 BroadcastReceiver相关代码:MainActivity.javapackage com.example.sy42;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 {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button bt1=(Button)findViewById(R.id.btn1);bt1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent("com.example.sy42.SMSService");Toast.makeText(getBaseContext(), "已启动Service", Toast.LENGTH_LONG).show();startService(intent);//启动服务}});Button bt2=(Button)findViewById(R.id.btn2);bt2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent("com.example.sy42.SMSService");Toast.makeText(getBaseContext(), "已停止Service", Toast.LENGTH_LONG).show();stopService(intent);//停止服务}});}}SMSService.javapackage com.example.sy42;import android.app.Service;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.IBinder;import android.widget.Toast;public class SMSService extends Service{private static BCReceiver bcReceiver;//Context context;static String SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED";public SMSService() {// TODO Auto-generated constructor stub}private void registerReceiver(BCReceiver bcReceiver2, IntentFilter filter) { // TODO Auto-generated method stub}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();bcReceiver = new BCReceiver();IntentFilter filter = new IntentFilter();filter.addAction(SMS_ACTION);//context=getApplicationContext();SMSService.this.registerReceiver(bcReceiver,filter);System.out.println("Service create!");//Toast.makeText(context, "Service start!", 5000).show();}@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}}BCReceiver.javapackage com.example.sy42;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import .Uri;import android.os.Bundle;import android.telephony.SmsManager;import android.telephony.SmsMessage;import android.widget.Toast;public class BCReceiver extends BroadcastReceiver{StringBuilder builder = new StringBuilder();public BCReceiver() {// TODO Auto-generated constructor stub}@Overridepublic void onReceive(Context arg0, Intent arg1) {// TODO Auto-generated method stubSystem.out.println("SMS Received!");Intent intent = null;Bundle bundle = intent.getExtras();//读取短消息的标签pdusObject[] myOBJpdus = (Object[])bundle.get("pdus");SmsMessage[] messages = new SmsMessage[myOBJpdus.length];for(int i = 0; i<myOBJpdus.length; i++){messages[i] = SmsMessage.createFromPdu((byte[]) myOBJpdus[i]);builder.append(messages[i].getDisplayMessageBody());}System.out.println(builder);Context context = null;Intent smsintent = new Intent(context,MainActivity.class);smsintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);smsintent.putExtra("SMS", builder.toString());context.startActivity(smsintent);builder.setLength(0);//回传消息String sender = messages[0].getOriginatingAddress();System.out.println(sender+"");SmsManager manager = SmsManager.getDefault();manager.sendTextMessage(sender, null, "Hello World!", null, null);Toast.makeText(context, "Message has been sent", 5000).show();//回拨电话Intent intentcall=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+sender));intentcall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intentcall);}}Strings.xml<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">sy4</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="nosms">message</string><string name="btn1">start</string><string name="btn2">stop</string></resources>activity_main.xml<RelativeLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/nosms"/><Buttonandroid:id="@+id/btn2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignLeft="@+id/tv"android:layout_below="@+id/tv"android:layout_marginTop="78dp"android:text="@string/btn2"/><Buttonandroid:id="@+id/btn1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignLeft="@+id/btn2"android:layout_below="@+id/tv"android:layout_marginTop="17dp"android:text="@string/btn1"/></RelativeLayout>AndroidManifest.java<?xml version="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.example.sy42"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="18"/><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"><activityandroid:name="com.example.sy42.MainActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN"/><categoryandroid:name="UNCHER"/></intent-filter></activity><!-- <receiver android:name=".BCReceiver"><intent-filter><action android:name="android.intent.action.EDIT"/> </intent-filter></receiver>--><service android:name=".SMSService"><intent-filter><action android:name="com.example.sy42.SMSService"/> </intent-filter></service></application><uses-permissionandroid:name="android.permission.RECEIVE_SMS"/><uses-permission android:name="android.permission.SEND_SMS"/> <uses-permission android:name="android.permission.CALL_PHONE"/> </manifest>运行结果:点击start按钮之后:同时在log窗口中可以看到:点击stop按钮后:同时在log窗口中可以看到:在DDMS中点击发送短信:接收信息:回传消息:回拨电话:七、实验心得。