《数据存取、多媒体应用.ppt》由会员分享,可在线阅读,更多相关《数据存取、多媒体应用.ppt(40页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Google Android智能手机应用开发智能手机应用开发based on android2011.5内容包括:内容包括:1、Android 平台概述平台概述2、搭建、搭建 Android 开发环境开发环境3、第一个、第一个 Android 应用程序应用程序4、Android 用户界面设计用户界面设计5、Activity、Intent、Service、Broadcast Receiver6、Android 中的数据存取中的数据存取7、Android 的多媒体应用的多媒体应用8、应用实例:、应用实例:a、b、c、d课程结构课程结构n开放手机联盟(开放手机联盟(OHA)nAndroid 平台综述
2、:平台综述:n平台介绍、开发者社区平台介绍、开发者社区n开发环境:开发环境:n构建构建 Android 开发环境开发环境n应用程序:应用程序:n应用程序结构应用程序结构n典型应用:典型应用:n用户界面、图形编程用户界面、图形编程n数据存取、网络连接数据存取、网络连接n硬件访问硬件访问平台综述平台综述开发环境开发环境程序结构程序结构数据存取数据存取网络连接网络连接硬件访问硬件访问图形编程图形编程用户界面用户界面获取获取 Android 资料的途径资料的途径n下载下载 sdk 等相关软件等相关软件n查看文档查看文档n在线帮助在线帮助n开发社区开发社区n国内需要代理才能访问国内需要代理才能访问nne
3、wsnsdk下载下载n开发开发FAQ、源码下载、源码下载n移植移植Google Android6、Android 中的数据存取中的数据存取on android数据存取方式数据存取方式nPreference“键键-值值”方式存储,以方式存储,以 xml 文件的形式保存文件的形式保存nFile采用采用 java.io.*库所提供库所提供 I/O 接口读写文件接口读写文件nSQLite SQLite 是轻量级的嵌入式数据库引擎是轻量级的嵌入式数据库引擎nContent Provider用于实现不同应用程序之间的数据共享用于实现不同应用程序之间的数据共享1、Preferencen主要用于存储数据较少的
4、场合,比如配置信息主要用于存储数据较少的场合,比如配置信息n文件位置文件位置:/data/data/shared_prefs/*.xmln需要用到接口:需要用到接口:SharedPreferencesn及其内部接口:及其内部接口:SharedPreferences.Editorn取得接口:取得接口:nContext.SharedPreferences(filename,mode)nSharedPreferences.edit()n数据类型、数据操作:数据类型、数据操作:nint、flaot、string、boolean等等nputString(key,value)ngetString(key,
5、defValue)实例:实例:Test_of_Preferencen定义定义 main.xml:n一个一个 EditText 用于键入数据用于键入数据n三个三个 Button 分别用于将数据写入分别用于将数据写入 xml 文件、从文文件、从文件获取数据并显示、清除文件中的数据件获取数据并显示、清除文件中的数据n定义定义 sharedpreferences.xml:n一个一个 TextView 用于显示从文件中获取的数据用于显示从文件中获取的数据et1=(EditText)findViewById(R.id.editText1);button1=(Button)findViewById(R.id
6、.button1);button2=(Button)findViewById(R.id.button2);button3=(Button)findViewById(R.id.button3);textView1=(TextView)findViewById(R.id.textView1);n创建接口创建接口 sp1、spEditor1n以键值以键值 方式加入数据方式加入数据n以以 String Key 为索引来获取数据为索引来获取数据n清除数据清除数据private SharedPreferences sp1;sp1=this.getSharedPreferences(test,MODE_PR
7、IVATE);SharedPreferences.Editor spEditor1=sp1.edit();spEditor1.putString(TEXT,et1.getText().toString();spEmit();String string1=sp1.getString(TEXT,);textView1.setText(string1);spEditor1.clear().commit();n运行结果:运行结果:2、Filen文件可用来存放大量数据,如文本、图片、音频等文件可用来存放大量数据,如文本、图片、音频等n默认位置:默认位置:/data/data/files/*.*njava
8、.io.*库提供库提供 I/O 接口实现本地文件读写接口实现本地文件读写n文件输入流的获取文件输入流的获取nContext.openFileInput(String name)n文件输出流的获取文件输出流的获取nContext.openFileOutput(String name,int mode)n包内资源(包内资源(res/raw/)文件的读取)文件的读取nResources.openRawResource(R.raw.file)实例:实例:Test_of_Filen定义定义 main.xml:n两个两个 EditText、两个、两个 Buttonn写文件写文件 writeFile(str
9、):private void writeFile(String str)try FileOutputStream output=openFileOutput(FILE_NAME,MODE_APPEND);output.write(str.getBytes();output.close();catch(Exception e)Log.e(File_IO,e.toString();this.finish();n读文件读文件 readFile():private String readFile()try FileInputStream input=openFileInput(FILE_NAME);b
10、yte buffer=new byteinput.available();input.read(buffer);input.close();String str=new String(buffer);return str;catch(Exception e)Log.e(File_IO,e.toString();this.finish();return null;editText2.setText(readFile();n运行结果:运行结果:n注意:写文件时用的注意:写文件时用的 MODE_APPEND 模式模式3、SQLitenSQLiten轻量级嵌入式数据库引擎,面向资源有限的设备轻量级嵌入
11、式数据库引擎,面向资源有限的设备n没有服务器进程没有服务器进程n所有数据存放在同一文件中所有数据存放在同一文件中n跨平台,可自由复制跨平台,可自由复制nSQLiteOpenHelpern帮助类,用于管理数据库创建和版本更新帮助类,用于管理数据库创建和版本更新nonCreate(SQLiteDatabase db)nonUpgrade(db,int old_ver,int new_ver)nsqlite3:位于:位于/tools实例:实例:Test_of_SQLitenDatabaseHelper 继承自继承自 SQLiteOpenHelpern重写了重写了onCreate()、onUpgrad
12、e()方法方法n实现实现 insert、del、query、close 等方法等方法nListView 显示记录,字段对应成显示记录,字段对应成 TextViewnListView 的的 onItemClick()实现删除记录实现删除记录n数据库文件路径:数据库文件路径:n/data/data/database/*.dbprivate SQLiteDatabase db;public void insert(ContentValues values)SQLiteDatabase db=getWritableDatabase();db.insert(TABLE_NAME,null,values)
13、;db.close();public void del(int id)if(db=null)db=getWritableDatabase();db.delete(TABLE_NAME,_id=?,new StringString.valueOf(id);public void onCreate(SQLiteDatabase db)this.db=db;db.execSQL(CREATE_TABLE);DatabaseHelper.javaDatabaseHelper dbHelper=new DatabaseHelper(this);Cursor cursor=dbHelper.query()
14、;String from=_id,name,url,notes;int to=R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView4;SimpleCursorAdapter scadapter=new SimpleCursorAdapter (this,R.layout.favoritelist,cursor,from,to);ListView listView=getListView();listView.setAdapter(scadapter);AlertDialog.Builder adBuilder=new AlertD
15、ialog.Builder(this);Query_Test.javalistView.onItemClick adBuilder.setMessage(确认删除?确认删除?).setPositiveButton(Y,new OnClickListener().setNegativeButton(N,new OnClickListener();AlertDialog aleraDialog=adBuilder.create();aleraDialog.show();删除记录并重建删除记录并重建 ListViewn运行结果:运行结果:4、Content Providern与与 Activity、
16、Service、Broadcast Receiver 同属同属 Android 应用程序基本组件之一应用程序基本组件之一n用于保存和检索数据,实现了数据的跨应用共享用于保存和检索数据,实现了数据的跨应用共享nAndroid 中各应用均运行在自己的进程中,互相访中各应用均运行在自己的进程中,互相访问的问的 Content Provider 接口统一定义在接口统一定义在 android.provider 包内,涵盖了常见的数据类包内,涵盖了常见的数据类型如音视频、图片、联系人等型如音视频、图片、联系人等n实现的方法包括:实现的方法包括:ninsert、delete、qurey、update 等等n
17、URIContent Provider 用以实现数据共享的对象用以实现数据共享的对象nContent ResolverContent Provider 的客户端接口的客户端接口客户端通过客户端通过 getContentResolver()获得接口获得接口提供与提供与 Content Provider 对应的方法对应的方法间接地通过操作间接地通过操作 Resolver 来操作来操作 Provider一个一个 Provider 可以对应多个可以对应多个 Resolvern用户自定义系统用户自定义系统:Content Provider实例:实例:Test_of_ContentProvidern系统系
18、统 Content Providern添加联系人:添加联系人:String name=editText1.getText().toString();String notes=editText2.getText().toString();ContentResolver contentResolver1=getContentResolver();ContentValues contentValues1=new ContentValues();Uri uri1=Contacts.People.CONTENT_URI;contentValues1.put(People.NAME,name);conte
19、ntValues1.put(People.NOTES,notes);trycontentResolver1.insert(uri1,contentValues1);n运行结果:运行结果:Google Android7、Android 的多媒体应用的多媒体应用on androidAndroid 的多媒体的多媒体nAndroid 实现了常见媒体格式的编解码机制实现了常见媒体格式的编解码机制n图片:图片:jpeg、gif、png、bmpn音频:音频:3gp、mp3、wavn视频:视频:3gp、mp4nAndroid 提供相应提供相应 API 实现多媒体应用实现多媒体应用n音视频播放:音视频播放:Me
20、diaPlayer、JetPlayern音视频录制音视频录制:MediaRecordernn媒体文件来源:媒体文件来源:n应用程序资源、本地文件、网络文件流应用程序资源、本地文件、网络文件流实例:实例:ImageView实例:实例:GridView、Galleryn 详见实例:详见实例:Test_of_Widget实例:实例:Test_of_Mp3Playern实现实现 MediaPlayer.OnCompletionListener 接口接口public class Mp3Player_Test extends Activity implements MediaPlayer.OnComple
21、tionListener/重写重写 onCompletion()方法,实现循环播放方法,实现循环播放public void onCompletion(MediaPlayer mp)if(flag1=1)ib4play();if(flag2=1)ib8play();/重写重写 onDestroy()方法方法 public void onDestroy()super.onDestroy();if(imageButton2.isEnabled()ib2stop();if(imageButton6.isEnabled()ib6stop();n定义定义 MediaPlayer 对象并初始化对象并初始化p
22、rivate MediaPlayer mp1,mp2;private void mp1init()try mp1=MediaPlayer.create(this,R.raw.temp);mp1.setOnCompletionListener(this);catch(Throwable t)errorReport(t);private void mp2init()try mp2=new MediaPlayer();String path=/sdcard/graduated.mp3;mp2.setDataSource(path);mp2.prepare();mp2.setOnCompletionL
23、istener(this);catch(Throwable t)errorReport(t);n音乐文件路径:音乐文件路径:n定义三个定义三个 ImageButton 对象并实例化对象并实例化n实现实现 paly、pause 方法方法private void ib4play()flag1=1;mediaPlayer1.start();imageButton2.setEnabled(true);imageButton3.setEnabled(true);imageButton4.setEnabled(false);private void ib3pause()flag1=0;mediaPlaye
24、r1.pause();imageButton2.setEnabled(false);imageButton3.setEnabled(false);imageButton4.setEnabled(true);n实现实现 stop 方法方法private void ib2stop()flag1=0;mediaPlayer1.stop();imageButton2.setEnabled(false);imageButton3.setEnabled(false);trymediaPlayer1.prepare();mediaPlayer1.seekTo(0);imageButton4.setEnabl
25、ed(true);catch(Throwable t)errorReport(t);n运行结果:运行结果:Android AVD、SD Cardn创建创建 AVD:Android SDK and AVD ManagernAVD 的存放位置:的存放位置:nC:Documents and SettingsAdministrator .androidavdnAVD SD Card 及其容量的设定及其容量的设定nAVD 的默认的默认 Skin 与与 Target 版本有关版本有关nAVD 的硬件参数设定:的硬件参数设定:nnewDevice ram size:512MnSDK_2.1_Update1_API_7.avdconfig.iniSD Card 文件操作文件操作从从SDSD卡提取文件卡提取文件向向SDSD卡添加文件卡添加文件删除文件删除文件先选定设备(先选定设备(Device)然后打开然后打开File Explorer:另有:另有:adb 命令方式命令方式Google Android8、应用实例:、应用实例:a、b、c、don androidAndroid 应用开发应用开发na:Xeyenb:蓝牙短信收发:蓝牙短信收发nc:兰大新闻网:兰大新闻网nd:黑白棋游戏:黑白棋游戏thanks
限制150内