




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
android框架及应用开发介绍 信息应用开发部 2009年 9月 2 Android的发展 初探 Android框架 如何开发一个 android应用 如何开发一个 widget 目录 Android发展路线 2007年11月,Android发布 2008年 9月 23日,HTC G1上市,android SDK 1.0发布 2008年 10月 21日,android开源 2009年 4月 27日,android SDK 1.5发布 ?android 2.0,代号 donut,支持CDMA,多点触摸,文本语音引擎, 3 Android手机一览 4 华为 pulse LG Etna 5 Android的发展 初探 Android框架 如何开发一个 android应用 如何开发一个 widget 目录 Android框架 6 JNI JAVA C/汇编 Android应用程序构成 7 Activity Service Broadcast Receiver Content Provider Intent 8 Activity Activity A visual user interface 通过 view管理 UI 每一个有用户界面的应用至少包含一个activity 一个应用可以有多个 activity,其中一个作为main activity用于启动显示 Activity通过 startActivity或startActivityForResult启动另外的 activity 9 ActivityView 通过 View管理 UI View绘制 UI与处理 UI event View可通过 xml描述定义,也可在代码中生成。 setContentView(R.layout.main) Android建议将 UI设计和逻辑分离 android UI设计类似 swing,通过布局 (layout)组织 UI组件 10 Activity生命周期 Activity通过 onCreate被创建 当一个 activity失去焦点,该 activity将进入 pause状态,系统在内存不足时会将其终止 当一个 activity被另一个activity覆盖,该 activity将进入 stop状态,系统在需要内存的时候会将其终止 11 12 Intent Intent(1) 13 类似于消息、事件通知 Intent构成: action、 category、 data Activity、 Service、 broadcast receiver之间的桥梁 Intent activity service Broadcast receiver Intent(2) 两类 intent: 显式:指定具体的目标组件处理 startActivity(new Intent(ActivityLifecycle.this, AnotherActivity.class); 隐式:由系统接受并决定如何处理 startActivity(new Intent(Intent.ACTION_DIAL); 在 AndroidManifest.xml中定义 activity、 service、 broadcast receiver接受的 intent 14 Intent(3) Intent filter: action、 category、 data 15 framework Component name Action Data Category intent component activity service Broadcast receiver 实例 16 action - DIAL data - tel:02038639592 action - VIEW data - 17 Service Service 没有 UI,启动之后一直运行于后台 例子:音乐播放器 与应用程序的其他模块(例如 activity)一同运行于主线程中 通过 startService或 bindService创建 Service 通过 stopService或 stopSelf终止 Service 一般的,在 activity中启动和终止 service 18 Service生命周期 onCreate onStart onDestroy 19 Context.stopService() Serivce.stopSelf() Context.startService() Context.bindService() 20 Content Provider 何为 Content provider 什么是 Content provider? Content Provider 是 Android应用程序的四大组成部分之一 是 android中的跨应用访问数据机制 为何需要 content provider? Android中每一个 app的资源是私有的 app通过 content provider和其他app共享私有数据 21 如何使用 content provider 通过 content resolver访问 Context.getContentResolver() 22 app ContentResolver ContentProvider A ContentProvider B ContentResolver ContentResolver app app 如何使用 content provider(续 ) URI定位资源 content:/contacts/people content:/call_log 类似关系数据库的访问方式 以二维数据表的格式暴露数据,缺省都包含 _id字段 23 delete(Uri url, String where, String selectionArgs) insert(Uri url, ContentValues values) query(Uri uri, String projection, String selection, String selectionArgs, String sortOrder) update(Uri uri, ContentValues values, String where, String selectionArgs) 定义自己的 content provider 在 AndroidManifest.xml中声明一个 provider 创建 MyProvider类,继承自 ContentProvider。定义该 provider提供的数据集的 URI和字段名 在 MyProvider中实现 ContentProvider的 6个abstract method: query, insert, update, delete, getType, onCreate 在其他 app中使用 ContentResolver通过 URI访问 MyProvider提供的数据 24 Android的存储 一般的,应用程序的数据(包括文件)都是私有的 四种持久存储方式 Preferences类似 properties, xml文件 Files DatabaseSQLite Network 25 26 Broadcast Receiver Broadcast receiver 接收和处理 android的广播消息 Android的广播机制 系统事件 例如变换时区、电量低等 应用程序发出广播消息: sendBroadCast 广播消息: intent 27 android app Broadcast receiver Send broadcast 创建 Broadcast Receiver 实现一个 BroadcastReceiver public class MyAndroidReceiver extends BroadcastReceiver override onReceive(Context context, Intents Intents) 注册 BroadcastReceiver 在 AndroidManifest.xml文件当中进行注册 在代码当中直接进行注册 28 IntentsFilter filter = new IntentsFilter(NEW_BROADCAST ); MyAndroidReceiver MyAndroidReceiver = new MyAndroidReceiver(); registerReceiver(MyAndroidReceiver , filter); Broadcast receiver生命周期 Create Object onReceive Destroy object 29 Broadcast receiver对象在 onReceive返回后被销毁 onReceive中不适合处理异步过程。例如弹出对话框与用户交互,可使用消息栏替代。 Android权限控制 在 AndroidManifest.xml中描述一个 app的权限 例如: 30 权限举例 (参考 android. Manifest.permission) 权限名称 权限描述 接收短信 android.permission.RECEIVE_SMS 拨打电话 android.permission.CALL_PHONE 系统启动完毕通知 android.permission.RECEIVE_BOOT_COMPLETED 读取联系人信息 android.permission.READ_CONTACTS 修改联系人信息 android.permission.WRITE_CONTACTS 31 Android的发展 初探 Android框架 如何开发一个 android应用 如何开发一个 widget 目录 工欲善其事,必先利其器 Android SDK 最新版本: android-sdk-1.5_r2 AVD: android virtual device ADB: Android Debug Bridge Hierarchyviewer: UI解析 IDE: eclipse + ADT ADT: Android Development Tools 32 Hello World 33 Android带 UI应用的入口,类似 main UI界面设计的 xml文件,android中采用一个 xml描述 UI Android project 34 Activity class 自动生成的资源定义类 存放应用使用的资源 UI布局描述文件 应用使用的静态字符串 应用程序描述文件 基本 UI组件 35 36 实例: MyPhonebook 37 实例:短信未知号码提示 38 Android的发展 初探 Android框架 如何开发一个 android应用 如何开发一个 widget 目录 App widget组成 39 AppWidget Provider Info AppWidget Provider AppWidget View App widget App Widget描述文件。定义 widget大小、更新频率、接收的 intent等 App widget主体, java类,负责 widget初始化,各种消息的响应等 App widget界面描述文件。描述 widget主界面的布局、包含的控件、显示效果等 Configure Activity 用于配置 app widget的activity App widget的 UI设计 40 纵向屏幕 横向屏幕 Cells Pixels 4 x 1 320 x 100 3 x 3 240 x 300 2 x 2 160 x 200 Cells Pixels 4 x 1 424 x 74 3 x 3 318 x 222 2 x 2 212 x 148 几个 widget 41 android widget的局限 功能 界面类是 RemoteViews而不是 View或 ViewGrou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程技术服务劳动协议年
- 项目管理中的能力提升试题及答案
- 工程项目管理人才发展试题及答案
- 网络游戏开发测试与上线合同
- 工程项目风险控制的方法试题及答案
- 小学生生命安全教育
- 提升企业核心竞争力的总结计划
- 通过社交反馈增强品牌价值计划
- 2025年工程项目管理核心能力试题及答案
- 工程经济学的应用实例分析试题与答案
- 2025年人教版小学一年级下学期奥林匹克数学竞赛试题(附答案解析)
- 《社会保险知识普及教学课件》
- 延安通和电业有限责任公司招聘笔试真题2024
- 上海市松江区2024-2025学年七年级下学期期中数学试卷
- 2024年新疆吉木乃县事业单位公开招聘辅警23名笔试题带答案
- 2025年物流管理专业考试试卷及答案
- 昆明理工大学津桥学院教职工招聘真题2024
- 2025年全国保密教育线上培训考试试题库及参考答案【巩固】含答案详解
- 品质组长考试试题及答案
- 中华人民共和国民营经济促进法
- 《测绘生产成本费用定额》(2025版)
评论
0/150
提交评论