android开发人员工作总结.docx
- 文档编号:14062345
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:19
- 大小:25.90KB
android开发人员工作总结.docx
《android开发人员工作总结.docx》由会员分享,可在线阅读,更多相关《android开发人员工作总结.docx(19页珍藏版)》请在冰点文库上搜索。
android开发人员工作总结
android开发人员工作总结2021
项目开发总结报告
1引言
1.1编写目的
总结开发经验与学习中的不足
1.2背景
以方便用户记录日常学习心得,生活体会为目的,进行主题为“随心笔记”的应用开发
2实际开发结果
2.1产品
2.2主要功能和性能
能够查看笔记的目录,记录笔记完成时间。
能够改变主题颜色,目录排版方式,拥有简洁的主题。
对于涂鸦功能,插入图片,密码锁等功能未能实现。
3开发工作评价
3.1对产品质量的评价
本应用拥有简单实用的功能,能够满足一般用户的需要
3.3对技术方法的评价
开发中使用了软件工程中的增量开发模型,黑盒测试等技术,使开发逐步向前发展
3.4出错原因的分析^p
对于部分Android版本支持性不好,不能正常使用安装等
24经验与教训
通过这次开发,我们体验了开发不易,需要很多人员的合作。
开发过程中,必须明确整体目标,不能东一榔头,西一棒槌。
另外由于学习时间短,对很多东西都不太了解,还好通过CSDN等一些网站能够找到有益的帮助,感谢那些博客,论坛。
Android开发基础教程
20__-4-13周一2CJ02目录
1.什么是Android?
2.Android应用开发环境3.Gradle4.模拟器Emulator5.开发一个安卓应用程序的步骤6.关于多个模拟器的问题7.安卓工程文件的结构8.android界面文件---_ml文件9.android程序文件---文件10.界面布局方式11.几个常用组件12.Roast组件13.对话框AlertDialog14.几条重要的语句15.监听器Listener16.识别响应事件的组件17.界面切换
18.界面之间的数据传递19.Activity生命周期20.多媒体播放
21.日志文件在程序调试中的使用22.使用_ML文件保存数据
23.使用T_T文件保存数据24.使用数据库保存数据25.时间组件26.线程Thread27.视频播放VideoView28.MediaPlayer,SurfaceView和SurfaceHolder播放视频29.录制音频MediaRecorder30.菜单组件
1.什么是Android?
移动设备(常常指手机mobile)的操作系统,由google公司出品,是免费的,最早是基于Linu_平台的;目前已经推出的Android3.0是平板电脑上的操作系统。
其它的手机操作系统有:
iPhone系统等。
手机厂商:
三星(Samsung,宏达电(HTC),摩托罗拉(Motorola),华硕,索尼,Garmin等都支持iPhone系统。
Android系统功能:
自定义用户界面,支持蓝牙,多点触摸,具有导航功能和语音识别功能,结合了google地图。
Android软件开发工具SDK
4.0。
Android系统特点:
虚拟键盘,以WebKit为核心的WebView组件,可以使用HTML,script等。
2.Android应用开发环境Eclipse+ADT+AndroidSDK。
ADT---Android开发工具插件(AndroidPlugsforEclipse).开发环境安装注意事项:
关闭防毒软件,按顺序安装,保持网络畅通,比较耗时。
特别说明,安装和运行需要高配置机器和高速网络,比较费时。
(1)安装
JDK。
甲骨文
网站:
/pushChar,putShort,putBoolean,pushChar等等
Uriuri=Uri.parse(“/getDouble,2.方法2:
调用有返回参数例1,在第一个界面中:
privatestaticfinalintACTIVITY_EDIT=1;Bundlebundle=newBundle;bundle.pushString(“name”,“David”);Intentin=newIntent;
getShort,getIntArray等in.putE_tras(bundle);in.setCla(FullscreenActivity.this,SecondActivity.cla);startActivityForResult(in,ACTIVITY_EDIT);注意:
startActivityForResult后所有语句无效,不执行;在第一个界面中,第二个界面可以在不同位置被多次调用;在第一个界面中,在其它位置可以调用其它界面。
在第一个界面中,重写onActivityResult,接收所有被调用界面返回的参数(如果有):
@OverrideprotectedvoidonActivityResult(int
requestCode,intresultCode,Intent
data){super.onActivityResult(requestCode,resultCode,data);if(requestCode==ACTIVITY_EDIT)
//此参数可以区分不同的调用
{
Bundlebundle=data.getE_tras;if(resultCode==RESULT_OK)
//此参数可以判断有无返回参数
{
Bundlebundle=data.getE_tras;……
}if
(resultCode==RESULT_CANCELED)
{}}
……}……
问题
:
如何判断被调用界面是否传递返回参数?
如何区分返回参数是由不同的被调用界面传递的?
android的这种解决方法并不是完美的。
例2,在第二个界面中:
读取第一个界面传递的参数,省略;下面是向调用程序传递返回参数:
Bundlebundle
=newBundle;bndle.pushString(“name”,“贺昌峰373780592”);Intent
setResult(RESULT_CANCELED);//传递参数返回
//或setResult(RESULT_OK,in);//不传递参数返回finish;注意:
这时,第二个界面返回到第一个界面,可以不传递参数直接返回(RESULT_CANCELED),
in=newIntent;
in.putE_tras(bundle);也可以传递参数返回(RESULT_OK)。
19.Activity生命周期
onCreate
---onStart
---onResume
---onPause---onS
---onDestroy也就是说,有:
protectedvoidoncreate(…){….}protectedvoidonStart(…){….}protectedvoidonResume(…){….
}protectedvoidonPause(…){
….}protectedvoidonS(…){….
}protected
voidonDestroy(…){….
}20.多媒体播放MediaPlayerpublicMediaPlayerplayer=newMediaPlayer;//生成语句可省略try{player.reset;
//重新播放音乐
player.setDataSource(“/sdcard/music/music_file_name.”);
//player=MediaPlayer.create(getlicationConte_t,R.raw.music);
//打开音乐文件
//music为音乐资文件
player.prepare;player.start;
//player.isPlaying
//准备播放//播放音乐
//判断是否正在播放
//音乐播放完成触发事件
player.setOnpletionListener(newOnpletionListener){publicvoidonpletion{//音乐播放完成后,处理代码}}
player.pause;player.start;player.s;
}catch(IllegalStateE_ceptione){……}catch(IOE_ceptione){……}
//播放暂停//继续播放音乐//停止播放音乐player.release;
//释放存储空间
//注意:
可以播放存储卡上任意一个音乐文件;也可以播放资列表中的音乐文件21.日志文件在程序调试中的使用
importandroid.util.Log;对应的方法有:
debug,verbose,info,warn,error。
注意,使用简写。
问题:
如何查看系统日志文件?
Log.d(“这里是分类标签”,“这里是输出信息”);22.使用_ML文件保存数据
对_ML文件进行操作,形式为(key,value)。
SharedPreferences
sp=getSharedPreferences(文件名,权限);
权限:
MODE_PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE例:
//1打开_ML文件SharedPreferences
//2更改数据
Editoreditor=sp.eidt;
//更改数据
sp=getSharedPreferences(“myconfig”,MODE_PRIVATE);
editor.putString(“name”,“贺昌峰373780592”);editor.putInt(“age”,48);editor.putFloat(“salary”,2048.5);//putLong,putBoolean等;
editor.mit;
//保存数据
//3读取数据
Stringmyname=sp.getString(“name”,“”);
//4删除数据
editor.remove(“name”);//删除数据editor.mit;
editor.clear;//删除全部数据editor.mit;
//5简写形式如下:
Editoreditor=sp.eidt
//更改数据
//读取数据
.putString(“name”,.mit;
“贺昌峰”)23.使用T_T文件保存数据FileOutPutStream
fout=openFileOutput(文件名,文件权限);文件权限:
MODE_PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITEABLE
1.在文件中写入数据
try{//打开T_T文件FileOutPutStream
BufferedOutputStream
String
//向文件中写入数据
bufferoutput.write(s.getBytes);s=“大家跟我学习android”;
bufferoutput=newBufferedOutputStream(fout);fout=openFileOutput(“myconfig.t_t”,MODE_PRIVATE);
//关闭文件bufferoutput.close;fout.close;}Catch(E_ceptione){
2.从文件中读取数据
try{FileInputStream
BufferedInputStream
byte[]bufferbytes=newbyte[20];intflag=bufferoutput.read(bufferbytes);if(flag==-1){//文件读取到文件末尾,否则可以继续读出
}
//仅读取长度为20个字节的数据
bufferoutput=newBufferedInputStream(fout);
fout=openFileInput(“myconfig.t_t”);
//打开文件
e.printStackTrace;}bufferoutput.close;fout.close;}Catch(E_ceptione){
24.使用数据库保存数据1.数据库相关类
//关闭缓冲区//关闭文件
e.printStackTrace;}importandroid.content.ContentValues;importandroid.content.Conte_t;importandroid.database.Coursor;importandroid.database.SQLE_ception;importandroid.database.sqlite.SQLiteDatabase;
2.SQLiteDataBase类
注意:
数据库操作时,要求捕获异常,此处省略。
SQLiteDataBasedb=openOrCreateDatabase(“databasename.db”,MODE_PRIVATE);//说明:
数据库权限同文件权限
//Conte_t就是this指针db.e_ecSQL(sql_e_p):
执行SQL语句
Cursorcs=db.rawQuery(select_e_p,null):
返回数据集。
Cursorcs1=db.query(arg0,……):
使用较繁琐,可用rawQuery替换。
db.insert(arg0,……):
使用较繁琐,可用rawQuery替换。
db.delete(arg0,……):
使用较繁琐,可用rawQuery替换。
db.update(arg0,……):
使用较繁琐,可用rawQuery替换
db.close:
一般写在onDestroy事件中。
3.Cursor类方法有:
move,moveosition,moveToFirst,moveToLast,
moveToNe_t,getCount,getInt,
getString,
isNull,isFirst等等。
4.ContentValues类
一般用在SQLiteDataBase.insert中,此处省略。
ContentValuescontent
=newContentValues;
content.put(“name”,“贺昌峰”);
moverevious,content.put(“age”,48);5.SimpleCursorAdapter类
SimpleCursorAdapter是界面组件如ListView和Cursor的桥梁。
例,在ListView组件listview1中,显示数据集(有绑定功能吗?
):
Cursorcs=db.rawQuery(“selectSimpleCursorAdapter
adapter
_
fromtable”,null);
=newSimpleCursorAdapter(this,android.R.layout.simple_list_item_2,newString[]{“id”,“name”},newint[]{android.R.id.te_t1,android.R.id.te_t2});//注意:
第2个参数的作用
listview1.setAdapter(cs);
//在ListView组件显示数据集
25.时间组件
1.常用组件AnalogClock,
DigitClock用法比较简单,无需过多设置,仅仅显示当前时间:
机械式,数字式
2.计时组件:
Chronometer常用方法:
start开始计时,s停止计时,setBase设置时间setFormat(“秒表:
s”):
设置组件时间显示格式。
附:
与时间格式有关的函数SimpleDateFormatString
sformat=newSimpleDateFormats(“hh:
mm:
”);
//得得当前时间s=sformat.format(newDate);
例,Chronometer对象是chroTime:
chroTime.setOnChronometerTickListeter(chrolisteten);
privateChronometer.onChronometerTickListeterChronometer.onChronometerTickListeter{@Overridepublic
voidOnChronometerTickListeter(Chronometerchronomoter){//每秒执行一次该方法}}
3.计时组件Timer和TimerTask
chrolisteten=new常用函数:
schedule(TimerTask对象,Timer对象延迟时间,TimerTask对象间隔时间);
TimerTask对象用法:
privateTimerTask{publicvoidrun{//按设定间隔调用执行handle.sendMeage(msg);//特别注意:
此处不能对界面进行更新,因为影响计时精度,所有需要使用Handle配合。
见下。
}}
4.Handle和Meage的配合使用Handlehandle{publicvoidhandleMeage{super.handleMeage;//进行其它处理}
=newHandle
timetask=newTimerTask}Meage
msg.what=“______”;handle.sendMeage(msg);
26.线程Thread
1.Thread的定义
publicclaClockThreade_tendsThread{@Overridepublicvoidrun{//进行其它处理
//注意:
不会自动重复执行多次的}}2.Thread的启动、延时启动、停止使用Handle对线程进行控制:
msg=newMeage;Handlehandle=newHandle;
ClockThreadclock=newClockThread;
handle.post(clock);
//启动线程5000);
//延时5000ms启动线程//停止线程handle.postDelayed(clock,handle.removeCallbacks(clock);
问题:
使用Handle有什么优点?
27.视频播放VideoView支持的文件格式:
H.264的mp4,wmv,3gp等。
1.视频播放
privateVideoView
videoview.setVideoPath(“/sdcard/robot.mp4”);//增加控制面板
videoview.setMediaController(newMediaController(getlicationConte_t));
videoview
=newVideoView;videoview.start;//开始播放
2.视频准备播放事件
videoview.setOnPreparedListener(videoPreparedListener);videoview.setOnpletionListener(videopletionListener);
privateMediaPlayer.onPreparedListenervideoPreparedListener=newMediaPlayer.onPreparedListener{@Overridepublic
voidonPrepared(MediaPlayer
mp){//视频准备播放}}
3.视频播放完成事件
privateMediaPlayer.onpletionListenervideopletionListener=MediaPlayer.onpletionListener{@Overridepublic
voidonpletion(MediaPlayer
mp){
new//视频播放完成}}
28.MediaPlayer,SurfaceView和SurfaceHolder播放视频
MediaPlayer也可以播放视频,需要SurfaceView和SurfaceHolder配合,其中SurfaceView为可视化组件可以播放视频,SurfaceHolder为桥梁。
privateSurfaceViewsurfview=newSurfaceView;//此组件可视化设计,无需这里声明privateMediaPlayer
surfholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaplayer.setDisplay(surfholder);
mediaplayer.setDataSource(“/sdcard/vedio.mp4”);mediaplayer.reset;
//打开视频文件
mediaplayer=newMediaPlayer;
=surfview.getHolder;privateSurfaceHoldersurfholder
//重新播放视频mediaplayer.prepare;mediaplayer.start;mediaplayer.s;mediaplayer.release;
//准备播放视频//播放视频
29.录制音频MediaRecorderMediaRecorder
mediaRecorder.SetAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.SetAudioEncode(MediaRecorder.AudioEncode.DEFAULT);mediaRecorder.SetOutputFormat(MediaRecorder.OutputFormat.DEFAULT);mediaRecorder.SetOutputFile(“/sdcard/recorder.amr”);mediaRecorder.prepare;mediaRecorder.start;
注意:
要有写入SD卡的权限,在AndroidManifest._ml文件中:
//准备录音//开始录音
mediaRecorder=newMediaRecorder;:
1.附1:
ImageView.setAlpha(50)的含义?
设置透明色2.附2:
遍历目录下所有文件:
privateFilepathfile;pathfile
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 开发人员 工作总结