Android开发基本知识总结Android课件_android知识点总结

2020-02-27 教学课件 下载本文

Android开发基本知识总结Android课件由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android知识点总结”。

Android开发基础教程

2015-4-13周一2CJ02 目录

1.什么是Android? 2.Android应用开发环境 3.Gradle 4.模拟器Emulator 5.开发一个安卓应用程序的步骤 6.关于多个模拟器的问题 7.安卓工程文件的结构 8.android界面文件---xml文件 9.android程序文件---java文件 10.界面布局方式 11.几个常用组件 12.Roast组件 13.对话框AlertDialog 14.几条重要的语句 15.监听器Listener 16.识别响应事件的组件 17.界面切换

18.界面之间的数据传递 19.Activity生命周期 20.多媒体播放

21.日志文件在程序调试中的使用 22.使用XML文件保存数据

23.使用TXT文件保存数据 24.使用数据库保存数据 25.时间组件 26.线程Thread 27.视频播放VideoView 28.MediaPlayer,SurfaceView和SurfaceHolder播放视频 29.录制音频MediaRecorder 30.菜单组件

1.什么是Android? 移动设备(常常指手机mobile)的操作系统,由google公司出品,是免费的, 最早是基于Linux平台的;目前已经推出的Android3.0是平板电脑上的操作系统。

其它的手机操作系统有:iPhone系统等。

