Android开发实践.docx
- 文档编号:8617011
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:902.94KB
Android开发实践.docx
《Android开发实践.docx》由会员分享,可在线阅读,更多相关《Android开发实践.docx(12页珍藏版)》请在冰豆网上搜索。
Android开发实践
Android开发实践
——应用Android应用程序的主要组成部分实现增删查改
摘要
本文简单的介绍了Android的系统结构,Android开发的环境搭建,Android程序的开发步骤,Andorid应用程序的目录结构。
通过学习到的相关知识,将Android应用程序的主要组成部分都应用上,实践开发了一个简单的增删查改程序。
最后对于Android开发的进一步学习研究谈了一点体会。
一、Android简介
2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。
这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。
Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。
因此,对于软件从业人员来说,Android平台具有无限的吸引力。
1.1Android全景图
1.2Android应用程序的重要组成部分
Anndroid应用程序分4部分:
1)Activity是应用程序的界面;
2)Intent用来传送数据(请求),一个Intent对象主要包含以下一组信息:
Componentname:
指定接收此intent的activity
Thecomponentnameissetby setComponent(), setClass(),or setClassName() andreadby getComponent().
Action:
指定将要执行的动作
TheactioninanIntentobjectissetbythe setAction() methodandreadby getAction().
Data:
数据的URI和MIME类型
The setData() methodspecifiesdataonlyasaURI, setType() specifiesitonlyasaMIMEtype,and setDataAndType() specifiesitasbothaURIandaMIMEtype.TheURIisreadby getData() andthetypeby getType()
Category:
指定接收的component属于什么类型
TheaddCategory()methodplacesacategoryinanIntentobject,removeCategory()deletesacategorypreviouslyadded,andgetCategories()getsthesetofallcategoriescurrentlyintheobject.
Extras:
额外的信息
theextrascanbeinstalledandreadasaBundleusingtheputExtras()andgetExtras()methods.
Flags:
指示系统该如何启动目标组件以及启动后该如何对待
setFlag();
3)service为应用程序提供后台服务;
4)contentProvider为应用程序提供数据;
二、Android开发环境搭建
2.1安装前准备
A.下载JavaSDK1.5
B.下载AndroidSDK
C.下载Eclipse
2.2安装配置
A.安装ADT
B.配置SDK,创建AVD
三、应用程序开发
3.1程序文件目录结构
3.2程序代码
//DatabaseHelper作为一个访问SQlite数据库的助手类,提供两个方面的功能
//第一,通过getReadableDatabase(),或者getWritableDatabase()方法获得SQliteDatabase对象
//第二,提供onCreate(),onUpgrade()两个回调函数允许我们在创建和升级数据时对数据库进行操作
publicclassDatabaseHelperextendsSQLiteOpenHelper{
privatestaticfinalintVERSION=1;
publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,
intversion){
//必须通过super调用父类当中的构造函数
super(context,name,factory,version);
}
publicDatabaseHelper(Contextcontext,Stringname,intversion){
//必须通过super调用父类当中的构造函数
super(context,name,null,version);
}
publicDatabaseHelper(Contextcontext,Stringname){
//必须通过super调用父类当中的构造函数
this(context,name,VERSION);
}
//该函数在第一次创建数据库时执行,实际上是第一次得到SQliteDatabase对象时执行
publicvoidonCreate(SQLiteDatabasedb){
System.out.println("createaDatabase");
//execSQL()用于执行SQL语句
//db.execSQL("createtableuser(idintegerprimarykeyautoincrement,namevarchar(20))");
db.execSQL("createtableuser(idinteger,namevarchar(20))");
}
//更新数据库版本
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
System.out.println("updateaDatabase");
db.execSQL("createtableadmin(idinteger,namevarchar(20))");
}
}
/**
*创建Activity要点
*1.一个Activity就是一个类,这个类要继承Activity
*2.需要覆写onCreate()方法
*3.每个Activity都需要在AndroidMainfest.xml中进行配置
*4.在布局文件中为Activity添加必要的控件,将该布局文件绑定对应的Acitivity
*
*/
publicclassActivityMainextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取在布局文件中定义的相关控件
TextViewmainTextview=(TextView)findViewById(R.id.mainTextView);
ButtoncreateButton=(Button)findViewById(R.id.create);
ButtonupdateButton=(Button)findViewById(R.id.update);
ButtoninsertButton=(Button)findViewById(R.id.insert);
ButtondeleteButton=(Button)findViewById(R.id.delete);
ButtonupdateRecordButton=(Button)findViewById(R.id.updateRecord);
ButtonqueryButton=(Button)findViewById(R.id.query);
//设定控件的显示内容
mainTextview.setText(R.string.mainTextVeiw);
createButton.setText("CreateDatabase");
updateButton.setText("UpdateDatabase");
insertButton.setText("Insert");
deleteButton.setText("Delete");
updateRecordButton.setText("Update");
queryButton.setText("Query");
//按钮绑定监听器
createButton.setOnClickListener(newCreateListener());
updateButton.setOnClickListener(newUpdateListener());
insertButton.setOnClickListener(newInsertListener());
deleteButton.setOnClickListener(newDeleteListener());
updateRecordButton.setOnClickListener(newUpdateRecordListener());
queryButton.setOnClickListener(newQueryListener());
}
//创建数据库
classCreateListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
//创建一个DatabaseHelper对象
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database");
//只有调用了DatabaseHelper对象的getReadableDatabase方法或者getWritableDatabase()
//才会打开或者创建一个数据库
SQLiteDatabasedb=dbHelper.getReadableDatabase();
}
}
//更新数据库版本
classUpdateListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database",2);
SQLiteDatabasedb=dbHelper.getReadableDatabase();
}
}
//向数据库中插入记录
classInsertListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
//生成ContentValues对象
ContentValuesvalues=newContentValues();
//向该对象插入键值对,其中键是列名,值是希望插入到这一列的值
values.put("id",1);
values.put("name","pengyijun");
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database",2);
SQLiteDatabasedb=dbHelper.getWritableDatabase();
//调用insert方法,将数值插入数据库
db.insert("user",null,values);
}
}
//删除数据库中的记录
classDeleteListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database",2);
SQLiteDatabasedb=dbHelper.getWritableDatabase();
db.delete("user","id=?
",newString[]{"1"});
}
}
//更新数据库中的记录
classUpdateRecordListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database",2);
SQLiteDatabasedb=dbHelper.getWritableDatabase();
ContentValuesvalues=newContentValues();
values.put("name","yuanxin");
db.update("user",values,"id=?
",newString[]{"1"});
}
}
//查询数据库中的记录,并将查询结果通过Intent对象传递到其它的Activity中显示
classQueryListenerimplementsOnClickListener{
publicvoidonClick(Viewv){
Stringstr="";
DatabaseHelperdbHelper=newDatabaseHelper(ActivityMain.this,"test_database",2);
SQLiteDatabasedb=dbHelper.getReadableDatabase();
Cursorcursor=db.query("user",newString[]{"id","name"},"id=?
",newString[]{"1"},null,null,null);
while(cursor.moveToNext()){
Stringname=cursor.getString(cursor.getColumnIndex("name"));
intid=cursor.getInt(cursor.getColumnIndex("id"));
System.out.println("query-->"+name);
str=str+"id:
"+id+",name:
"+name+"\n";
}
//生成一个Intent对象
Intentintent=getIntent();
intent.putExtra("resultValue",str.trim());
intent.setClass(ActivityMain.this,ActivityResult.class);
ActivityMain.this.startActivity(intent);
}
}
}
3.3程序结果
四、小结
该程序开发时间比较匆忙,水平也很有限,还有很多不完善的地方,如新增时应该使用EditText控件进行录入内容新增,查询显示应该使用表格显示多行数据等等。
在这个简单的开发实践过程中,我学会了很多知识,也深刻的理解了Android环境的搭建、Intent、Activity、SQLite,以及简单的Linux命令的使用等。
在开发过程中我也认识到要学好Android平台的移动开发需要很好的Java基本功,需要系统的学习Java基础,JavaWeb开发,J2EE开发等相关内容。
在接下来的学习中我还需要深入学习Android客户端单机功能开发,在有了一定的基础后利用现在的网上开放平台进行Android实时更新客户端应用程序开发,最后再进行Android服务器端程序开发,希望能够通过循序渐进的学习为开发湘钢自己的移动信息系统平台做一定的技术储备。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 开发 实践