- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android框架 JNI JAVA C/汇编 Android应用程序构成 Activity Service Broadcast Receiver Content Provider Intent Activity Activity A visual user interface 通过view管理UI 每一个有用户界面的应用至少包含一个activity 一个应用可以有多个activity,其中一个作为main activity用于启动显示 Activity通过startActivity或startActivityForResult启动另外的activity Activity——View 通过View管理UI View绘制UI与处理UI event View可通过xml描述定义,也可在代码中生成。 setContentView(R.layout.main) Android建议将UI设计和逻辑分离 android UI设计类似swing,通过布局(layout)组织UI组件 Activity生命周期 Activity通过onCreate被创建 当一个activity失去焦点,该activity将进入pause状态,系统在内存不足时会将其终止 当一个activity被另一个activity覆盖,该activity将进入stop状态,系统在需要内存的时候会将其终止 Intent Intent(1) 类似于消息、事件通知 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 Intent(3) Intent filter: action、category、data framework Component name Action Data Category intent component activity service Broadcast receiver 实例 action -- DIAL data -- tel:02038639592 action -- VIEW data -- Service Service 没有UI,启动之后一直运行于后台 例子:音乐播放器 与应用程序的其他模块(例如activity)一同运行于主线程中 通过startService或bindService创建Service 通过stopService或stopSelf终止Service 一般的,在activity中启动和终止service Service生命周期 Context.stopService() Serivce.stopSelf() Context.startService() Context.bindService() Content Provider 何为Content provider 什么是Content provider? Content Provider 是Android应用程序的四大组成部分之一 是android中的跨应用访问数据机制 为何需要content provider? Android中每一个app的资源是私有的 app通过content provider和其他app共享私有数据 如何使用content provider 通过content resolver访问 Context.getContentResolver() app ContentResolver ContentProvider A ContentProvider B ContentResolver ContentResolver app app 如何使用content provider(续) URI定位资源 content://contacts/people content://call_log 类似关系数据库的访问方式 以二维数据表的格式暴露数据,缺省都包含_id字段 delete(Uri?url,?String where,?String[]?selectionArgs) insert(Uri?
文档评论(0)