安卓开发实训报告(共7篇)
南昌中兴实习报告
短短的一个月很快就过去了,在南昌中兴软件实训中心的实习就过去了。虽然只有短短的一个月,但我学到了许多知识,熟悉了软件项目开发的流程,也很好的增强了自己的动手能力。在这个月中,我们学习了JAVA的基础知识以及安卓的开发。
我是一名即将大四的学生,用校园里的话来讲就是“奔四”的人。纵观现在的就业形势,国家高校的扩招,世界金融危机的横扫,大学生应该有一种居安思危的紧迫感,特别是对于已经渡过三年的大学的我来说,毕业不是一个遥远的名词,找工作更不是水到渠成的动词了。宝剑锋从磨砺出,梅花香自苦寒来,缺少了平时的锻炼,缺少了厚积当然就不能薄发了。首先我得有思想上的紧迫感,在学校所学都是理论性的知识,社会经验则是乏之又乏。一个综合能力强的人才是这个社会所看好的,“社会需要我干什么我就能干什么”是我个人的奋斗目标。有了强大的精神动力,有了坚如盘石的毅力,相信成功的一天绝不遥远。
首先,我的自学能力得到了加强。在实习的前几天主要进行的是与java有关的知识讲解及其他预备知识的普及。在这之前由于种种原因我没有系统的学过java,所以对于java我几乎一无所知。但是我曾学习过c++,所以对语言的接受与理解速度还不算太慢—尽管老师讲的比较快。但我还是竭尽所能的去跟上老师的节奏。在这个过程中老师曾给我打过一剂预防针---对语法的理解无需太清晰,会用就可以。所以我只需了解大概框架及原理即可。这就教会了我自学的一种
方法---可以在第一遍时不求甚解,先了解知识框架,之后再在使用的过程中不断的加深对知识的理解,从而较快的学会知识并利用之用于实践。
其次我的实际的操作能力得到了加强。知识讲解告一段落之后我们便进入到了紧张而又短暂的项目中。但不得不说刚开始就遇到了一鼻子灰---代码书写总是出错。由于对原理理解的不够透彻,语言使用缺乏足够经验所以进度极慢---尽管任务很少。在经过了多次讨论以及与老师的交流我们渐渐的对项目有了一个较为合理的理解,所以再次投入的过程就比较顺利。在这个过程中我明白实践与理论的差距及二者不可分割的关系。
在张老师讲完java基础后,随着尧老师跟我们讲了安卓的基础开发。
刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构,更加方便,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例大全中的例子以及Android提供的APIDEMOS进行学习,尽管例子之间的连接比较零散,不过通过这些例子的学习我可以学习到了很多和以前java上相通的思想。
我在为期一个月的实习中学到了很多在课堂上根本就学不到的知识,收益非浅.
通过半一个月的android实习,基本掌握了Android应用程序开发的一般流程。对常用控件基本掌握其用法,对其事件的监听方法也基本掌握。学习Android不仅是对前沿开发技术的了解,也是对编程
知识的一次提升。
通过学习Android的控件、布局、Activity、Service等一系列基础知识,对整个Android的开发有了大致的了解。例如: 要的布局(或者控件),在学习界面中,我发现Android为我们提供了很好的类似反射机制,通过Layout文件夹下的配置文件,可以快速的形成界面,在配置文件可以设置属性或者样式都是很快捷方便。对比较特殊的界面也可以通过处理嵌入到指定的界面,同样你可以通过java代码直接创建View进行添加,不过这种方式比较复杂。对一些点击、选中、按键等处理的事件,界面之间的跳转Intent管理,通过Bundle对数据在界面之间进行传输。
在手机交互式通信服务中,学习了Android手机之间进行短信发送、广播、对广播的监听、服务等,在Service类中没有context,可以通过Handler来每秒反复运行,自动送出系统广播信息,同时在这里我们也知道可以设计一个常用的变量类,设计一个当前的CurrentActivity这个变量进行控制,进行处理。
在Android编程过程中巩固熟悉了Java的编程。由于Android应用程序的开发离不开Java的支持,所以基础的Java知识是必须的。Android系统是基于Linux的手机操作系统平台,要深入系统的学习Android,不仅仅是有Java和Android应用开发,必须要具备Linux,C/C++高级编程才能深入的涉及Android Framework和Android内核开发。成为Android开发的高素质人才。所以,在后续对Android的学习中可能会看一些较底层的书籍。
由于这次实习时间较短,对于Android应用程序的高级编程讲的很少,是这次实习中的不足。要想开发一些好的应用程序,还需要更多的知识支持。在做实习最后的项目时,遇到了很多平时没有遇到或者没有特别关注的问题,如常见的Activity忘记注册,对SD卡存取需要权限,在写SQL语句时细微的错误就可能导致程序运行错误。这些问题只有自己在实际开发中才能体会到并且解决,并且在解决后可以长时间的记住。
通过Android的实习,我们在大四毕业前,我们又掌握了一项新的前沿的开发技能,也有了更多的发展方向,这在以后的找工作的过程中无疑为我们增加了砝码,也可以成为我们的一项兴趣爱好,可以根据我们自己的需要设计一些小的程序。总之,在这次实习中,我获得了很多东西,提高了自己的编程技巧和编程方法,并且认识了Android应用程序的开发,以及加深了对Java的认识。
最后,通过实习,我收获了很多东西,特别是编程方面的,这对即将毕业的我们来说,这次实习是一次较为珍贵的充电。
俗话说兴趣是最好的老师。安卓开发的基础语言是Java,所以说,想要学好安卓,要对Java感兴趣。不管在学习还是工作中,兴趣是很关键的,你是否对java有浓厚的兴趣呢?很多人现在所知道的java热,受关注度高,只知道这个专业好就业,于是自己漫无目的的学习,可能最后学习成功了,但如果对此不感兴趣,可能还是会后悔,浪费时间、精力和钱财。所以学安卓开发兴趣很重要,尤其这是一种技术性行业。
其次,要学会适应安卓开发编程
安卓开发,最主要的就是编程,这是一种计算机语言,不同于人类交流,所以逻辑性和运算性都极强,所以,安卓开发对学员的要求也很高。大家在学安卓开发前要谨慎思考,自己是否能够踏实细心地研究一行行代码,并且有较好的逻辑思维能力,保持一个好的学习态度,勤奋认真,这是最基础的能力。
最后,要学会在学习中不断的总结
android软件工程师就业前景分析:
如今是3g时代,传统的2g逐步向3g转变,随着3g的来临,可视电话,手机视频等等一些业务也丰富起了,手机普及率为60.06%,手机吞并了越来越多的行业,如:
1,手机将取代电脑上网,很多人都用手机上qq、看电视和视频聊天、打游戏等
2,手机将取代传统电视,很多电视台都上手机电视了。
3,手机吞掉了mp3/mp4、数码相机、dv摄像机、收音机、蓝牙、商务通等等,它还将并吞更多行业。中国手机市场如此之大,如果从事手机相关的开发,可以获利的空间将会有多大呢?
Android培训机构首选无限互联Android培训,Android培训引领者,专注Android培训,用心做靠谱的Android培训机构。
Android平台五大优势特色
1、开放性
在优势方面,Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。 开放性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
2、挣脱运营商的束缚
在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
3、丰富的硬件选择
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
4、不受任何限制的开发商
Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。
5、无缝结合的Google应用
如今叱咤互联网的Google已经走过历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。 与前面的“手机开放联盟”内容重复且不如人家的翔实。
Android的前景
据数据统计显示:目前热招的Android技术相关岗位约有3882个,而一个月内的有效岗位量在2298个。主要热招职位包括Android开发工程师、Android软件工程师、Android应用开发工程师、系统驱动工程师,Android手机游戏开发、Android系统软件开发、Android程序员、Android游戏应用版本管理、人机交互分析工程师、Android中间层开发工程师等。
从人才需求类型来看,目前对Android人才需求一类是偏向硬件驱动的Android人才需求,一类是偏向软件应用的Android人才需求。从目前的招聘需求来看,后者的需求最大,包括手机游戏、手机终端应用软件和其他手机应用软件的开发。据职酷网职位搜索库统计显示,目前企业对这类应用软件的Android开发人才占总需求的72%。
职业专家分析说,由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。
总结
1、什么是安卓的Broadcast?
安卓的四大组件之一,是一种广泛应用在应用程序之间传输信息的机制。
2、什么是安卓的BroadcastReceiver?
是对发送出来的广播进行过滤接收并响应的一类组件,它就是用来接收来自系统和应用中的广播。例如系统的广播有开机广播: 系统在开机时候会发送开机广播,程序接收到之后,能进行开机自启动。网络状态改变广播: 3g变wifi、网络断开等。电量改变广播等等。。
3、Anroid为什么要这样设计?
大大减少开发工作量和开发周期
作为开发者,只需要掌握BroadcastReceiver
4、怎么理解Broadcast和BroadcastReceiver ?
Broadcast就像现实中的广播电台,他发广播信号来,然后我们用收音机来接收,然后处理,并且播放出声音,BroadcastReceiver就相当于那台收音机。
5、使用方法
发送:
把信息装入一个Intent对象(如:Action、Category),通过调相应的方法将Intent对象以广播的方式发送出去: sendBroadcast();
sendOrederBroadcast();sendStickyBroadcast();接收:
当Intent发送之后,所有已经注册receivedBroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceiver()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceiver()方法。注意:
BroadcastReceiver需要注册
静态注册
代码动态注册
6、注意!!
BroadReceiver生命周期只有十秒左右,不能直接执行耗时操作,不然会出现ANR(应用程序无响应),也不能用子线程来做,因为每次广播来的时候都会创建一个Reveiver对象,并且调用onReceiver,执行完之后,对象会立刻被销毁,子线程也没了
要做耗时操作的话,应该通过发送Intent给Service,由Service来完成。
动态注册广播接受者的话要在Destory回调事件进行unregister
7、广播的分类
普通广播(Normal broadcast)所有监听该广播接受者都可以监听到该广播 同级别接收先后顺序是随机的(无序)级别低的后收到广播
接收器不能截断广播的继续传播,也不能处理广播 同级别动态注册高于静态注册 有序广播(Oredered broadcast)按照接收者的优先顺序来接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大优先级越高,可以终止广播的继续传播,接受者可以修改intent的内容。同级别接收顺序是随机的 级别低的后收到
能截断广播的继续传播,高级别的广播接收器接收广播后能决定时候截断。能处理广播
同级别动态注册高于静态注册
异步广播(粘滞性滞留广播)ps:已被弃用
不能处理结果给下一个接收者,无法终止广播。一直存在
可以先发送广播,再注册接收器
需要在清单文件添加android.permission.BROADCAST_STICKY权限
8、Demo
布局actibity_main三个按钮:
android:layout_width=“match_parent” android:layout_height=“match_parent” android:orientation=“vertical”>
MainActivity.Java
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btOne;
private Button btTwo;
private Button btThree;
MyReiceiverThree myReiceiver = new MyReiceiverThree();
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btOne =(Button)findViewById(R.id.bt_one);
btTwo =(Button)findViewById(R.id.bt_two);
btThree =(Button)findViewById(R.id.bt_three);
btOne.setOnClickListener(this);
btTwo.setOnClickListener(this);
btThree.setOnClickListener(this);
//动态注册,在当前activity的生命周期內运行
/*IntentFilter filter= new IntentFilter(Config.BC_ONE_ACTION);
MyReiceiver myReiceiver = new MyReiceiver();
registerReceiver(myReiceiver,filter);*/
}
@Override
public void onClick(View view){
Intent intent = new Intent();
switch(view.getId()){
case R.id.bt_one:
//发送普通广播
intent.setAction(Config.BC_ONE_ACTION);
intent.putExtra(“msg”,“这是普通广播”);
sendBroadcast(intent);
break;
case R.id.bt_two:
//有序广播
intent.setAction(Config.BC_TWO_ACTION);
intent.putExtra(“msg”,“这是有序广播”);
sendOrderedBroadcast(intent,null);//其中第二个参数是设置权限,即接收器必须具有相应的权限才能正常接收到广播。
break;
case R.id.bt_three:
//异步广播
intent.setAction(Config.BC_THREE_ACTION);
intent.putExtra(“msg”,“这是异步广播”);
sendStickyBroadcast(intent);
//可以先发送 后注册
IntentFilter filter = new IntentFilter(Config.BC_THREE_ACTION);
registerReceiver(myReiceiver, filter);
break;
}
}
@Override
protected void onDestroy(){
super.onDestroy();
unregisterReceiver(myReiceiver);
} }
MyReceiver.java
public class MyReiceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
//获取处理的的广播,普通广播不能获取处理
//true代表如果前面的接收器没有存放数据,则自动创建一个空的Bundle对象,false则表示如果前面的接收器如果没有存放任何数据则返回null。
Bundle bundle= getResultExtras(true);
System.out.println(“接收器1接收到处理的值:”+bundle.getString(“msg”));
System.out.println(“接收器1:”+intent.getStringExtra(“msg”));
} }
MyReceiverTwo.java
public class MyReiceiverTwo extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
//Toast.makeText(context,intent.getStringExtra(“msg”),Toast.LENGTH_SHORT).show();
System.out.println(“接收器2:”+intent.getStringExtra(“msg”));
abortBroadcast();
//截断广播,不让别的接收器继续接收,有序广播才能成功拦截
//处理广播
Bundle bundle = new Bundle();
bundle.putString(“msg”,“处理过后的广播”);
setResultExtras(bundle);//
} }
MyReceiverThree.java
public class MyReiceiverThree extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
//Toast.makeText(context,intent.getStringExtra(“msg”),Toast.LENGTH_SHORT).show();
System.out.println(“接收器3:”+intent.getStringExtra(“msg”));
} }
Config.java
public class Config {
public static final String BC_ONE_ACTION = “com.example.testbroadcasetwo.bcone”;
public static final String BC_TWO_ACTION = “com.example.testbroadcasetwo.bctwo”;
public static final String BC_THREE_ACTION = “com.example.testbroadcasetwo.bcthree”;}
Androidmanifest.xml
package=“com.example.testbroadcasetwo”> //异步广播需要 一个权限 android:allowBackup=“true” android:icon=“@mipmap/ic_launcher” android:label=“@string/app_name” android:supportsRtl=“true” android:theme=“@style/AppTheme”> String msg = intent.getStringExtra(“msg”); iShowView =(MainActivity)context; if(action.equals(Config.BC_ONE)){ //接收到普通广播 iShowView.updateText(msg); //回调给HandleBroadcast } } public void setiShowView(IShowView iShowView){ this.iShowView = iShowView; } } IShowView.java 回调到activity更新ui的接口 public interface IShowView { void updateText(String msg);} MainActivity.java publicclassMainActivityextendsAppCompatActivityimplements View.OnClickListener,IShowView{ private Button btOne; private TextView mTvResult; //p层,处理数据 private HandleBroadcast handleBroadcast; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handleBroadcast = new HandleBroadcast(this,this); btOne =(Button)findViewById(R.id.bt_one); mTvResult =(TextView)findViewById(R.id.tv_result); btOne.setOnClickListener(this); } @Override public void onClick(View view){ switch(view.getId()){ case R.id.bt_one: handleBroadcast.sendMyBroadcast(TYPE.NORMAL); break; } } /** * 广播接收处理完毕之后回调更新ui * @param msg 要显示的文字 */ @Override public void updateText(String msg){ mTvResult.setText(msg); } } activity_main.xml android:layout_width=“match_parent” android:layout_height=“match_parent” android:orientation=“vertical”> android:id=“@+id/bt_one” android:layout_width=“match_parent” android:layout_height=“50dp” android:text=“发送广播” /> android:id=“@+id/tv_result” android:layout_width=“match_parent” android:layout_height=“60dp” android:text=“结果” android:gravity=“center” 当前,Android系统因其开放性和免费广受欢迎,所占市场份额最大,截至2011年第四季度,国内市场Android手机的市场份额已经占据了整体智能机市场的68.4%。国内三大运营商如火如荼的3G营销战持续升温,再加上3G的推出对整个行业的巨大推动作用,无疑将引爆3G-Android开发工程师这个黄金职位,符合条件的Android工程师屈指可数,企业招聘难度可想而知。我们相信,在未来几年内,Android开发工程师将成为3G行业炙手可热的岗位之一。据数据统计显示:目前热招的Android技术相关岗位约有3882个,而一个月内的有效岗位量在2298个。主要热招职位包括Android开发工程师、Android软件工程师、Android应用开发工程师、系统驱动工程师,Android手机游戏开发、Android系统软件开发、Android程序员、Android游戏应用版本管理、人机交互分析工程师、Android中间层开发工程师等。 二:大学生如何学好Android? 虽然了解到Android行业未来的发展前景,Android人才的紧缺。但是作为刚毕业的应届大学毕业生如何才能加入这个热门行业?怎样才能学好Android开发?今天,长沙欧柏泰克的Android培训老师告诉大家作为一个大学生如何学好安卓? 首先:学习一门语言 众所周知,Android行业是一个高门槛行业,所以想要进入这个 行业,首先要学习一门编程语言:从人才需求类型来看,目前对Android人才需求一类是偏向硬件驱动的Android人才需求,一类是偏向软件应用的Android人才需求。偏向Android硬件驱动Android人才,首先要学习的是C语言。由于现在大学里面和计算机相关的专业甚至理工类专业一般都会开设C语言课程,只是很多同学在大学期间并没有好好学习,如果对它掌握的不太好或者很久没用了,建议先从将其好好复习一下,将其基本的语法再好好回顾一下,最好能搭建一个环境来运行、调试它。如果没有学过,不妨也提前学习一下。大部分的高校所开设的C语言使用的教材都是用它作为教材,因此无论是购买还是借阅,都容易找到。 应用的Android开发需要学习Java语言。因为Android应用的开发语言用的是Java语言,并且在Android中也用到了Java核心类库的大量的类,因此,在学习Android开发之前,可以先把Java基本语法和Java SE的基础类库好好学习一下。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。建议在安卓课程前期的java学习阶段中,需要用心的学好。 其次:熟悉数据结构和算法基础知识 如果后续有志于游戏方面的开发,最好具备一定的数据结构和算法基础知识。虽然现代的高级编程语言中,其类库中已经帮我们实现了大部分的数据结构,一般情况下,我们直接使用即可。但如果能对其原理有所了解,当需要在这些数据结构和算法中间的时候,可以更 加的清楚到底应该选择哪个数据结构或者算法。另外,在图形图像处理上面,线性代数的作用也非常重要,如果能掌握一点这方面的基础知识,无疑也会在后续的学习中如虎添翼。 总结:现在Android在移动领域已经得到了广泛的应用。随着需求的增多,行业人才的紧缺导致薪酬水涨船高,Adroid 3G技术人员入行起薪即可达到5000元。由此可见,未来的安卓人才的需求量还是很大的,大学生学习Adroid更是抓住了最佳时机。 大学毕业生通过就业培训进军嵌入式行业 大学生就业难一直是被关注的热点话题,2013年大学毕业生就业形势又将如何?近日,教育部发布关于做好2013年全国普通高等学校毕业生就业工作的通知。通知指出2013年高校毕业生比2012年增加19万,教育部称高校毕业生就业形势更加严峻。 据专家表示:虽然目前大学毕业生就业形势严峻,就业难,但是很多行业仍然面临着人才紧缺得情况。例如:调查显示,在求职因素的各维度分析中,学生求职者在就业行业方面很多倾向于IT/互联网行业。但是从实际就业情况看,还是很少学生求职者能迈进这个行业,虽然目前的IT/互联网行业发展前景很好,同时这方面的人才存在巨大缺口,但是由于IT/互联网行业本身的行业门槛相当高,所以对于大学毕业生来说十分困难。但是很多相关方面的专家指出:由于现在很多的行业人才的需求与大学生求职者目前的能力存在一定的差距,所以需要一种方式或者是渠道去缩短这种差距。例如:目前国内嵌入式人才极度匮乏,权威部门统计,我国目前嵌入式软件人才缺口每年 为40万人左右。INTEL、TI、SONY、三星、TCL、联想、康佳等大型企业对嵌入式人才都有大量的需求。供不应求使得嵌入式人才身价上涨,而且,越有专业经验,就业竞争力就越大。虽然嵌入式行业门槛很高,但是大学毕业生同样能加入这个行业。 目前市场上有很多的有实力的嵌入式培训机构,他们能很好的帮助企业解决嵌入式人才短缺问题,培养一批批合格的嵌入式人才。通过最近几年的实践证明,很多的嵌入式培训机构已经成功培养了大批的嵌入式人才,这也让为什么越来越多的人开始通过培训渠道迈入这个高门槛行业,尤其是大学毕业生参加培训的越来越多,虽然对他们来说几乎没有任何的嵌入式相关的技术基础,最多拥有的也就是c语言基础。但是他们拥有很好的学习能力,能快速学习和掌握一门知识或者技能。在短短几个月的培训中,他们跟上了老师的步伐,学到了大学中几年都没有学会的东西!这足以证明了他们对成功的渴望,对渴望成为一个嵌入式工程师付出的决心。 课 程 课 题指 导 名 称______手机安卓开发_______ 名 称______天气预报APP_______老 师______周唯___________ 姓 名____黄柳________ 学 号___2012600719_________ 班 级____12计2班________ 小 组______棒棒糖_______ 时 间____2015年1月26 日_____ 一、需求分析(一)引言 1.编写目的 1.1 为用户提供一个显示天气预报的软件,可以根据百度地图显示用户需求的城市位置,以及用图标表示各城市对应的气象信息,可以简洁的表示出“晴、雨、雪”和“气温”气象信息。 2.项目风险 2.1(项目风险识别是指找出影响项目目标顺利实现的主要风险因素,并识别出这些风险究竟有哪些基本特征、可能会影响到项目的那些方面。)2.2 联网收费视用户电话运营商的收费标准决定 2.3 手机或者无线信号不好时,可能无法连接或更新天气情况 3.预期读者和阅读建议 3.1 预期读者:会使用已经安装安卓系统的手机或者平板电脑及其他移动设备的用户 3.2 阅读建议:读者应通过该文档可以了解相关项目的需求分析、使用注意事项以及可能存在的风险 4.产品范围 2.2 手机,平板电脑,MP4,导航仪,上网本,电纸书等使用安卓系统的数码领域(二)综合描述 1.产品的状况 1.1 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他数码领域上。我们开发的相关项目正是一个在安卓平台上开发的软件,可以用这个软件来实现用户在一些简单的手持设备如手机或者平板电脑等上面及时的了解到用户所在城市的天气预报。 2.产品的功能 2.1 天气信息获取 2.2 天气信息显示 3.系统配置功能 3.1 用户类和特性 安卓平台用户:安卓新用户可以使用软件来了解用户所在城市的天气预报。熟悉安卓平台用户还可以选择对相关软件的系统按自己的喜好进行配置并保留自己的个性化系统配置。 安卓软件开发者:安卓软件开发者(喜好者)可以通过相关的开源代码来了解软件运行的原理。 3.2 运行环境 软件需要在支持安卓系统的可移动设备中正确安装才能正常运行。安卓版本需在2.2及以上,同时建议用户如果是在手机移动设备使用的话,需确保手机支持联网服务。 3.3 设计和实现上的限制 Eclipse是开发相关应用软件的首选集成开发环境,安卓开发环境首先需要安装支持java应用软件运行的java开发软件包(即JDK),然后安装集成开发环境Eclipse,最后安装Android SDK的Eclipse的ADT插件。 Android SDK和Eclipse的ADT插件是必须使用的。 软件支持高效、快速的数据存储方式,包括快速数据存储方式SharedPreferences、文件存储和轻量级关系数据块SQLite,可软件可以使用适合的方法对数据进行进程保存和访问。 3.4 假设和约束(依赖) 软件必须在安卓系统下才可以正常运行,若需要获取天气更新或者是短信服务,需确保用户的数码设备支持联网及短信服务。(三)外部接口需求 1 2 用户的手机设备可以支持联网。用户界面 软件接口 软件提供轻量级的进程间通信机制Intent,实现跨进程组件通信。4 访问硬件的API库函数通讯接口 4.1 HTTP 协议:有多种接口可以调用你可以用Java类库封装的HttpConnection 或者用Apach的开源项目的 HttpGet 或者HttpPost,服务器端 需要 编写 Serlvet来响应客户端的请求。 4.2 Sokcet : 就是 服务器端 不断监听 双方约定好的端口号,客户端通过服务器IP去请求连接,连接成功后,得到Socket 的输入输出流,直接操作即可。(四)系统功能需求 天气信息显示和获取 功能描述:需有一个显示天气情况的用户界面,要求百度地图显示各城市位置(如:北京、长沙、广州等3-5个城市),以及用图标表示各城市对应的气象信息,表示出“晴、雨、雪”和“气温”简洁气象信息。输入输出信息: 输入:当触摸某一城市对应的气象图标时,显示该城市当天的温度、湿度、风向和雨雪详细天气信息,并预报该城市后面几天的气象信息。 输出:气象信息的获取,从百度上获取天气预报信息,这些天气数据是通过后台服务获取的,这个后台服务可以按照一定时间间隔,并将各城市的天气信息保存到SQLite数据库中。 二、概要设计 三、Ui界面 我们的ui界面秉承着清新的风格开发出来的。 整个软件界面使用一个线性布局,让所有的元素从屏幕上方向下填充,并给整个线性布局进行权重划分。 线性布局的最上方是一个TextView,显示当前城市的名字,接着往下是一个相对布局,相对布局的左侧是天气的图片,右侧是三个天气相关的参数。 接着是一个线性布局,布局的左上方是三个TextView,分别显示“预报”,“趋势”,“指数”功能,通过点击相应的TextView,下方的一个线性布局展现不同的功能。功能面板文字的下方是一个大的线性布局,用来显示未来三天的天气情况。在这个大的线性布局中,又含有三个小的线性布局,这三个小线性布局中包含了日期,天气图片和风力状况等(这些控件从上到下垂直居中显示)。 通过给整个XML文件中LinearLayout布局的的子级布局添加权重,让各个部分从上到下有序的显示,让当前城市名称在屏幕的上方显示,功能面板位于屏幕下方显示,以匹配不同尺寸屏幕,让软件的显示效果更好。软件的整体布局风格是清新,优美,大方。 四、功能设计 功能上实现实时的获取天气信息,获取百度api返回数据,解析百度api返回的json数据,根据解析到的数据绘制气温趋势图,并将数据反馈到app上的相应的区域。通过使用ViewPager类,来实现天气预报软件中多个城市间的无缝页面切换。由于组员都缺少JAVA开发经验,对安卓开发也不熟悉,所以我们决定采用调用API的方法来实时获取不同城市的天气预报数据,在这次项目中我们将采用百度的车载API。通过HttpClient类和AsyncTask异步类来获取网络数据。最后通过Gson类来解析获取的网络数据,并给页面中的所有的布局空间设置id,在AsyncTask得到网络数据之后将这些数据同步到软件界面上,呈现给用户。 三、功能模块 我主要负责监听程序的设计,监听用户按键,并进行相应的动作。 只要用户滑动面板,就切换到下一个城市,并获得下一个城市的天气数据,显示在面板上。每隔15分钟自动更新天气数据。主要代码如下: 下面的代码处理网络连接部分,用GSON解析网络上获得的Json网页: 下面代码访问网络: 四、心得体会 ——北京中科海教育科技有限公司 一.实训公司介绍 科海集团是在1983年5月由中国科学院和北京市海淀区政府联合创办,是中关村最早成立的高新技术企业,国内知名的IT企业,与“四通、融通、京海、科海”并称为中关村的“两通两海”。2003年,科海集团投资创办北京金科海科技发展有限公司。2004年,公司被认定为中关村高新企业。 北京中科海教育科技有限公司是以软件开发为主的高科技公司,专注于技术提高用户体验为目标,我们追求软件产品的最优化,致力于为客户打造最实用的软件产品。我们主要致力于全球中小型企业信息化系统的开发工作,包括CRM,ERP,协同系统等。涉及政府,房地产,医药等多个行业。同时为广大客户提供全方位的网络综合信息化服务及多层次电子商务解决方案。协助企业创建完备出色的互联网信息平台,利用现代科技手段把握机遇,并创造更高价值。其下属的全资子机构,北京新科海学校致力于IT职业技能培训业务,牢固树立以就业为导向,以服务为宗旨的办学理念,多年来培养了大量的IT领域高技术专门人才,为区域经济和社会发展做出了巨大贡献。 二.关于大学生就业实训 2009年,全国应届高校毕业生将达到万人,加上往年未就业的高校毕业生,就业需求极大。而另一方面,受当前经济形势影响,出现了企业用工需求下降、现有岗位非正常流失等新情况、新问题,致使当今大学生就业问题显得尤为突出。与此同时,当今高等教育和社会需求之间并不能很好地衔接,企业需要的是复合型、实用技能型人才,而高校毕业生所受教育普遍存在与其日后从事岗位所需的实践技能脱节的问题,学历层次不等于技能层次。 按照教育服务市场需求、服从产业结构调整的原则,改造现有高校课程设置结构、调整专业培养方向、强化实用技能培训、为学生提供就业项目实训等创新培养模式成为必然。 为推进高等教育、职业培训与社会需求相衔接,北京中科海教育科技有限公司推出IT领域大学生就业实训项目,本课程由IT企业为新入职技术职位员工的内训课程改造而来,主要针对高校计算机及相关专业毕业生,通过专业的项目开发训练,让学员们在完 成项目的过程中巩固在学校里学习到的基础知识。获得实用、领先的就业经验技能;增加求职竞争力,并在其职业生涯第一年拥有明显优势;在职人员可以丰富自己的职业技能,开拓更为广阔的职业道路。 三.实训项目介绍 Java软件开发实训项目 实训目标: 软件开发实训课程,通过一个完整的软件开发项目,使具有一定编码基础、但没有或只有很少实际工作经验的学员能够了解软件项目开发的整个过程,并最终具备编写项目可行性研究报告、项目开发计划书、软件需求文档、概要设计和详细设计文档、用户手册及项目开发总结报告的能力。 实训项目资料: 开发环境配置手册项目需求文档项目概要设计文档项目详细设计文档项目数据库设计文档程序代码规范开发流程规范程序代码质量控制规范 项目一: 内容管理系统CMS设计与实现 内容管理系统(Content Management System,CMS)内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场,CMS其实是一个很广泛的称呼,从一般的博客程序,新闻发布程序,到综合性的网站管理程序都可以被称为内容管理系统。 在CMS领域,在各个层面都有极多地优点,在政府上网,学校上网,商业门户,信息港,地方门户网,等各种设计到文章发布和用管理的网站建设中。其特点/优势如下: -可以针对各种内容进行分类和发布管理。可以针对不同类型的用户发布不 同的内容,可以将各种内容进行分类。 -可以任意定义内容类型与多媒体支持。 -用户接口可编辑性强,可以根据客户要求订做用户接口和风格模块。 -可分布式管理。站点管理和维护人员无须集中在同一个办公室,甚至都不 用在同城,全球任何一个有网络的地方都可以让您实现高效率的管理。 -可开发性强,可以针对不同的需求进行专门的开发。 容易使用。用户不必具备计算机编程基础、只需根据用户操作手册(或经 过简单演示)就可以轻松地管理并运作整套系统。 系统开发与运行环境: -服务器:基于Intel构架的企业服务器 -操作系统:Microsoft Windows 200x/XP -支持环境:Tomcat/WebLogic Server、JDK -数 据 库:Oracle -编程语言:Java、Servlet、JSP、Javabeans、HTML -设计工具: Dreamweaver、Photoshop、Eclipse等 -客户端:IE6.0以上 前提知识/技术:JavaSE、Java Web编程(JSP/Servlet/JavaBean)、数据库应用、JDBC编程。 项目二: 网络实时通讯系统设计与实现 实时通讯系统(Real-time Communication System,RCS)也称“即时通讯工具”,用于实现网络即使通讯——利用有效硬件,如电脑、视频、可视电话、手机等,在这些终端硬件上安装实时通讯程序,如QQ、ICQ、MSN、网易POPO等,只要双方都安装有同样的这种程序,然后利用网络连接在线,就可以类似面对面交流一样,实行语音、文字、视频等的实时交流。 系统开发与运行环境: -服务器/客户端:主流PC -操作系统:Microsoft Windows 200x/XP -支持环境:Sun JDK -数 据 库:Oracle -编程语言:Java SE -设计工具:UltraEdit/Jcreator/Eclipse等 前提知识/技术:JavaSE、Java GUI编程、Java Scoket编程、多线程编程、数据库应用、JDBC编程。 四.实习特色及优势 实训周期: 项目实训时间由院校和我公司双方协商,实训学时:80学时(两周)。 资深专家 行业内资深技术专家亲自指导,他们在技术、项目及职业发展方面的经验与成就,为参加实习的学生提供最直接高效的实习效果。 全真项目 项目也是至关重要的因素,学生实习的项目就是公司真实开发的项目,代表了当前国际国内IT行业最主流的技术方向及应用领域。 赠送资料 凡参加暑期实训的学员均赠送java学习视频教程一套 五. 时间安排 暑期项目实训时间定于2009年7月20日-2009年7月31日,周一至周五全天实训。 7月20日-7月24日 项目实训 7月27日-7月31日 项目实训 7月26日参观北京奥林匹克公园(免费) 除了暑期之外,其他时间,也欢迎各个大学联系我们,组织学生参加我们的免费实训(为期两周,无任何学习费用,食宿自理)。 六.后勤保障及服务 接待 我们提供从车站到实习公司的一站式接待服务,院校及学生无需为交通、接站、入住基地等事宜操心。 食宿 公司统一安排食宿,安全卫生便捷,以保证所有学生能全身心投入到实习中去。真正感觉北京IT行业的良好氛围。 住宿费一天25元,楼房,24小时热水,有空调。 七.联系方式 联系人:高老师 北京中科海教育发展有限公司安卓开发实训报告 篇5
安卓android课程设计报告 篇6
软件开发项目实训方案 篇7