3g嵌入式短学期实习报告 - 图文

更新时间:2024-06-19 15:53:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

3G短学期实习报告

教学单位 专 业 班 级 学生姓名 学 号 指导教师

目录

1 实训目的·············································································1 2 实训时间和地点·····································································1 3 实训单位简介········································································1 4 实训内容·············································································2 4.1实训期间完成的学习任务························································2 4.2实习期间完成的实践项目························································7 5实训收获与体会·····································································11 6实训中存在的不足··································································13 7 致谢·················································································13

一、实训目的

学习的目的的在于创新,提高自己的实际操作能力,熟练掌握技能,立志成为一位编程高手。

学习java,android课程,并且能够熟练的使用编程工具Eclipse,android SDK等。 能够独立完成项目,解决问题,并在实习中不断提高,丰富自己的知识,为以后的学习和工作打下坚实的基础。

二、实训时间和地点

1.实训时间: 2.实训地点:

三、实训单位简介

文达教育集团成立于1993年,是以IT职业教育为主,集高新技术为一体的集团公司,涉及网络工程、软件开发、网络游戏、电子商务、职业教育、人才服务等多个领域。拥有文达信息技术学院、文达思科网络技术学院、文达游戏动漫学院、文达软件学院及浙江、湖北、江苏、河南、辽宁、福建等全国近30家 IT教育和研发机构。

文达教育集团与微软公司、思科公司、PROMETRIC、ATA、ADOBE、AUTODESK、CROEL等多家IT国际知名企业合作,16年来,文达已为社会培养30多万名各类IT技术人才和管理人才,成为倍受关注的IT职业教育典范,为我国信息化事业的发展作出了突出的贡献。文达教育集团荣获了“中国IT教育十大影响力品牌”、“中国IT教育就业服务杰出贡献奖”、“中国IT教育最佳示范基地”等荣誉称号。

2001年5月,世界著名科学家、诺贝尔物理学奖获得者杨振宁教授为安徽文达信息技术职业学院题写校名;2007年11月,杨振宁夫妇又莅临文达电脑集团,对文达电脑教育给予了高度评价,表达了对文达电脑教育的不了情缘。

杭州蜚声腾茂教育科技有限公司直属文达教育集团,集产、学、研为一体,致力于为大学生提供完善、高品质的教育服务,公司主要致力于3G嵌入式开发、软件研发、电子商务开发,以企业真实项目实训和企业合作为大学毕业生定制成功就业解决方案。

四、实训内容

1、当前Android发展趋势 简介

Android(中文俗称安卓)是一个以Linux为基础的开源操作系统,主要用于移动设备,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中。

Android系统最初由安迪·鲁宾(Andy Rubin)开发制作,最初开发这个系统的目的是利用其创建一个能够与PC联网的“智能相机”生态圈。但是后来,智能手机市场开始爆炸性增长,Android被改造为一款面向手机的操作系统。于2005年8月被美国科技企业Google收购。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商成立开放手持设备联盟来共同研发改良Android系统,随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。让生产商推出搭载Android的智能手机,Android操作系统后来更逐渐拓展到平板电

脑及其他领域上。

2010年末数据显示,仅正式推出两年的Android操作系统在市场占有率上已经超越称霸逾十年的诺基亚Symbian系统,成为全球第一大智能手机操作系统。

市场份额

2009年第二季度,根据市场研究公司Canalys的数据显示,Android占据全球智能手机操作系统市场2.8%的份额,这个数字在2010年第四季度的全球份额中增长到了33%,Android操作系统也因此击败了诺基亚的Symbian系统成为了全球第一大智能手机操作系统。2012年5月,根据市场调查公司的数据显示,Android操作系统在全球智能手机操作系统中的份额已经过半,达到了60%,全球有一半的智能手机使用Android操作系统。

2010年5月的数据显示,Android操作系统在2010年第一季度的销量超过了对手iOS平台,成为美国最大的智能手机操作系统。

