第一篇:Android实训报告
Android学院:****** 班级:****** 学号:****** 姓名:******
实训报告
目录
一、实训背景及目的要求.........................................................................................................................3 1.1背景简介.....................................................................................................................................3 1.2实训目的及要求...........................................................................................................................3
二、设计思路...........................................................................................................................................3 2.1设计题目.....................................................................................................................................3 2.2功能分析.....................................................................................................................................4 2.3模块划分.....................................................................................................................................4
三、设计实现及代码分析.........................................................................................................................4 3.1第一个Activity.............................................................................................................................4 3.1.1布局文件:main.xml:........................................................................................................4 3.1.2源代码文件:MainActivity.java............................................................................................7 3.2第二个Activity.............................................................................................................................8 3.2.1布局文件:result.xml..........................................................................................................8 3.2.2源代码文件:ResultActivity.java...........................................................................................9 3.3字符串资源文件:strings.xml......................................................................................................12 3.4程序清单文件:AndroidManifest.xml...........................................................................................13
四、程序功能测试及截图.......................................................................................................................14 4.1工程项目目录............................................................................................................................14 4.2程序运行界面:.........................................................................................................................14 4.3未填身高提示:.........................................................................................................................15 4.4计算示例:................................................................................................................................15
五、课程设计(实训)总结....................................................................................................................16
一、实训背景及目的要求
1.1背景简介
Android(读音:['ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。Android操作系统最初由Andy Rubin创办[5],最初只支持手机。2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上[6]。2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智慧手机平台。采用Android系统手机厂商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericsson等。1.2实训目的及要求
Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。
目的:
1、培养学生运用所学课程Java语言程序设计的理论知识和技能,分析解决计算机实际应用中的问题的能力。
2、培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。
3、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
通过课程设计,要求学生在指导教师的指导下,独立完成课程设计的全部内容,包括:
1、确定开发的程序,收集和调查有关技术资料。
2、按软件工程步骤进行程序设计。
3、对完成的程序进行测试和完善。
4、完成课程设计报告。
二、设计思路 2.1设计题目
以Android系统的UI界面开发为基础,设计一个可以简单计算标准体重的应用程序,要求以2个Acitivity实现,第一个Activity作为输入界面,第二个Activity作为结果输出界面,具体实现细节自行设计。2.2功能分析
该设计题目要求实现可计算输出标准体重功能的应用程序。通过查阅资料可知,按照世界卫生组织推荐的计算标准体重的方法,需要获知的输入信息有性别、身高。故可在第一屏设置有单选框以确定性别,输入框以获取身高。另,为了增加程序的实用性,可再设一可选输入框,用来得到实际体重,与标准体重对比,给出用户一些健康提议。第二屏设置有结果输出显示区域与健康提示显示区域。
2.3模块划分
通过程序功能分析,可将程序划分为2个模块,即2个Activity:
第一个Activity:两个单选框(RadioButton)获取性别,一个输入框(EditText)获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提示文本。
第二个Activity:一个文本显示区(TextViw)显示计算结果,一个可选文本显示区(TextView)显示提示信息。
三、设计实现及代码分析 3.1第一个Activity 3.1.1布局文件:main.xml:
采用绝对布局,以实现控件精准显示;
RadioGroup包含两个RadioButton,以实现性别男女选择;
两个供输入的EditText限定了输入类型为numberDecimal,以确保只接收数字型数据。main.xml完整代码如下:
android:orientation=“vertical” android:layout_width=“fill_parent” android:layout_height=“fill_parent” > android:id=“@+id/tv1” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv1_t” android:textSize=“20sp” android:layout_x=“50px” android:layout_y=“25px” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv_sex” android:layout_x=“50px” android:layout_y=“100px” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/tv_tall” android:layout_x=“50px” android:layout_y=“150px” /> android:id=“@+id/rg” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:orientation=“horizontal” android:layout_x=“95px” android:layout_y=“90px” > android:id=“@+id/rb_male” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/male” /> android:id=“@+id/rb_female” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“@string/female” /> android:id=“@+id/et_tall” android:layout_width=“100px” android:layout_height=“40px” android:layout_x=“100px” android:layout_y=“140px” android:inputType=“numberDecimal” /> android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_x=“200px” android:layout_y=“145px” android:textSize=“20sp” android:text=“cm” />
Toast.makeText(MainActivity.this, R.string.tall_hint, Toast.LENGTH_SHORT).show();实现Activity之间跳转设置:
intent.setClass(MainActivity.this, ResultActivity.class);实现Activity之间数据封装传输: bundle.putDouble(“height”, height);bundle.putString(“sex”, sex);bundle.putString(“real”, real);intent.putExtras(bundle);MainActivity.java完整代码如下:
package com.halcyon;
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;import android.widget.EditText;import android.widget.RadioButton;import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private RadioButton rb1 = null;private RadioButton rb2 = null;private EditText et = null;private EditText et_real = null;private Button bt = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rb1 =(RadioButton)findViewById(R.id.rb_male);
rb2 =(RadioButton)findViewById(R.id.rb_female);
rb1.setChecked(true);
et =(EditText)findViewById(R.id.et_tall);
et_real =(EditText)findViewById(R.id.et_real);
bt =(Button)findViewById(R.id.compute);
//默认为男性选中
bt.setOnClickListener(this);}
} @Override
public void onClick(View v){
} // TODO Auto-generated method stub
/**事件响应代码,获取性别、身高,判断是否输入了实际体重 * 新建Intent对象用于Activity之间跳转,及传输输入的数据 * **/
if(et.getText().toString().length()==0){
} else {
}
double height = Double.parseDouble(et.getText().toString());String real = et_real.getText().toString();String sex = “";if(rb1.isChecked()){ } else{ } Intent intent = new Intent();intent.setClass(MainActivity.this, ResultActivity.class);
Bundle bundle = new Bundle();bundle.putString(”sex“, sex);bundle.putString(”real“, real);intent.putExtras(bundle);
this.startActivity(intent);
//存放数据,以封装传输
bundle.putDouble(”height“, height);sex = ”F“;sex = ”M“;Toast.makeText(MainActivity.this,//身高未填提示
R.string.tall_hint,//注册点击事件监听
Toast.LENGTH_SHORT).show();3.2第二个Activity 3.2.1布局文件:result.xml 绝对布局,三个TextView,内容用紫色显示,提示标号用绿色显示,以达到较醒目的感觉。result.xml完整代码如下:
xmlns:android=”http://schemas.android.com/apk/res/android“ android:layout_width=”fill_parent“ android:layout_height=”fill_parent“ android:layout_margin=”10px“> android:id=”@+id/tv_1“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”100px“ android:textSize=”20sp“ android:textColor=”#8855ff“ /> android:id=”@+id/tv_2“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”200px“ android:textSize=”20sp“ android:textColor=”#00ff00“ /> android:id=”@+id/tv_3“ android:layout_width=”wrap_content“ android:layout_height=”wrap_content“ android:layout_x=”20px“ android:layout_y=”240px“ android:textSize=”20sp“ android:textColor=”#8855ff“ />
3.2.2源代码文件:ResultActivity.java 使用result.xml布局文件,获取intent,取得传入的数据信息,以男性:(身高cm-80)×70﹪=标准体重
女性:(身高cm-70)×60﹪=标准体重 的标准来计算标准体重,方法
private String getWeight(double height, String sex)实现此功能;
可根据用户是否输入了实际体重,来选择是否显示健康提示信息,方法 private void healthHint(double weight)实现此功能;
方法private String form(double d)实现数据格式化。ResultActivity.java完整代码如下:
package com.halcyon;
import java.text.NumberFormat;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;
public class ResultActivity extends Activity{
/**男性:(身高cm-80)¡Á70﹪=标准体重
* 女性:(身高cm-70)¡Á60﹪=标准体重
* **/
private TextView tv_1 = null;private TextView tv_2 = null;private TextView tv_3= null;private Intent intent = null;private Bundle bundle = null;private double height = 0;private String sex = ”“;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
tv_1 =(TextView)findViewById(R.id.tv_1);
tv_2 =(TextView)findViewById(R.id.tv_2);
tv_3 =(TextView)findViewById(R.id.tv_3);
intent = this.getIntent();
bundle = intent.getExtras();
height = bundle.getDouble(”height“);
sex = bundle.getString(”sex“);
tv_1.setText(this.getWeight(height,sex));
}
private String getWeight(double height, String sex){
} private void healthHint(double weight){
/*根据用户是否输入了实际体重来判断是否添加显示提示信息 * 如果输入了实际体重,按以下原则给用户以健康提示 * 标准体重正负10﹪为正常体重
* 标准体重正负10﹪~ 20﹪为体重过重或过轻 * 标准体重正负20﹪以上为肥胖或体重不足 * */
String result = ”“;String real = bundle.getString(”real“);if(real.equals(”“)){ } else {
double r = Double.parseDouble(real);double rate =(r-weight)/weight;if(rate>0.2){
//过胖
result = this.getString(R.string.very_fat);} else if(rate>=0.1&&rate<=0.2){
} else if(rate>-0.1&&rate<0.1){
} else if(rate>=-0.2&&rate<=-0.1){ } else if(rate<-0.2){
//过瘦
result = this.getString(R.string.very_thin);
//瘦
result = this.getString(R.string.thin);
//正常
result = this.getString(R.string.normal);
//胖
result = this.getString(R.string.fat);result = ”“;double weight = 0;String result = ”“;if(sex.equals(”M“)){
} else {
} healthHint(weight);return result;weight =(height-70)*0.6;result = ”这位女士,n妳的标准体重为“+form(weight)+”公斤。n“;weight =(height-80)*0.7;result = ”这位先生,n你的标准体重为“+form(weight)+”公斤。n“;
}
}
} } tv_2.setText(getString(R.string.hint));tv_3.setText(result);private String form(double d){
}
//格式化数据输出
String str = NumberFormat.getInstance().format(d);return str;3.3字符串资源文件:strings.xml 在一个Android工程中,我们可能会使用到大量的字符串作为提示信息。这些字符串都可以作为字符串资源声明在配置文件中,从而实现程序的可配置性。
在代码中我们使用Context.getString()方法,通过传递资源ID参数来得到该字符串,也可以在其他资源文件中引用字符串资源,引用格式为:”@string/字符串资源名称。
本程序所引用的strings.xml内容为:
它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。
因本程序使用了2个Activity,故对AndroidManifest.xml有一定的修改,内容如下:
package=“com.halcyon” android:versionCode=“1” android:versionName=“1.0”> android:label=“@string/app_name”>
四、程序功能测试及截图 4.1工程项目目录
4.2程序运行界面:
4.3未填身高提示:
4.4计算示例:
五、课程设计(实训)总结
通过本次实训:
1)练习、巩固了所学Java理论知识,提示了编程技巧;
2)体验到利用网络查找文档、解决问题的便利;
3)有幸了解到Android开发平台已及Android程序设计思想与方法;
4)开拓了视野,了解到计算机应用的广泛性,为用计算机解决实际问题打下了基础。
第二篇:Android实训报告
時間過得飛快,一週的實訓馬上就要結束了。在這次實訓中我不僅學習了相關的專業知識,而且讓我對Android系統有了一個更加深入的瞭解,它也是我們專業的一個新的方向並且发展很迅速,為了今後的发展我們還需不断努力學習!我國的信息產業還很落後,隨著社會的發展及國家的支持,手機上網必然是社會發展的趨勢,到時候手機上網將無處不在!我對Android系統的瞭解只停留在應用的層次上,對於更深層次的瞭解是很少的,通过這次實訓讓我對Android系統有了一個更深層次的瞭解,同時它也使我意識到無論朝哪個方向發展,主要還是得扎實、深刻的學習,同時也得不斷努力探索。
IT業的發展速度一直都是相當驚人的,不想被社會淘汰,我們就必須不斷的學習,現在的社會不再是一勞永逸,其它行業也是如此,我们必須不斷的拿知識來武装自己,不然被淘汰那是肯定的!現在就業難的原因其實在於競爭的加剧,為了在競爭中取得成功,我們必須時時刻刻刻學習!
在Android編程過程中巩固熟悉了Java的編程。由於Android應用程序的開發離不開Java的支持,所以基礎的Java知識是必須的。Android系统是基於Linux的手機操作系統平臺,要深入學習Android,不僅僅是有Java和Android應用開發,必須要具備Linux,C/C++高級編程才能深入的涉及Android Framework和Android内核開發。成為Android開發的高素質人才。所以,在後續對Android的學習中可能会看一些較底層的書籍。
由於這次實訓時間較短,對於Android應用程序的高级编程學的很少,是這次實訓中的不足。要想開發一些好的應用程序,還需要更多的知識支持。在實訓時,遇到了很多平時沒有遇到或者沒有特别關注的問題。這些問題只有自己在實際開發中才能體會到並且解决。
通过對java以及Android的學習,讓我又學會了一門編程語言,這對於我以後的學習工作都會有很大的帮助。回顧以前所走的路,太多的是無奈和迷茫,這次实训就像是我人生道路上的航標,為我指明了前進的方向,使我對自己的前途充满了信心,同時也知道了自己的前進方向。
第三篇:Android 实训总结
Android实训总结
——XXXX 三周的Android 实训,已接近尾声。在这短暂的三周之内,有成功、有失败;有喜悦、有辛酸。在实训老师的带领下,我学会了很多。我们小组在实训老师的协助下最终成功的完成实训项目。
实训前二周,由于我在java基础方面的知识比较薄弱,学习重点放在了java基础学习上,兼顾android学习。Java基础学习: 内容:
(1)1.bean-实体类分析。2.功能分析。3.语义模型、关系模型、界面模型、流程图。4.代码分析、DAO接口实现。
(2)完成老师每日给的java 基础作业,达到复习的目的。每日老师给的练习都有针对性,认真的完成练习,很好的达到了复习java基础的目的。成果: 能针对一个简单 java 或Android 项目,(1)分析出对象、实体类,元数据(2)功能分析 并画出对应的功能界面
(3)数据库分析: 作出语义模型、关系模型、界面模型、流程图(4)进行代码分析,并实现DAO。
独立完成本次项目的代码框架、DAO接口以及DAO实现.Java基础作业
Android学习: 内容:
(1).以新闻客服端为例,讲解了android开发的一个典型流程。
(2).android 如何调试 如何使用log类inf(i)、debug(d)、error---logcat
(3).android需要整个应用范围访问某类数据(session--user)
Application 的使用 A,静态变量(单例模式)
B,复写android Application app = getApplication()app.setxxx()appsetxxx()4.MVC 编辑表单和添加表单公用
(5).android五大布局【LinearLayout、FrameLayout、AbsoulteLayoutRelativeLayout和TableLayout】 主要讲解了LinearLayout、FrameLayout,LinearLayout---权重Layout_weight、Layout_grayout(6)Intent 页面的跳转,值传递,获取上下文。
(7)数据库操作【以新闻客服端--Category 新闻类 为例】:
1.创建数据库和表,进行数据初始化
2.对表的 增删改查 操作 3.游标Curser 的使用。
(6)项目开发:熟悉项目开发流程,能独立完成简单的项目开发。
成果:
练习实现简单的页面布局,独立完成新闻客服端的开发流程---在原有的基础上扩展业务。
最后一周,项目开发 我们小组抽取的项目是----------个人健康卫士
个人独立完成的模块:
1、代码框架
2、实体类分析、父类方法重写、构造方法。
3、DAO 接口实现,提供数据。
单元测试,对所有DAO 接口,方法进行测试并编译通过。
4、登录、注册实现。
异常处理:
A、登录提交时,用户名、密码不能为空,否则不与提交。
数据库返回登录信息,处理登录成功与否的异常。B、注册提交时,检查注册用户名,密码不能为空,密码与确认密码要相同,否则不与提交注册。
项目完成总结心得体会。
1.个人:
在项目刚启动时,我只在java 方面比较擅长,做的模块都是涉及java基础方面的知识。对UI 方面缺乏信心,但随着项目的推进,对UI 方面见的多了解的多了,也能独立完成UI方面的模块。在这次项目中独立完成登录,注册模块。
对于每一个项目开发,都需端正态度,量力而行,发挥自己的长处,这样不仅有利于促进团队项目开发的进度,还有利于把自己代入这个项目。当自己融入这个项目时,就能多思考。并在不影响项目开发进度的前提下,思考这里为什么要这样做,这样做有什么用处。这样是一个自我学习的过程,这里本来不会做,但是经过这个项目或这个模块后,这里也会做了,把不会的变成会的,把别人的知识变成自己的。2.团队合作:
项目启动时,因为这个项目主要是UI 项目,而我在这方面基础知识比较差,主要负责了涉及java方面的模块ODA实现。在项目分析时,提的建议较多与项目组长之间发生摩擦。在项目老师的协助下,确定项目分析,确定分工模块,最终较为成功的完成了我们组的项目。
当一个团队合作时,并不是遇到的每个团队,团队成员都令你满意、每个团队都可以融洽相处。这个团队之所以形成,主要目的为了成功完成这个项目。进入团队先要明白进入团队的目的,这个团队成立的目的。明白了这两点,许多在团队中遇到的问题都可以避开或很好的解决。所有成员都围绕如何能更好更完善的完成项目为主。当然在遇到必然可能影响到项目开发进度的问题时,还需及时解决。
3、项目开发
在这次项目中,本着利用自己擅长的部分,加工加点的完成了DAO接口实现模块并实现所有的单元测试。为项目UI 后续进度提供了较为完善的后台数据、接口服务。每个项目开发的过程,都需实事求是、踏实做事。不为面子,虚报自己的能力,能做什么能做多少、都要根据自己的职业能力来下定论。遇到技术问题,自己能独立解决就独立解决,不能就及时向他人求教或自己查找资料自学。在项目开发中若有自己比较好的意见(先自己确定以目前技术是实时可行的、对项目开发或功能实现有利的意见),要向项目管理和项目其他队员提出,看是否采纳。
第四篇:android实训心得(推荐)
项目总结
时间过的好快,为期三个月的实训生活即将结束了,每一次的实训我们都受益匪浅,我们学到的不仅仅是课内还有课外,实训让我们的课内知识得到了巩固,专业知识、编程水平都有很大的提高,我们非常感谢这次实训。
刚开始二周的高强度的课程安排让我们受益匪浅;接下来的项目实训又让我们可以巩固了课程。这让我觉得实习生活充实而有意义。
乐淘购物项目和android优化大师,我更好的学习了UI的设计,如何使界面漂亮,美观,巩固了listview,gridview,的使用,学会了动画进入界面的,和会移动的画廊等等。在这两个项目中,除了让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个任务,懂得了享受工作。当遇到问题,冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心由然而生,这就是工作的乐趣。有时候也需要虚心请教,从别人的身上真得能学习到不自己没有的东西,每一次的挫折只能使我更接近成功。
音乐播放器项目,我们是七个人组成小组完成的,由组长带领我们,分配任务,每个人,都发挥自己的长处,更好地去完成任务。对于团队开发来说,团结一致使我深有体会。团队的合作注重沟通和信任,不能不屑于做小事,永远都要保持亲和诚信,把专业理论运用到具体实践中,不仅加深我对理论的掌握和运用,还让我拥有了一次又一次难忘的开发经历,这是也是实训最大的收获。
这次实训对于我以后学习、找工作也真是受益菲浅,在这3个月中让我初步从理性回到感性的重新认识,也让我初步的认识这个社会,对于以后做人所应把握的方向也有所启发!相信这些宝贵的经验会成为我今后成功的重要的基石。
在此,我非常感谢指导老师和同学对我的帮助。
第五篇:android实训总结
Android实训总结
黑龙江农业工程职业学院 2011年11月26日星期六
Android实训总结
经过了将近两个月的学习,我们的android实训课也马上接近了尾声。在这阶段实训中,我学到了很多,在专业课方面的进展也很大。由于我们刚刚结束了java课程,马上开了android实训课,而android和java之间又有很大的联系,所以,我们学习android也比较容易入门。最终得到的成效也很好。下面,我针对这一阵的学习进行一下总结:
一、android基础知识:
1.环境的配置:
(1)配置Java程序开发环境
(2)安装并汉化Eclipse(JDK)
(3)Android SDK的安装
(4)ADT的安装及配置
(5)Android模拟器的配置
2.第一个简单的Android程序(HELLO ANDROID):
(1)创建一个Android应用程序:
打开eclipse开发工具——文件——新建——项目——android——android project——下一步
(2)应用程序编写:
完成程序资源的设置
完成界面布局的设置
完成程序的事件处理
完成程序的总体配置
应用程序测试
部署应用程序到Android手机(对应用程序进行打包)
3、控件:
在Android学习中,每一个应用都需要一些空间,在这一个月的学习当中,我们也接触了很多的控件:
(1)TextView:用来显示文本标签的控件
(2)ListView:用来显示一个列表的控件
(3)Toast:是Android提供的“快显讯息”类
(4)EditText:编辑框,用于输入信息
(5)RadioGroup、RadioButton:单项选择
(6)CheckBox:多项选择
(7)Spinner:下拉菜单
(8)AutoCompleteTextView:自动提示
(9)DataPicker、TimePicker:时间和日期事件
(10)Button:按钮
通过这些控件,使得我们在编辑程序的时候能够很完美的显示在手机上,使之成为一个真正的应用。