android框架与应用开发介绍_第1页
android框架与应用开发介绍_第2页
android框架与应用开发介绍_第3页
android框架与应用开发介绍_第4页
android框架与应用开发介绍_第5页
已阅读5页,还剩41页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1Android的发展初探Android框架如何开发一个android应用基于Android手机视频监控(javacv)目录Android发展路线2007年11月,Android发布2008年9月23日,HTCG1上市,androidSDK1.0发布2008年10月21日,android开源2009年4月27日,androidSDK1.5发布AndroidSDK4.02Android手机一览3华为pulseLGEtna4Android的发展初探Android框架如何开发一个android应用基于Android手机的视频监控(javacv)目录Android框架5JNIJAVAC/汇编应用程序层(Applications)

Android系统包含系列的核心应用程序,SMS程序、日历、联系人等。

我们所要做的应用程序框架(ApplicationFramework)

ApplicationFramework提供了大量的API供开发者使用

开发的基础函数库(libraries) Android包含一些C/C++库,这些库能被Android系统中不同的组件

使用。它们通过Android应用程序框架为开发者提供服务6Android运行时(AndroidRuntime)

Android核心库:提供了JAVA编程

语言

核心库的大多数功

Dalvik虚拟机:负责运行Android应用程序,每个Android程序

运行在一个单独的Dalvik虚拟机内Java程序运行是通过javabytecode指令在java虚拟机中运行(.class),Dalvik虚拟机是运行的dex(DalvikExecutable)文件,因此Android提供了dx工具,用来将Javabytecode转换为dex

.class.dex(Dalvik)Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型

7Android应用程序构成8ActivityServiceBroadcastReceiverContentProviderIntentResourcesAndroid应用程序四大组件9ActivityServiceBroadcastReceiverContentProvider需要在应用程序配置文件中声明(注册)10ActivityActivityprovides: Ascreen,用户可以基于其进行交互 Avisualuserinterface/用户界面

setContentView(View)来定义activity的用

户界面

通过layout(View)xml文件来布局Activity(用户接口和activity的业务逻辑代码分开) “Layouts”是ViewGroup的子类,为其包含

的views提供了布局模型

linearlayoutgridlayout

……11每一个有用户界面的应用至少包含一个activity一个应用可以有多个activity,其中一个作为mainactivity用于启动显示Activity通过startActivity或startActivityForResult启动另外的activity12Activity——View通过layout管理UIView是所有UI控件及容器的基类View(layout)可通过xml描述定义,也可在代码中生成。setContentView(R.layout.main)Android建议将UI设计和逻辑分离androidUI设计类似swing,通过布局(layout)组织UI组件13Activity生命周期Activity通过onCreate被创建当一个activity失去焦点,该activity将进入pause状态,系统在内存不足时会将其终止当一个activity被另一个activity覆盖,该activity将进入stop状态,系统在需要内存的时候会将其终止141516IntentIntent(1)17类似于消息、事件通知/不同组件之间的通信载体Intent构成:action、category、dataActivity、Service、broadcastreceiver之间的桥梁IntentactivityserviceBroadcastreceiverIntent(2)两类intent:显式:指定具体的目标组件处理startActivity(newIntent(ActivityLifecycle.this,AnotherActivity.class));隐式:由系统接受并决定如何处理startActivity(newIntent(Intent.ACTION_DIAL));在AndroidManifest.xml中定义activity、service、broadcastreceiver接受的intent18Intent(3)Intentfilter:action、category、data19frameworkComponentnameActionDataCategoryintentcomponentactivityserviceBroadcastreceiver实例20action--DIALdata--tel:02038639592action--VIEWdata--21ServiceService没有UI,启动之后一直运行于后台例子:音乐播放器与应用程序的其他模块(例如activity)一同运行于主线程中通过startService或bindService创建Service通过stopService或stopSelf终止Service一般的,在activity中启动和终止service22Service生命周期onCreateonStartonDestroy23Context.stopService()Serivce.stopSelf()Context.startService()Context.bindService()24ContentProvider何为Contentprovider什么是Contentprovider?ContentProvider是Android应用程序的四大组成部分之一是android中的跨应用访问数据机制为何需要contentprovider?Android中每一个app的资源是私有的app通过contentprovider和其他app共享私有数据25如何使用contentprovider通过contentresolver访问Context.getContentResolver()26appContentResolverContentProviderAContentProviderBContentResolverContentResolverappapp如何使用contentprovider(续)URI定位资源content://contacts/peoplecontent://call_log类似关系数据库的访问方式以二维数据表的格式暴露数据,缺省都包含_id字段27delete(Uri

url,

Stringwhere,

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)定义自己的contentprovider在AndroidManifest.xml中声明一个provider<provider…>…</provider>创建MyProvider类,继承自ContentProvider。定义该provider提供的数据集的URI和字段名在MyProvider中实现ContentProvider的6个abstractmethod:query,insert,update,delete,getType,onCreate在其他app中使用ContentResolver通过URI访问MyProvider提供的数据28Android的存储一般的,应用程序的数据(包括文件)都是私有的四种持久存储方式Preferences——类似properties,xml文件FilesDatabase——SQLiteNetwork2930BroadcastReceiverBroadcastreceiver接收和处理android的广播消息Android的广播机制系统事件——例如变换时区、电量低等应用程序发出广播消息:sendBroadCast广播消息:intent31androidappBroadcastreceiverSendbroadcast创建BroadcastReceiver实现一个BroadcastReceiverpublicclassMyAndroidReceiverextendsBroadcastReceiveroverrideonReceive(Contextcontext,IntentsIntents)注册BroadcastReceiver在AndroidManifest.xml文件当中进行注册在代码当中直接进行注册32<receiverAndroid:name=“MyAndroidReceiver"><Intents-filter><actionAndroid:name=”com.eoeAndroid.action.NEW_BROADCAST”/></Intents-filter></receiver>IntentsFilterfilter=newIntentsFilter(NEW_BROADCAST);MyAndroidReceiverMyAndroidReceiver=newMyAndroidReceiver();registerReceiver(MyAndroidReceiver,filter);Broadcastreceiver生命周期CreateObjectonReceiveDestroyobject33Broadcastreceiver对象在onReceive返回后被销毁onReceive中不适合处理异步过程。例如弹出对话框与用户交互,可使用消息栏替代。Resources

使得更该应用程序的特征更加容易而不必更改代码最重要的一点是:提供与代码分离的可以为不同的配置设备提供不同的可选资源34Android权限控制在AndroidManifest.xml中描述一个app的权限例如:

35<manifestxmlns:android="/apk/res/android"package="com.android.app.myapp"><uses-permissionandroid:name="android.permission.RECEIVE_SMS"/><uses-persissionandroid:name=“android.permission.INTENET”/></manifest>权限举例(参考android.Manifest.permission)

权限名称权限描述接收短信android.permission.RECEIVE_SMS拨打电话android.permission.CALL_PHONE系统启动完毕通知android.permission.RECEIVE_BOOT_COMPLETED读取联系人信息android.permission.READ_CONTACTS修改联系人信息android.permission.WRITE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论