根据本土市场研究公司ComScore的数据显示,2009年11月时,Android在美国的智能手机操作系统市场的占有率为5.2%,在2010年2月时,这个数字变成了9.0%,而在2010年第三季度末时,Android已经占据了美国市场的21.4%的份额。截止至2011年6月,Google表示,每日通过Google服务器激活的Android设备达到了55万部,并且以每周4.4%的速度增长。2011年8月1日,Canalys的数据显示,Android已占据美国48%的智能手机市场份额。2011年10月13日,Google表示,全球市场上有1.9亿部Android设备通过Google认证,而在2011年11月16日,全球市场上已有2亿部Android设备通过Google认证。但是,搭载Android操作系统的平板电脑却只有1.9%的份额,只有380万Android蜂巢平板被卖出,远远低于苹果公司的iPad的销量。2012年6月,Google在2012 Google I/O大会上表示全球市场上有4亿部Android设备被启动,每天启动一百万台

2013年5月,Android在中国的占有率有71.5%,超过其主要竞争对手苹果公司约50%。世界占有率亦有近70%。

Android开发联盟

Android开发联盟(MobiDever.Android开发联盟),由Sundy(张凌华)于2011年创立,关注中国Android开发的企业、人物及事件,是Android开发爱好者的聚集地之一。

随着移动互联网高速迅猛的发展,风云变幻,时时刻刻都在演绎着各种各样的故事。Android开发则必将成为移动互联网中不可或缺的一部分。交流Android开发心得,Android开发教程共享,当然是Android开发联盟。

android开发联盟已经更名为麦可网。打造以移动技术开发者为核心的实名生态圈,提供供高端职业培训、猎头、技术分享、项目外包、职业规划等综合性服务。

谷歌的亲儿子

谷歌亲儿子是指由谷歌自己设计的手机、平板等设备,因为谷歌不是硬件厂商所以并不能自己制造,于是让HTC、三星等公司代工,设计出的手机叫亲儿子。

2、Android手机开发的一些基本经验 安卓四大组件

Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑

service:后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的食物,定义好需要接受的Intent提供同步和异步的借口

Content Provider:是Android提供的第三方应用数据的访问方案,可以派生Content Provider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的借口模型,大大简化上层应用,对数据的整合提供了更方便的途径

BroadCast Receiver:接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。

安卓界面布局

1.LinearLayout ( 线性布局 ) :(里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角)

线性布局分为水平线性和垂直线性二者的属性分别为: android:orientation= \horizontal \android:orientation= \。

2.RelativeLayout ( 相对布局 ) : (里面可以放多个控件,但是一行只能放一个控件) 附加几类 RelativeLayout 的属性供大家参考: 第一类 : 属性值为 true 或 false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中

android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的左边缘 android:layout_alignParentRight 贴紧父元素的右边缘 android:layout_alignParentTop 贴紧父元素的上边缘

android:layout_alignWithParentIfMissing 若找不到兄弟元素以父元素做参照物 第二类:属性值必须为 id 的引用名“ @id/id-name ” android:layout_below 在某元素的下方 android:layout_above 在某元素的上方 android:layout_toLeftOf 在某元素的左边 android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐 android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐 android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐 第三类:属性值为具体的像素值,如 30dip , 40px android:layout_marginBottom 离某元素底边缘的距离 android:layout_marginLeft 离某元素左边缘的距离 android:layout_marginRight 离某元素右边缘的距离 android:layout_marginTop 离某元素上边缘的距离

3.TableLayout ( 表格布局 ) : (这个要和TableRow配合使用,很像html里面的table)

这个表格布局不像HTML中的表格那样灵活,只能通过 TableRow 属性来控制它的行而列的话里面有几个控件就是几列(一般情况)。 如: 表示两行两列的一个表格。

android:gravity=\书面解释是权重比。其时就是让它居中显示。它还可以动态添加里面的每行每列。如下代码所示: /*根据id查找表格对象*/

TableLayout tableLayout = (TableLayout) findViewById(R.id.table01); /*创建列对象*/

TableRow tableRow = new TableRow(this); /*文本框对象*/