手机厂商:三星(Samsung,宏达电(HTC),摩托罗拉(Motorola),华硕,索尼,Garmin等都支持iPhone系统。

Android系统功能:自定义用户界面,支持蓝牙,多点触摸,具有导航功能和语音识别功能,结合了google地图。

Android软件开发工具SDK

4.0。

Android系统特点:虚拟键盘,以WebKit为核心的WebView组件,可以使用HTML, javascript等。

2.Android应用开发环境 Eclipse+ADT+Android SDK。ADT---Android开发工具插件(Android Plugs for Eclipse).开发环境安装注意事项:关闭防毒软件,按顺序安装,保持网络畅通,比较耗时。特别说明,安装和运行需要高配置机器和高速网络,比较费时。

(1)安装Java

JDK。甲骨文

网站: http://www.daodoc.com ”);Intent in = new Intent(Intent.ACTIN_VIEW, uri);startActivity(in);(2)调用系统拨号界面

Uri uri = Uri.parse(“tel:*** ”);Intent in = new Intent(Intent.ACTIN_DIAL, uri);startActivity(in);(3)调用系统拨号功能

Uri uri = Uri.parse(“tel:*** ”);Intent in = new Intent(Intent.ACTIN_CALL, uri);startActivity(in);注意:需要在AndroidManifest.xml文件中进行设置,才可以自动拨号: 18.界面之间的数据传递 1.方法1:调用无返回参数 在第一个界面中: Bundle bundle

= new Bundle();bndle.pushString(“name”, “David”);bndle.pushInt(“age”, 22);//pushChar, putShort,put Boolean, pushChar等等

Uri uri = Uri.parse(“http://www.daodoc.com ”);Intent in = new Intent(Intent.ACTIN_VIEW, uri);in.putExtras(bundle);startActivity(in);在第二个界面中: Intent in = this.get Intent();Bundle bundle

= in.getExtras();String studentName = bundle.getInt();//getDouble, 2.方法2:调用有返回参数 例1,在第一个界面中: private static final int ACTIVITY_EDIT = 1;Bundle bundle = new Bundle();bundle.pushString(“name”, “David”);Intent in = new Intent();

getShort, getIntArray等 in.putExtras(bundle);in.setCla(FullscreenActivity.this, SecondActivity.cla);startActivityForResult(in, ACTIVITY_EDIT);注意:startActivityForResult后所有语句无效,不执行;在第一个界面中,第二个界面可以在不同位置被多次调用;在第一个界面中,在其它位置可以调用其它界面。

在第一个界面中,重写onActivityResult,接收所有被调用界面返回的参数(如果有):@Override protected void onActivityResult(int

requestCode,int resultCode,Intent

data){ super.onActivityResult(requestCode, resultCode, data);if(requestCode== ACTIVITY_EDIT)

//此参数可以区分不同的调用

{

Bundle bundle = data.getExtras();if(resultCode == RESULT_OK)

//此参数可以判断有无返回参数

{

Bundle bundle = data.getExtras();……

} if

(resultCode == RESULT_CANCELED)

{ } }

…… } ……

问题

:如何判断被调用界面是否传递返回参数?如何区分返回参数是由不同的被调用界面传递的?android的这种解决方法并不是完美的。例2,在第二个界面中:

读取第一个界面传递的参数,省略;下面是向调用程序传递返回参数: Bundle bundle

= new Bundle();bndle.pushString(“name”, “贺昌峰373780592”);Intent

setResult(RESULT_CANCELED);//传递参数返回

// 或setResult(RESULT_OK, in);//不传递参数返回 finish();注意:这时,第二个界面返回到第一个界面,可以不传递参数直接返回(RESULT_CANCELED),in = new Intent();

in.putExtras(bundle);也可以传递参数返回(RESULT_OK)。19.Activity生命周期

onCreate

---onStart

---onResume

---onPause---onStop

---onDestroy 也就是说,有: protected void oncreate(…){ ….} protected void onStart(…){ ….} protected void onResume(…){ ….} protected void onPause(…){

….} protected void onStop(…){ ….} protected

void onDestroy(…){ ….} 20.多媒体播放MediaPlayer public MediaPlayer player = new MediaPlayer();//生成语句可省略 try{ player.reset();

//重新播放音乐

player.setDataSource(“/sdcard/music/music_file_name.mp3”);

// player = MediaPlayer.create(getApplicationContext(), R.raw.music);

// 打开音乐文件

//music为音乐资源文件

player.prepare();player.start();

// player.isPlaying()

//准备播放 //播放音乐

//判断是否正在播放

//音乐播放完成触发事件

player.setOnCompletionListener(new OnCompletionListener){ public void onCompletion(){ //音乐播放完成后,处理代码 } }

player.pause();player.start();player.stop();

} catch(IllegalStateException e){ ……} catch(IOException e){ ……}

//播放暂停 //继续播放音乐 //停止播放音乐 player.release();

//释放存储空间

//注意:可以播放存储卡上任意一个音乐文件;也可以播放资源列表中的音乐文件 21.日志文件在程序调试中的使用

import android.util.Log;对应的方法有:debug,verbose,info,warn,error。注意,使用简写。问题:如何查看系统日志文件?

Log.d(“这里是分类标签”, “这里是输出信息”);22.使用XML文件保存数据

对XML文件进行操作,形式为(key,value)。SharedPreferences

sp = get SharedPreferences(文件名,权限);

权限:MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE 例:

//1打开XML文件 SharedPreferences

//2更改数据

Editor editor = sp.eidt();

//更改数据

sp = get SharedPreferences(“myconfig”,MODE_PRIVATE);

editor.putString(“name”, “贺昌峰373780592”);editor.putInt(“age”, 48);editor.putFloat(“salary”, 2048.5);//putLong,putBoolean等;

editor.commit();

//保存数据

//3读取数据

String myname = sp.getString(“name”, “”);

//4删除数据

editor.remove(“name”);//删除数据 editor.commit();

editor.clear();//删除全部数据 editor.commit();

//5简写形式如下: Editor editor = sp.eidt()

//更改数据

//读取数据

.putString(“name”,.commit();

“贺昌峰”)23.使用TXT文件保存数据 FileOutPutStream

fout = openFileOutput(文件名, 文件权限);文件权限: MODE_PRIVATE, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE

1.在文件中写入数据

try { //打开TXT文件 FileOutPutStream

BufferedOutputStream

String

//向文件中写入数据

bufferoutput.write(s.getBytes());s = “大家跟我学习android”;

bufferoutput = new BufferedOutputStream(fout);fout = openFileOutput(“myconfig.txt”, MODE_PRIVATE);

//关闭文件 bufferoutput.close();fout.close();} Catch(Exception e){

2.从文件中读取数据

try { FileInputStream

BufferedInputStream

byte[] bufferbytes = new byte[20];int flag = bufferoutput.read(bufferbytes);if(flag==-1){ //文件读取到文件末尾,否则可以继续读出

}

//仅读取长度为20个字节的数据

bufferoutput = new BufferedInputStream(fout);

fout = openFileInput(“myconfig.txt”);

//打开文件

e.printStackTrace();} bufferoutput.close();fout.close();} Catch(Exception e){

24.使用数据库保存数据 1.数据库相关类

//关闭缓冲区 //关闭文件

e.printStackTrace();} import android.content.ContentValues;import android.content.Context;import android.database.Coursor;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;

2.SQLiteDataBase类

注意:数据库操作时,要求捕获异常,此处省略。

SQLiteDataBase db = openOrCreateDatabase(“databasename.db”, MODE_PRIVATE);//说明:数据库权限同文件权限

// Context就是this指针 db.execSQL(sql_exp): 执行SQL语句

Cursor cs = db.rawQuery(select_exp, null): 返回数据集。Cursor cs1 = db.query(arg0, ……): 使用较繁琐,可用rawQuery替换。

db.insert(arg0, ……): 使用较繁琐,可用rawQuery替换。db.delete(arg0, ……): 使用较繁琐,可用rawQuery替换。db.update(arg0, ……):

使用较繁琐,可用rawQuery替换

db.close(): 一般写在onDestroy事件中。3.Cursor类 方法有:

move, moveToPosition, moveToFirst, moveToLast,moveToNext, getCount(), getInt(),getString(),isNull(), isFirst()等等。

4.ContentValues类

一般用在SQLiteDataBase.insert中, 此处省略。

ContentValues content

= new ContentValues();

content.put(“name”, “贺昌峰”);

moveToPrevious, content.put(“age”, 48);5.SimpleCursorAdapter类

SimpleCursorAdapter是界面组件如ListView和Cursor的桥梁。例, 在ListView组件listview1中,显示数据集(有绑定功能吗?):

Cursor cs = db.rawQuery(“select SimpleCursorAdapter

adapter

* from table”, null);

= new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2, new String[]{“id”, “name”}, new int[]{ android.R.id.text1, android.R.id.text2});// 注意:第2个参数的作用

listview1.setAdapter(cs);

//在ListView组件显示数据集

25.时间组件

1.常用组件AnalogClock,DigitClock 用法比较简单,无需过多设置,仅仅显示当前时间:机械式,数字式

2.计时组件:Chronometer 常用方法:start开始计时, stop停止计时, setBase设置时间 setFormat(“秒表:%s”):设置组件时间显示格式。

附:与时间格式有关的函数 SimpleDateFormat String

sformat = new SimpleDateFormats(“hh:mm:”);

//得得当前时间 s = sformat.format(new Date());

例,Chronometer对象是chroTime: chroTime.setOnChronometerTickListeter(chrolisteten);

private Chronometer.onChronometerTickListeter Chronometer.onChronometerTickListeter(){ @Override public

void OnChronometerTickListeter(Chronometer chronomoter){ //每秒执行一次该方法 } }

3.计时组件Timer和TimerTask

chrolisteten = new 常用函数:schedule(TimerTask对象, Timer对象延迟时间, TimerTask对象间隔时间);

TimerTask对象用法: private TimerTask { public void run(){ //按设定间隔调用执行 handle.sendMeage(msg);//特别注意:此处不能对界面进行更新,因为影响计时精度,所有需要使用Handle配合。见下。} }

4.Handle和Meage的配合使用 Handle handle { public void handleMeage(){ super.handleMeage();//进行其它处理 }

= new Handle()

timetask = new TimerTask()} Meage

msg.what = “******”;handle.sendMeage(msg);

26.线程Thread

1.Thread的定义

public cla ClockThread extends Thread{ @Override public void run(){ //进行其它处理

//注意:不会自动重复执行多次的 } } 2.Thread的启动、延时启动、停止 使用Handle对线程进行控制: msg = new Meage();Handle handle = new Handle();

ClockThread clock = new ClockThread();

handle.post(clock);

//启动线程 5000);

//延时5000ms启动线程 //停止线程 handle.postDelayed(clock, handle.removeCallbacks(clock);

问题:使用Handle有什么优点? 27.视频播放VideoView 支持的文件格式:H.264的mp4, wmv, 3gp等。1.视频播放

private VideoView

videoview.setVideoPath(“/sdcard/robot.mp4”);//增加控制面板

videoview.setMediaController(new MediaController(getApplicationContext()));

videoview

= new VideoView();videoview.start();//开始播放

2.视频准备播放事件

videoview.setOnPreparedListener(videoPreparedListener);videoview.setOnCompletionListener(videoCompletionListener);

private MediaPlayer.onPreparedListener videoPreparedListener = new MediaPlayer.onPreparedListener(){ @Override public

void onPrepared(MediaPlayer

mp){ //视频准备播放 } }

3.视频播放完成事件

private MediaPlayer.onCompletionListener videoCompletionListener = MediaPlayer.onCompletionListener(){ @Override public

void onCompletion(MediaPlayer

mp){

new //视频播放完成 } }

28.MediaPlayer,SurfaceView和SurfaceHolder播放视频

MediaPlayer也可以播放视频,需要SurfaceView和SurfaceHolder配合,其中SurfaceView为可视化组件可以播放视频,SurfaceHolder为桥梁。

private SurfaceView surfview = new SurfaceView();//此组件可视化设计,无需这里声明 private MediaPlayer

surfholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaplayer.setDisplay(surfholder);

mediaplayer.setDataSource(“/sdcard/vedio.mp4”);mediaplayer.reset();

//打开视频文件

mediaplayer = new MediaPlayer();

= surfview.getHolder();private SurfaceHolder surfholder

//重新播放视频 mediaplayer.prepare();mediaplayer.start();mediaplayer.stop();mediaplayer.release();

//准备播放视频 //播放视频

29.录制音频MediaRecorder MediaRecorder

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.xml文件中:

//准备录音 //开始录音

mediaRecorder = new MediaRecorder();:

1.附1:ImageView.setAlpha(50)的含义?设置透明色 2.附2:遍历目录下所有文件: private File pathfile;pathfile = Environment.getExternalStorageDirectory();

//疑问:pathfile + ”/myfilename.txt” 这个用法正确吗? for(File file: pathfile.listFiles()){ if {(file.getName().toLowerCase().endsWith(“.amr”))……

// File.getAbsolutePath(), File.getName()的区别 } } 30.菜单组件 //添加系统菜单 protected protected static final int MENU_ABOUT

= Menu.FIRST;static final int MENU_QUIT = Menu.FIRST + 1;

//得到SD卡路经 protected

@Override static final int MENU_EDIT = Menu.FIRST + 2;public boolean onCreateOptionsMenu(Menu menu){ menu.add(0,MENU_ABOUT,0,“关于本软件...”).setShortcut('0','A');

menu.add(0,MENU_QUIT,1,“结束”).setShortcut('1','E');

menu.add(0,MENU_EDIT,2,“编辑”).setShortcut('2','D');

menu.add(0,MENU_FILE,3,“文件”).setShortcut('3','F');

return super.onCreateOptionsMenu(menu);} //添加菜单响应事件 @Override public boolean onOptionsItemSelected(MenuItem switch(item.getItemId()){ case MENU_ABOUT: // 响应处理 break;case MENU_QUIT: // 响应处理 break;}

return super.onOptionsItemSelected(item);}

//添加快捷菜单 protected static final int MENU_BACKCOLOR protected static final int MENU_SMALLSIZE =

item){

= Menu.FIRST;

Menu.FIRST + 1;//定义快捷菜单组件 private LinearLayout private TextView

layout;

txtview1,txtview2;在onCreate中, 增加以下语句: layout =(LinearLayout)findViewById(R.id.layout);txtview1 =(TextView)findViewById(R.id.txtview1);txtview2 =(TextView)findViewById(R.id.txtview2);registerForContextMenu(txtview1);registerForContextMenu(txtview2);

在java文件类中, 增加以下语句: @Override public boolean onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo){ //注意:父类函数先调用,或最后调用? super.onCreateOptionsMenu(menu, v, menuInfo);

if(v == txtview1)menu.add(0, MENU_BACKCOLOR,0,“设置背景颜色”); if(v == txtview2)menu.add(0, MENU_SMALLSIZE,1,“较小字体”);

}

//添加菜单响应事件 @Override public boolean onContextItemSelected(MenuItem switch(item.getItemId()){ case MENU_BACKCOLOR: // 响应处理

layout.setBackgroundColor(Color.BLUE);break;case MENU_SMALLSIZE: // 响应处理

txtview2.setTextSize(12);break;}

return super.onContextItemSelected(item);}

item){

《Android开发基本知识总结Android课件.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
Android开发基本知识总结Android课件
点击下载文档
相关专题 android知识点总结 基本知识 课件 Android android知识点总结 基本知识 课件 Android
[教学课件]相关推荐
    [教学课件]热门文章
      下载全文