收藏 分销(赏)

嵌入式系统开发实验报告.doc

上传人:a199****6536 文档编号:4136969 上传时间:2024-07-31 格式:DOC 页数:58 大小:3.69MB 下载积分:14 金币
下载 相关 举报
嵌入式系统开发实验报告.doc_第1页
第1页 / 共58页
嵌入式系统开发实验报告.doc_第2页
第2页 / 共58页


点击查看更多>>
资源描述
计算机学院 实 验 报 告 课程名称: 嵌入式系统开发 专 业: 软件工程 班 级: 122002 学 号: 201220040224 姓 名: 郑鑫 2015年 12 月 19 日 实验室名称: 计算机实验室 实验机器号: 实验分组: 无 实验时间: 2015年 9月25日 指导教师: 时振涛 实验一:Android 开发环境搭建及调试 一、实验目的和要求 1. 掌握Android环境搭建方法,创建第一个Android应用程序HelloWorld,熟练掌握设置环境参数 2. 了解Android SDK的目录结构、Android应用程序的程序结构 3. 创建一个AVD,设置Android模拟器,并会操作Android模拟器 4. 使用命令行工具管理模拟器  5. 熟悉Android的调试工具DDMS,掌握Logcat的使用方法。 二、实验原理: 1. 利用电脑搭建安卓开发环境 2. 设置Android模拟器 3. 使用命令行工具管理模拟器  4. 操作Android模拟器 5. 使用运行(Run)模式运行  三、实验设备: 1. PC计算机   2. JDK安装包 3. Eclipse安装包 4. Android SDK安装包   5. ADT插件 四、实验内容 初步了解android project建立过程以及如何运行模拟器,对android的运行原理进行简单了解; 1.搭建配置Eclipse+Android开发环境 2.创建一个简单的”Helloworld”工程 3.设置Android模拟器:创建新的模拟器 4.用命令行工具执行如下操作实现文件操作和管理模拟器:  l 拷贝文件到手机内存:adb push 源文件 [/位置/目标文件] l 拷贝手机文件到电脑上:adb pull [源文件] [目标文件] l 修正:adb kill-server l 重启:adb start-server l 把电脑上某个应用(.apk)文件部署到模拟器或手机中: adb install 文件名.apk l 卸载手机上的程序:adb uninstall [包名] l 查看当前的targets:android list targets l 创建一个AVD,要求:名字:Hphone目标平台:Android2.3.2 SD容量:100M位置:c:\test外观:WQVGA android create avd –target 1 –n Hphone –c 100M –p c:\test –s WQVGA l 列表显示当前所有AVD:android list avd l 运行刚刚建立的AVD:emulator –avd Hphone l 删除一个已存在的模拟器:android delete avd –n Hphone 5.使用运行(Run)模式运行:设置“Run Configuration…”选项 6.练习操作DDMS工具 五、实验步骤和方法 1、下载JDK1.8 2、官方下载Eclipse,解压Eclipse 3、官方下载Android SDK(工具)并解压 4、运行SDK Manager.exe,下载需要的SDK版本和API 5、设置Android环境变量 Android_SDK_Home:安装路径 增加自动搜索路径环境变量: %ANDROID_SDK_Home%\tools:%ANDROID_SDK_Home %\platform_tools: 6、安装ADT过程:Help->install.newsoforms->add->……->next-> ……end。 7、设置Eclipse中的SDK配置 8、创建AVD 9、创建Android应用 10、运行Android应用。 六、实验数据记录: 1. MainActivity.java:    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);  }} 2. activity-main.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.example.activity_demo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.activity_demo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 七、测试数据与运行结果及其分析:安装Eclipse,并试验软件是否可用,测试通过,可以用来搭建工程。 八、实验总结和体会 这个实验的主要目的是搭建Android 的开发环境,这是学习安卓的第一步,在搭建过程中有很多细节要注意,例如环境变量,还是挺考验细心程度的。在升级Android版本的时候可能会遇到网络问题,需要在avd manager中进行设置,详细步骤在百度中查阅。 实验室名称: 计算机实验室 实验机器号: 实验分组: 无 实验时间: 2015.10.8 指导教师: 时振涛 实验二:Activity 生命周期程序设计 一、 实验目的和要求 使学生深入了解Android组件的生命周期中各状态的变化关系。通过程序设计,掌握Activity的三种生命周期:全生命周期、可视生命周期和活动生命周期;每种生命周期中包含的不同的事件回调函数,以及它们的作用和调用顺序,深入理解Activity的生命周期过程。    二、 实验设备 计算机(安装有Android的开发环境Eclipse)  三、 实验内容 1.实现教材中的项目:建立一个新的Android工程,工程名称:Chp02_ActivityLife,包名称:com.NewActivity,实现两个Activity:NewActivity和SecondActivity。通过观察Logcat中的记录,观察Activity生命周期中事件回调函数的执行过程,并根据下图,解释不同的事件回调函数在Activity的三种生命周期的作用如何。 2.建立一个新的Android工程,工程名称:Chp02_ActivityLife2,包名称:com.NewActivity,实现三个Activity:MainActivity、SecondActivity和ThirdActivity。MainActivity界面如下图所示,实现MainActivity到SecondActivity和ThirdActivity的跳转。 将AndroidManifest.XML文件中的多个activity都设置为android.intent.action.MAIN和android.intent.category.LAUNCHER,看看会有什么结果,是谁最先启动的?如果在某个activity中不添加android.intent.action.MAIN再看看会有什么影响吗?从中得出什么结论? 四、 实验步骤和方法 1. 建立新的Android工程。 2. 通过在生命周期函数中添加“System.out.println”或“日志点Log.e”的方法进行调试  3. 为了显示结果易于观察和分析,在LogCat设置过滤器 4. 在程序运行过程,通过点击模拟器上的“返回键”和主键等,在Logcat中观察生命周期中事件回调函数的执行顺序及作用: onSaveInstanceState()→onPause()→onStop()→onRestart()→onStart()→onResume() 5. 按桌面键 在Logcat中观察生命周期:onPause()->onSaveInstanceState()->onStop(); 6. 记录实验结果并分析 五、 实验数据记录 1.MainActivity.java package com.sunwei.study; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override protected void onStop() { super.onStop(); Log.d("TAG", "Main-OnStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.d("TAG", "Main-onDestroy"); } @Override protected void onStart() { super.onStart(); Log.d("TAG", "Main-onStart"); } @Override protected void onPause() { super.onPause(); Log.d("TAG", "Main-onPause"); } @Override protected void onRestart() { super.onRestart(); Log.d("TAG", "Main-onRestart"); } } 2.SecondActivity.java package com.sunwei.study; public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } @Override protected void onStop() { super.onStop(); Log.d("TAG", "Second-OnStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.d("TAG", "Second-onDestroy"); } @Override protected void onStart() { super.onStart(); Log.d("TAG", "Second-onStart"); } @Override protected void onPause() { super.onPause(); Log.d("TAG", "Second-onPause"); } @Override protected void onRestart() { super.onRestart(); Log.d("TAG", "Second-onRestart"); } } 3.AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.sunwei.study" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:label="@string/title_activity_second" > </activity> <activity android:name=".ThirdActivity" android:label="@string/title_activity_third" > </activity> </application> </manifest> 六、 测试数据和实验结果及其分析 1. 应用初始界面如下图所示。 点击secondActivity按钮控制台输出如下信息; 点击物理菜单的返回键输出如下信息: 按桌面键输出如下信息: 2.应用程序初始界面如下: 七、 实验总结和体会 通过这个实验深刻体会到了Activity的生命周期和各个有关函数的执行顺序,只有掌握了这个才会在编写应用的时候应用自如。另外通过对AndroidMainfest.xml文件中intent-filter属性的设置了解了这个属性对应用的重要性。 实验室名称: 计算机实验室 实验机器号: 实验分组: 无 实验时间: 2015.10.19 指导教师: 时振涛 实验三:Intent、Activity应用 一、 实验目的和要求 本次实验的目的是让大家熟悉Intent和Activity的使用。了解Intent的组成、功能、解析机制和调用方法。掌握Intent传递数据的方法。 二、 实验原理 1. 通过Intent实现Activity之间的跳转; 在Android系统中,应用程序一般都有多个Activity, Intent可以帮助实现不同Activity之间的切换和数据传递。Activity的跳转启动的方式主要有两种,分为显示启动和隐式启动。 Activity之间信息传递最基本的实现方式是使用Intent,在使用Intent进行Activity之间的跳转时,通常有三种Intent跳转方式,即:不带参数的跳转、带参数的跳转以及带返回值的跳转,也可以归纳为两种最常见的情形:一种是获取子Activity返回值,另一种传递消息给子Activity。  2. 通过Bundle在Activity之间传递参数 三、 实验设备:计算机(安装有Android的开发环境Eclipse) 四、 实验内容 1、 建立一个新的Android工程,工程名称:Chp02_IntentProject,Activity名称:MainActivity,SecondActivity,MainActivity的界面如图a,实现:1)当网络可用时提示“网络可用”,当网络不可用时,提示信息“网络不可用”,并跳转到网络设置界面,如图b。2)第一个按钮通过Intent显式启动SecondActivity。3)第二个按钮通过设置Intent的动作,即setAction(intent.ACTION_VIEW)打开百度网页;4)第三个按钮通过Intent隐式启动OtherActivity。5)第四个按钮通过设置Intent的动作,即setAction(intent.ACTION_SENDTO)实现发送短信的功能。 2、 SecondActivity的界面如图c,要求点击“百度”可以转入网页,下面显示的网址、邮箱和电话同样可以打开链接。 a b c 实验代码见“实验数据记录”,并将其中“……”里的内容补充完整,将实验要求功能实现。然后试着改变按钮监听方式,实现其他方法的监听方式,并将代码和结果附在实验内容里。 3、 按照教材中的内容建立工程NeuChp02_IntentExchangeMessage,实现三个Activity,分别为MainActivity、SecondActivity和ThirdActivity,其中MainActivity为父Activity,获取SecondActivity的返回值,传递信息给ThirdActivity,实现不带参数的跳转、带参数的跳转以及带返回值的跳转。 五、 实验步骤和方法 1. 根据实验要求建立工程 2. 按照实验内容编写代码 3. 运行程序并调试 4. 改变程序中组件的属性观察它们的变化 5. 记录实验结果并分析 六、 实验数据记录 源代码: 1.布局文件: <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.testhello.MyMainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="激活显示意图" > </Button> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click1" android:text="激活网页(隐式意图1)" > </Button> <Button ……> </Button> <Button android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click4" android:text="发送短信" > </Button> </LinearLayout> 2.MyMainActivity代码 public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView textView; private Button button1; private Button button2; private Button button3; private Button button4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView); button1 = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button3 = (Button) findViewById(R.id.button3); button4 = (Button) findViewById(R.id.button4); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); button4.setOnClickListener(this); ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { Toast.makeText(this, "网络可用", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "网络不可用", Toast.LENGTH_LONG).show(); Intent intent = new Intent(); intent.setClassName("com.android.settings", "com.android.settings.Settings"); 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.menu_main, menu); return true; } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Log.d("TAG", "Main-onSaveInstanceState"); } @Override public void onClick(View v) { if (v.getId() == R.id.button1) { Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); } if (v.getId() == R.id.button2) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("")); startActivity(intent); } if (v.getId() == R.id.button3) { Intent intent = new Intent(); intent.setAction("third"); startActivity(intent); } if (v.getId() == R.id.button4) { Intent intent=new Intent(); intent.setAction(Intent.ACTION_SENDTO); intent.addCategory("android.intent.category.DEFAULT"); intent.setData(Uri.parse("sms:10016")); startActivity(intent); } } } 2. OtherActivity代码 public class OtherActivity extends Activity { Button bt1; ImageButton bt; EditText et; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.twomain); TextView textview1=(TextView)findViewById(R.id.textView1); TextView textview2=(TextView)findViewById(R.id.textView2); bt=(ImageButton)findViewById(R.id.imagebutton1); et=(EditText)findViewById(R.id.editText1); bt1=(Button)findViewById(R.id.button1); String html="<font color='red'>I love android</font><br>"; html+="<font color='#0000ff'><big><i>I love android</i></big></font><p>"; html+="<big><a href=''>百度</a></big>"; CharSequence chars= Html.fromHtml(html); textview1.setText(chars); textview1.setMovementMethod(LinkMovementMethod.getInstance()); //点击的时候产生超链接 String textv="我的URL:\n"; textv+="我的email:abcd@\n"; textv+="我的电话:+86 0351-2569332"; textview2.setText(textv); textview2.setMovementMethod(LinkMovementMethod.getInstance()); OnClickListener listeners=new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1: et.setText("我按下了Button按钮!"); return; case R.id.imagebutton1: et.setText("我按下了ImageButton按钮!"); return; } } }; bt1.setOnClickListener(listeners); bt.setOnClickListener(listeners); } } 4. SecondActivity代码 public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.secondmain); TextView textview1 = (TextView) findViewById(R.id.textView1); TextView textview2 = (TextView) findViewById(R.id.textView2); String html="<font color='red'>I love android</font><br>"; html+="<font color='#0000ff'><big><i>I l
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服