TextView temp = new TextView(this); temp.setText(\的值\/*将此文本添加到列中*/ tableRow.addView(temp);

android:stretchColumns=\它的意思就是自动拉伸1,2,3,4列。

4.AbsoluteLayout ( 绝对布局 ) : (里面可以放多个控件,并且可以自己定义控件的x,y的位置)

5.FrameLayout ( 帧布局 ) :(里面可以放多个控件,不过控件的位置都是相对位置)

安卓软件开发流程

1、手机应用程序开发\需求分析\2、手机应用版本确认 3、签订协议

4、手机应用策划及创意 5、手机应用开发 6、移动应用发布 7、手机应用维护 8、应用升级 9、应用案例

Android Intent

1 Intent用法

1.1启动一个特定的Activity

Intent intent=new Intent(CurrentActivity.this,OtherActivity.class); startActivity(intent); 1.2启动一个未指明的Activity

Intent inter=new Intent(Intent.ACTION_DIAL,Uri.parse(“tel:115-1345”)); startActivity(intent); 1.3处理一个Activity的返回值

Public void onCreate(Bundle saveInstanceState){

super.onCreate(savedInstanceState); listener1=new OnClickListener(){ public void onClick(View v){

Intent intent1=new Intent(ActivityMain.this,Activity1.class); Intent1.putExtra(“activityMain”,”数据来自activityMain”); startActivityForResult(intent1,REQUEST_CODE); } };

Listener2=new OnClickListener(){ public void onClick(View v){ setTitle(“这是在ActivityMain”);

Intent intent2=new Intent(ActivityMain.this,Activity2.class); startActivity(intent2); } };

setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1); button1.setOnClickListener(listener1); button2=(Button)findViewById(R.id.button2); button2.setOnClickListener(listener2); setTitle(“ActivityMain”); } @Override

Protected void onActivityResult(int requestCode,int resultCode,Intent data){ If(requestCode==REQUEST_CODE){ If(resultCode==RESULT_CANCELED) setTitle(“取消”);

else if(resultCode==RESULT_OK){ String temp=null;

Bundle extras=data.getExtras(); If(extras!=null){

Temp=extras.getString(“store”); }

setTitle(temp); } } }

2 Intent应用举例

Activity01.java

public class Activity01 extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); /* 设置显示main.xml布局 */ setContentView(R.layout.main);

/* findViewById(R.id.button1)取得布局main.xml中的button1 */ Button button = (Button) findViewById(R.id.button1); /* 监听button的事件信息 */

button.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) {

/* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */

intent.setClass(Activity01.this, Activity02.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity01.this.finish(); } }); } }

Activity02.java

public class Activity02 extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); /* 设置显示main2.xml布局 */ setContentView(R.layout.main2);

/* findViewById(R.id.button2)取得布局main.xml中的button2 */ Button button = (Button) findViewById(R.id.button2); /* 监听button的事件信息 */

button.setOnClickListener(new Button.OnClickListener() {

public void onClick(View v) {

/* 新建一个Intent对象 */ Intent intent = new Intent(); /* 指定intent要启动的类 */

intent.setClass(Activity02.this, Activity01.class); /* 启动一个新的Activity */ startActivity(intent); /* 关闭当前的Activity */ Activity02.this.finish(); } }); } }

3 Android系统自带的Action介绍 3.1ACTION_MAIN

Android.intent.action.MAIN,在每个AndroidManifest.xml问洞中都能看到,标记当前的Activity作为一个程序的入口。 3.2ACTION_VIEW 将数据显示给用户 3.3ACTION_DIAL

用于描述给用户打电话的动作 3.4ACTION_PICK

从特定的一组数据中进行选择数据操作 3.5ACTION_DEIT 编辑特定的数据 3.6ACTION_DELETE 删除特定的数据

4与动作Action相关联的数据Data介绍

VIEW_ACTION content://contacts/1显示标示符为1的联系人的详细信息 EDIT_ACTION content://contacts/1编辑标示符为1的联系人的详细信息 VIEW_ACTION content://contacts/显示所有联系人列表

PICK_ACTION content://contacts/显示所有联系人的列表,并且允许用户在列表中选择一个联系人,然后把这个联系人返回给父Activity 5 Intent中其他属性介绍

类别category:它为执行动作的附加信息

数据类型type:显式指定Intent的目标组件的类名称。 组件component:指定Intent的目标组件的类名称

附加信息extras:是其他所有附加信息的集合 6 Android解析Intent实现

6.1直接Intent:指定了component属性的Intent或者setClass 6.2间接Intent:没有指定comonent属性的Intent。

6.3如果Intent指明了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不匹配

6.4如果Intent没有提供type,系统将从data中得到数据类型

6.5如果Intent中的数据不是具体内容而是URI形式的话,则将根据Intent中数据的scheme进行匹配

6.6如果Intent指定了一个或多个category,这些类别必须全部出现在组件的类别列表中

SQLite 数据库

1、SQLite简介

SQLite第一个Alpha版本诞生于2000年5月. 至今已经有4个年头了. 而在今年的5月SQLite也迎来了一个新的里程: SQLite 3.

