版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能手机应用开发,based on android 2011.5,内容包括:,1、Android 平台概述 2、搭建 Android 开发环境 3、第一个 Android 应用程序 4、Android 用户界面设计 5、Activity、Intent、Service、Broadcast Receiver 6、Android 中的数据存取 7、Android 的多媒体应用 8、应用实例:a、b、c、d,课程结构,开放手机联盟(OHA) Android 平台综述: 平台介绍、开发者社区 开发环境: 构建 Android 开发环境 应用程序: 应用程序结构 典型应用: 用户界面、图形编程 数据存取、
2、网络连接 硬件访问,获取 Android 资料的途径, 下载 sdk 等相关软件 查看文档 在线帮助 开发社区 国内需要代理才能访问 news sdk下载 开发FAQ、源码下载 移植,6、Android 中的数据存取,on android,数据存取方式,Preference “键-值”方式存储,以 xml 文件的形式保存 File 采用 java.io.* 库所提供 I/O 接口读写文件 SQLite SQLite 是轻量级的嵌入式数据库引擎 Content Provider 用于实现不同应用程序之间的数据共享,1、Preference,主要用于存储数据较少的场合,比如配置信息 文件位置:/d
3、ata/data/shared_prefs/*.xml 需要用到接口:SharedPreferences 及其内部接口:SharedPreferences.Editor 取得接口: Context.SharedPreferences(filename,mode) SharedPreferences.edit() 数据类型、数据操作: int、flaot、string、boolean等 putString(key,value) getString(key,defValue),实例:Test_of_Preference,定义 main.xml: 一个 EditText 用于键入数据 三个 Butt
4、on 分别用于将数据写入 xml 文件、从文件获取数据并显示、清除文件中的数据 定义 sharedpreferences.xml: 一个 TextView 用于显示从文件中获取的数据,et1=(EditText)findViewById(R.id.editText1); button1=(Button)findViewById(R.id.button1); button2=(Button)findViewById(R.id.button2); button3=(Button)findViewById(R.id.button3);,textView1=(TextView)findViewById
5、(R.id.textView1);,创建接口 sp1、spEditor1 以键值 方式加入数据 以 String Key 为索引来获取数据 清除数据,private SharedPreferences sp1; sp1 = this.getSharedPreferences(test, MODE_PRIVATE); SharedPreferences.Editor spEditor1 = sp1.edit();,spEditor1.putString(TEXT,et1.getText().toString(); spEmit();,String string1 = sp1.getString(
6、TEXT, ); textView1.setText(string1);,spEditor1.clear().commit();,运行结果:,2、File,文件可用来存放大量数据,如文本、图片、音频等 默认位置:/data/data/files/*.* java.io.* 库提供 I/O 接口实现本地文件读写 文件输入流的获取 Context.openFileInput(String name) 文件输出流的获取 Context.openFileOutput(String name, int mode) 包内资源(res/raw/)文件的读取 Resources.openRawResource
7、(R.raw.file),实例:Test_of_File,定义 main.xml: 两个 EditText、两个 Button 写文件 writeFile(str):,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(); ,读文件
8、readFile():,private String readFile() try FileInputStream input = openFileInput(FILE_NAME); byte 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.
9、setText(readFile();,运行结果: 注意:写文件时用的 MODE_APPEND 模式,3、SQLite,SQLite 轻量级嵌入式数据库引擎,面向资源有限的设备 没有服务器进程 所有数据存放在同一文件中 跨平台,可自由复制 SQLiteOpenHelper 帮助类,用于管理数据库创建和版本更新 onCreate(SQLiteDatabase db) onUpgrade(db,int old_ver,int new_ver) sqlite3 :位于 /tools,实例:Test_of_SQLite,DatabaseHelper 继承自 SQLiteOpenHelper 重写了on
10、Create()、onUpgrade() 方法 实现 insert、del、query、close 等方法 ListView 显示记录,字段对应成 TextView ListView 的 onItemClick() 实现删除记录 数据库文件路径: /data/data/database/*.db,private SQLiteDatabase db; public void insert(ContentValues values) SQLiteDatabase db = getWritableDatabase(); db.insert(TABLE_NAME, null, values); db.
11、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.java,DatabaseHelper dbHelper = new DatabaseHelper(this); Cursor cursor
12、 = dbHelper.query(); 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); AlertD
13、ialog.Builder adBuilder = new AlertDialog.Builder(this);,Query_Test.java,listView.onItemClick adBuilder.setMessage(确认删除?) .setPositiveButton(Y, new OnClickListener() .setNegativeButton(N, new OnClickListener(); AlertDialog aleraDialog = adBuilder.create(); aleraDialog.show(); ,删除记录并重建 ListView,运行结果:
14、,4、Content Provider,与 Activity、Service、Broadcast Receiver 同属 Android 应用程序基本组件之一 用于保存和检索数据,实现了数据的跨应用共享 Android 中各应用均运行在自己的进程中,互相访问的 Content Provider 接口统一定义在 vider 包内,涵盖了常见的数据类型如音视频、图片、联系人等 实现的方法包括: insert、delete、qurey、update 等,URI Content Provider 用以实现数据共享的对象 Content Resolver Content Provi
15、der 的客户端接口 客户端通过 getContentResolver() 获得接口 提供与 Content Provider 对应的方法 间接地通过操作 Resolver 来操作 Provider 一个 Provider 可以对应多个 Resolver 用户自定义系统 :Content Provider,实例:Test_of_ContentProvider,系统 Content Provider 添加联系人:,String name = editText1.getText().toString(); String notes = editText2.getText().toString();
16、 ContentResolver contentResolver1 = getContentResolver(); ContentValues contentValues1 = new ContentValues(); Uri uri1 = Contacts.People.CONTENT_URI; contentValues1.put(People.NAME,name); contentValues1.put(People.NOTES, notes); trycontentResolver1.insert(uri1, contentValues1);,运行结果:,7、Android 的多媒体应
17、用,on android,Android 的多媒体,Android 实现了常见媒体格式的编解码机制 图片:jpeg、gif、png、bmp 音频:3gp、mp3、wav 视频:3gp、mp4 Android 提供相应 API 实现多媒体应用 音视频播放:MediaPlayer、JetPlayer 音视频录制: MediaRecorder 媒体文件来源: 应用程序资源、本地文件、网络文件流,实例:ImageView, ,实例:GridView、Gallery,详见实例:Test_of_Widget,实例:Test_of_Mp3Player,实现 MediaPlayer.OnCompletionL
18、istener 接口,public class Mp3Player_Test extends Activity implements MediaPlayer.OnCompletionListener / 重写 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(); ,定义 MediaPlayer 对象并初始化,private MediaPlayer mp1,mp2; private void mp1init() try mp1=MediaPlayer.create(this, R.raw.temp); mp1.setOnCompletionListener(this); catch (Throwable t)errorRepo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东广州花都城投西城经济开发有限公司招聘综合总及背景调查环节人员笔试历年参考题库附带答案详解
- 2026届上海市延安中学高三下学期综合模拟考试化学试题含解析
- 2026安徽宣城泾县乡村振兴发展有限公司及下属公司招聘17人备考题库参考答案详解
- 2026山东潍坊市昌邑市招聘教师32人备考题库及答案详解(夺冠)
- 2026福建福州市鼓楼区安泰街道公共管理办招聘1人备考题库附答案详解(黄金题型)
- 2025年医疗健康体检设备研发生产项目智能化设备研发与标准规范研究报告
- 2026年福建宁德福安市统计局招聘40名备考题库及1套完整答案详解
- 2026浙江省血液中心招聘劳务派遣人员3人备考题库附答案详解(典型题)
- 2026陕西西安碑林区柏树林社区卫生服务中心招聘备考题库含答案详解(突破训练)
- 2026新疆博尔塔拉州博乐市博报文化传媒有限责任公司招聘2人备考题库附答案详解(预热题)
- 国家职业技能标准 4-08-08-07 室内装饰设计师(2023年版)
- 2021-2025高考数学真题分类汇编专题18统计与统计案例5种常见考法归类(全国版)(解析版)
- 公司小药箱物品管理制度
- 诊所收费室管理制度
- 语文●全国Ⅰ卷丨2024年普通高等学校招生全国统一考试语文试卷及答案
- CJ/T 192-2017内衬不锈钢复合钢管
- 2025年电工三级(高级工)理论100题及答案
- 车库金刚砂地坪施工的防滑措施
- 2025年《家校共育共话成长》一年级下册家长会课件
- 第二单元第1课《观照自然》教学设计 2025人美版美术七年级下册
- 车间装配知识培训课件
评论
0/150
提交评论