万网主机适用围:标准企业A型以上UNIX主机,以上主机都已经安装SQLite2.0数据库。 下面是访问SQLite官方网站: http://www.sqlite.org/ 时第一眼看到关于SQLite的特性. 1. ACID事务

2. 零配置 – 无需安装和管理配置

3. 储存在单一磁盘文件中的一个完整的数据库 4. 数据库文件可以在不同字节顺序的机器间自由的共享 5. 支持数据库大小至2TB

6. 足够小, 大致3万行C代码, 250K

7. 比一些流行的数据库在大部分普通数据库操作要快 8. 简单, 轻松的API

9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定 10. 良好注释的源代码, 并且有着90%以上的测试覆盖率 11. 独立: 没有额外依赖

12. Source完全的Open, 你可以用于任何用途, 包括出售它 13. 支持多种开发语言,C, PHP, Perl, Java, ASP.NET,Python 2、SQLite类型 SQLite的数据类型

首先你会接触到一个让你惊讶的名词: Typelessness(无类型). 对! SQLite是无类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有在一种情况下不是, 稍后解释). 对于SQLite来说对字段不指定类型是完全有效的. 如:

Create Table ex1(a, b, c);

诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎. SQLite支持常见

的数据类型, 如: CREATE TABLE ex2( a VARCHAR(10), b NVARCHAR(15), c TEXT, d INTEGER, e FLOAT, f BOOLEAN, g CLOB, h BLOB, i TIMESTAMP, j NUMERIC(10,5)

k VARYING CHARACTER (24),

l NATIONAL VARYING CHARACTER(16) );

前面提到在某种情况下, SQLite的字段并不是无类型的. 即在字段类型为”Integer Primary Key”时.

3、如何连接SQLite? 用PHP操作sqlite数据库 a、 如何连接sqlite数据库?

if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { select * from sqlite_master; echo \数据库连接成功!n \ } else { die($sqliteerror); }

b、 如何列出数据库中所有的表?

if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) { $result = sqlite_array_query($db, 'select * from sqlite_master;'); foreach ($result as $entry) { echo 'talbe name='.$entry['name'].\n\

echo 'sql='.$entry['sql'].\n\ echo \\ }

sqlite_close($db); } else { die($sqliteerror); }}

c、 对sqlite数据库的查询,以及结果集的显示 if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

$result = sqlite_array_query($db, 'select name, email from user ', SQLITE_ASSOC); echo \表查询结果: n\ echo \

foreach ($result as $entry) { echo 'n\ } echo ' name ';

sqlite_close($db); } else { die($sqliteerror); }

d、 数据库对象记录的增加、删除、修改

sqlite_query($db, \ALUES('user\ sqlite_query($db, \

sqlite_query($db, 'UPDATE user SET email=\ 4、SQLite的管理

管理工具也有不少,建议您使用sqlitemanager,用法酷像phpmyadmin. 可以到 http://sqlitemanager.sourceforge.net/下载

email

'.$entry['name'].\\

3.实训期间完成的学习任务

Android基础

01、Android程序框架

02、AndroidUI整体介绍 Android.View和android.widget包 03、TextView 04、EditText 05、Button

06、RadioButton、RadioGroup 07、CheckBox

08、ImageView 09、ProgressBar 10、SeekBar 11、Toast 12、LinearLayout 13、TableRow 14、FrameLayout 15、ScrollView 16、RelativeLayout 17、TableLayout 项目实例

一: 基本用户界面的游戏主菜单实例项目实例 二: 基本用户界面的游戏设置菜单实例 Android之UI界面开发 01、Android应用程序资源 02、StateListDrawable 03、AnimationDrawable 04、View类—界面 05、View – 事件响应 06、Canvas类 07、Paint类 08、Bitmap类 09、BitmapFactory类

10、触屏事件及持续按键的响应 11、地图编辑器的使用 12、游戏地图的实现 13、SurfaceView类 14、SurfaceHolder

项目实例:图形界面的实践项目 Android多媒体与传感器的开发 01、音频播放整体简介 02、MediaPlayer 03、SoundPool

04、视频播放与Camera拍照 05、VideoView 06、Camera图像采集 07、传感器的应用开发介绍 08、传感器应用的开发流程

09、加速度传感器开发 10、SensorSimulator

11、Android常用传感器Orientation MagneticFieldTemperature、Light、 Pressure 项目实例

一: 游戏的背景及音效处理项目实例 二:传感器应用

Andriod数据库与文件存储 01、File存储简介 02、文件的读写 03、读写SD卡上文件 04、游戏中数据存储及应用 05、SharedPreferences与Editor 06、SQLite 数据库 07、SQLiteDatabase 08、SQLiteOpenHelper 09、SQLite3工具 10、ContentProvider简介 11、基于Socket的网络通信 12、ServerSocket 13、Socket

14、Socket通信实例 15、基于Http协议网络通信 16、URL

17、HttpURLConnection

4.实习期间完成的实践项目 1.打电话发短信

Button btcall = (Button) this.findViewById(R.id.btcall); btcall.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String num = ed1.getText().toString();

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse(\+num));

}

startActivity(intent);

});

2.画廊

class ImageAdapter extends BaseAdapter{

private Context context; private int[] im;

public ImageAdapter(Context c,int[] im){ }

public int getCount() { }

public Object getItem(int position) { }

public long getItemId(int position) {

// TODO Auto-generated method stub // TODO Auto-generated method stub return im[position];

// TODO Auto-generated method stub return im.length; this.context = c; this.im = im;

}

return position;

public View getView(int position, View convertView, ViewGroup parent) {

} }

ImageView iv = new ImageView(context); iv.setImageResource(im[position]);

iv.setLayoutParams(new Gallery.LayoutParams(200,200)); iv.setScaleType(ImageView.ScaleType.FIT_XY); return iv;

3.谁是幸运儿

public class LuckyActivity extends Activity {

String[] names = { \许世伟\, \杜星星\, \韩坚\, \黄哲\, \何美笑\ };

int[] imgs = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d,

R.drawable.e };

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main);

final ImageView imgr = (ImageView) this.findViewById(R.id.imgr); final TextView tvr = (TextView) this.findViewById(R.id.txr); Button btr = (Button) this.findViewById(R.id.btl);

btr.setOnClickListener(new OnClickListener() { public void onClick(View v) { Random r = new Random();

int lucky = r.nextInt(names.length); tvr.setText(names[lucky]);

imgr.setImageResource(imgs[lucky]);

}

});

} }

4.计算器

public class CalculatorActivity extends Activity { String str1; String str2; int result; int result1; int result2; TextView tv; Button temp; int flag = 0;

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

tv = (TextView) this.findViewById(R.id.tv);

int[] buttons = { R.id.bt0, R.id.bt1, R.id.bt2, R.id.bt3, R.id.bt4,

R.id.bt5, R.id.bt6, R.id.bt7, R.id.bt8, R.id.bt9 };

Button btc = (Button) this.findViewById(R.id.btc); Button btjia = (Button) this.findViewById(R.id.btjia); str1 = String.valueOf(tv.getText()); str2 = \;

Button btjian = (Button) this.findViewById(R.id.btjian); Button btchen = (Button) this.findViewById(R.id.btchen); Button btchu = (Button) this.findViewById(R.id.btchu); Button btdengyu = (Button) this.findViewById(R.id.btdengyu); btc.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) { }

String str = \; tv.setText(str);

});

for (int i = 0; i < buttons.length; i++) { }

buttonListener(btjia, 1); buttonListener(btjian, 2); buttonListener(btchen, 3); buttonListener(btchu, 4);

btdengyu.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

result2 = Integer.parseInt(str2); switch (flag) { case 1:

result = result1 + result2; break;

temp = (Button) findViewById(buttons[i]); temp.setOnClickListener(new OnClickListener() {

public void onClick(View v) { }

str2 = tv.getText().toString().trim();

str2 = str2 + String.valueOf(((Button) v).getText()); tv.setText(str2);

});

case 2:

result = result1 - result2;

break;

case 3: result = result1 * result2;

break;

case 4: result = result1 / result2; break;

}

String str = (result + \).trim(); tv.setText(str);

}

});

}

public void buttonListener(Button button, final int id) { button.setOnClickListener(new OnClickListener() { public void onClick(View v) { String str = tv.getText().toString().trim(); result1 = Integer.parseInt(str); tv.setText(\); flag = id;

}

});

}

}

5.坦克大战

public class HjgameActivity extends Activity { public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main);

GetAssets getAssest = new GetAssets(this, \); int[][] map = new int [26][26]; map = getAssest.getMap();

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rlo);

Maplyout maplyout = new Maplyout(this, \); relativeLayout.addView(maplyout); }

}

public class GetAssets { }

byte[] buffer;

public GetAssets(Context context, String str) { }

public int[][] getMap() { }

int[][] map = new int[26][26]; for (int i = 0; i < 26; i++) { }

return map;

for (int j = 0; j < 26; j++) { }

map[i][j] = buffer[j + i * 28] - 48;

try {

InputStream in = context.getAssets().open(str); int size = in.available(); buffer = new byte[size]; in.read(buffer); in.close();

} catch (IOException e) { }

e.printStackTrace();

6.ZUCC系统

public class LoginActivity extends Activity{

Bundle buddle = new Bundle() ;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.login);

final EditText etname = (EditText) this.findViewById(R.id.etloginname); final EditText etpass = (EditText) this.findViewById(R.id.etloginpass);

Button btlogin = (Button) this.findViewById(R.id.btlogin); Button btreg = (Button) this.findViewById(R.id.btreg); btreg.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Intent intent = new

Intent(LoginActivity.this,RegActivity.class);

}

startActivity(intent);

});

btlogin.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String username = etname.getText().toString().trim(); String passord = etpass.getText().toString().trim(); if(username.equals(\)||passord.equals(\)){

Toast.makeText(LoginActivity.this, \用户名和密码不能为空\,

Toast.LENGTH_LONG).show();

}else if(username.equals(\)&&passord.equals(\)){

Toast.makeText(LoginActivity.this, \登陆成功\, buddle.putString(\,username); Intent intent = new

Toast.LENGTH_LONG).show();

Intent(LoginActivity.this,SelectActivity.class);

} }

public class RegActivity extends Activity {

AlertDialog ad; int imgPosition; ImageButton ibs;

int[] imgs = { R.drawable.m01, R.drawable.m02, R.drawable.m03,

R.drawable.m04, R.drawable.m05, R.drawable.m06, R.drawable.m07, R.drawable.m08, R.drawable.m09, R.drawable.m10, R.drawable.m11, R.drawable.m12, R.drawable.m13, R.drawable.m14, R.drawable.m15,

}

intent.putExtra(\, username); startActivity(intent);

}else{ }

Toast.makeText(LoginActivity.this, \用户名或密码错误\,

Toast.LENGTH_LONG).show();

});

R.drawable.m16, R.drawable.m17, R.drawable.m18,};

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.reg);

ibs = (ImageButton) this.findViewById(R.id.ibselect);

final EditText etpass = (EditText) this.findViewById(R.id.etregpass);

final EditText etcontpass = (EditText) this.findViewById(R.id.etregcon);

final EditText etuser = (EditText) this.findViewById(R.id.etreguname);

Button back = (Button) this.findViewById(R.id.btback); Button btreg = (Button) this.findViewById(R.id.btreg); Button resect = (Button) this.findViewById(R.id.btreset); btreg.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

String uname = etuser.getText().toString().trim(); String pass = etpass.getText().toString().trim(); String con = etcontpass.getText().toString().trim(); if (uname.equals(\)) {

Toast.makeText(RegActivity.this, \用户名不能为空\,

Toast.LENGTH_LONG).show();

} else if (!pass.equals(\) && !con.equals(\)

&& pass.equals(con)) {

Toast.makeText(RegActivity.this, \两次密码输入一致\,

Toast.LENGTH_LONG).show();

Intent intent = new Intent(RegActivity.this,

LoginActivity.class);

startActivity(intent);

} else {

Toast.makeText(RegActivity.this, \两次密码输入不一致或密码为空\, }

}

Toast.LENGTH_LONG).show();

});

ibs.setOnClickListener(new OnClickListener() {

public void onClick(View v) { }

initDialog(); ad.show();

}

});

public void initDialog() {

AlertDialog.Builder adb = new

AlertDialog.Builder(RegActivity.this);

class MyAdapter extends BaseAdapter {

private Context context;

public MyAdapter(Context context) { }

public int getCount() {return imgs.length;}

this.context = context;

adb.setTitle(\选择图像\);

public void onClick(DialogInterface dialog, int which) { }

ibs.setImageResource(imgs[imgPosition]);

adb.setPositiveButton(\确定\, new DialogInterface.OnClickListener() {

});

adb.setNegativeButton(\取消\, new DialogInterface.OnClickListener() { }

public void onClick(DialogInterface dialog, int which) { }

});

LayoutInflater inflater = LayoutInflater.from(RegActivity.this); View view = inflater.inflate(R.layout.imgswitch, null); Gallery gallery = (Gallery) view.findViewById(R.id.gallery); gallery.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView arg0, View arg1, int arg2, }

long arg3) {

imgPosition = arg2;

ibs.setImageResource(arg2);

});

gallery.setAdapter(new MyAdapter(this)); gallery.setSelection(imgs.length / 2); adb.setView(view); ad = adb.create();

public Object getItem(int position) {return null;} public long getItemId(int position) {return 0;

}

public View getView(int position, View convertView, ViewGroup parent) {

} }

}

ImageView img = new ImageView(context); img.setImageResource(imgs[position]); img.setAdjustViewBounds(true);

img.setLayoutParams(new Gallery.LayoutParams(100, 100)); img.setPadding(15, 15, 15, 15); return img;

五、实训收获与体会

为期两周的短学期已悄然离去,刚来时的那种新鲜好奇早飞到了九霄云外,更多的是离开时的那种不舍和对自己及所学的反思。当我第一天来这里时,和其他同学一样怀着兴奋得心情踏进教室,或许是单纯的对这个新环境的好奇、也或许是曾经对这儿有一点了解想亲自见证一下,因为听的学长说只有来到这里才能学到与学校不同的东西,才能更接近实际项目工程。的确如他们所说,运行程序前必须作许多准备工作。当然做成功一个项目必须先写好需求分析。就这样既兴奋又好奇的跟着老师一步一步往下走,跟着在键盘上忙碌的敲代码、调整程序。实习时间慢慢的在减少,而程序却相反——越来越难,越来越繁。因为一个小环节与大家拉开了距离,在一个庞大的项目中是不允许任何一处掉链子的。看到同学们早已“轻车熟路”操作自如了,而我却不知所措,立刻就有了压力。一天下来感受最深的就是那种巨大的差距。学校所学与实际应用中的脱节。在我困惑与迷茫时,老师给我解释说:“咱用的编程软件是eclipse,更加注重的是对学生实战能力的培养,在学校所学专业知识的基础上让我们学习最新的编程技术,通过做项目的方式来让我们明白实践中的编程到底是怎样的??”正是冀老师的耐心讲解让我重新找回了自信,几天下来从简单的java程序到第一个Android程序??虽然程序中还是有太多的疑惑但更多的是增长了见识看清了差距。通过实际项目的开发我有以下几点收获: 1.多向老师、同学虚心请教,也别说自己学的不怎么样,不然会大大减少自己的自信,从而与大家的差距越来越大。2.编程以前一定要对整个项目有仔细的了解,最好能写好需求分析,这样在实际操作时就会更加调理,而且不会遗漏东西。3.做任何项目都离不开团队合作。所以我们一定要注意团队合作意识,多和小组内的人交流。4.在编程中一定要规范,绝对不可以随性 在达内的这半个月培训我感觉获益匪浅。虽然与课本知识不同,至少我看清了实际做项目与书本知识之间的差距,不至于在就业后手足无措。这次实习对我以后的学习甚至就业带来了巨大的帮助。感谢学校,感谢文达的刘俊老师。

六、实训中存在的不足

实训马上就要结束了,在收货很多的同时,也发现自己有很多的不足。例如:java基础不扎实,很多知识点还没有很好的掌握。缺少独立性,有时候碰到问题,不够客观、冷静、审慎,导致很长时间不能解决。缺少和老师的沟通,影响了学习效率。缺少足够的锻炼,虽然通过短学期的学习有了加强,但是短学期结束后不能放松,还是要不断的学习和实际操作。

经过这次短学期,我对企业中实际的项目工作和程序编写又有了新的认识,企业真正需要的不仅是有实际的工作能力和工作经验,更加重要的是认真,扎实,沉稳,负责的工作态度,合格的程序员是不会容忍一个错误的存在,就像老师说的:“允许用户犯错误,但是不允许我们犯错误!”写程序不仅是对自己和老板负责,更重要的是对用户的负责。我想我正是缺少这种心态,做任何是先要端正自己的态度,这才是最最重要的。

七、致谢

感谢学校为我提供了这次实训的机会 感谢指导教师的细心指导 感谢文达各位老师的教导

本文来源:https://www.bwwdw.com/article/us43.html

Top