您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > Android框架与应用开发介绍
android框架及应用开发介绍信息应用开发部2009年9月¾3Android的发展初探Android框架如何开发一个android应用如何开发一个widget目录Android发展路线4Android手机一览5华为pulseLGEtna6Android的发展初探Android框架如何开发一个android应用如何开发一个widget目录Android框架7JNIJAVAC/汇编Android应用程序8ActivityServiceBroadcastReceiverContentProviderIntent9ActivityActivity¾Avisualuserinterface¾通过view管理UI¾每一个有用户界面的应用至少包含一个activity¾一个应用可以有多个activity,其中一个作为mainactivity用于启动显示¾Activity通过startActivity或startActivityForResult启动另外的activity10Activity——View¾通过View管理UI¾View绘制UI与处理UIevent¾View可通过xml描述定义,也可在代码中生成。¾setContentView(R.layout.main)¾Android建议将UI设计和逻辑分离¾androidUI设计类似swing,通过布局(layout)组织UI组件11Activity生命周期¾Activity通过onCreate被创建¾当一个activity失去焦点,该activity将进入pause状态,系统在内存不足时会将其终止¾当一个activity被另一个activity覆盖,该activity将进入stop状态,系统在需要内存的时候会将其终止1213IntentIntent(1)14¾类似于消息、事件通知¾Intent构成:action、category、data¾Activity、Service、broadcastreceiver之间的桥梁IntentactivityserviceBroadcastreceiverIntent(2)¾两类intent:z显式:指定具体的目标组件处理–startActivity(newIntent(ActivityLifecycle.this,AnotherActivity.class));z隐式:由系统接受并决定如何处理–startActivity(newIntent(Intent.ACTION_DIAL));¾在AndroidManifest.xml中定义activity、service、broadcastreceiver接受的intent15Intent(3)¾Intentfilter:action、category、data16frameworkComponentnameActionDataCategoryintentcomponentactivityserviceBroadcastreceiver实例17action--DIALdata--tel:02038639592action--VIEWdata--¾没有UI,启动之后一直运行于后台¾例子:音乐播放器¾与应用程序的其他模块(例如activity)一同运行于主线程中¾通过startService或bindService创建Service¾通过stopService或stopSelf终止Service¾一般的,在activity中启动和终止service19Service生命周期20Context.stopService()Serivce.stopSelf()Context.startService()Context.bindService()21ContentProvider何为Contentpro¾什么是Contentprovider?zContentProvider是Android应用程序的四大组成部分之一z是android中的跨应用访问数据机制¾为何需要contentprovider?zAndroid中每一个app的资源是私有的zapp通过contentprovider和其他app共享私有数据22如何使用content¾通过contentresolver访问¾Context.getContentResolver()23appContentResolverContentProviderAContentProviderBContentResolverContentResolverappapp如何使用content续)¾URI定位资源zcontent://contacts/peoplezcontent://call_log¾类似关系数据库的访问方式¾以二维数据表的格式暴露数据,缺省都包含_id字段24delete(Uriurl,Stringwhere,String[]selectionArgs)insert(Uriurl,ContentValuesvalues)query(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder)update(Uriuri,ContentValuesvalues,Stringwhere,String[]selectionArgs)定义自己的conte25Android的存储¾一般的,应用程序的数据(包括文件)都是私有的¾四种持久存储方式zPreferences——类似properties,xml文件zFileszDatabase——SQLitezNetwork2627BroadcastReceiverBroadcastreceiv¾接收和处理android的广播消息¾Android的广播机制z系统事件——例如变换时区、电量低等z应用程序发出广播消息:sendBroadCastz广播消息:intent28androidappBroadcastreceiverSendbroadcast创建BroadcastR¾实现一个BroadcastReceiverzpublicclassMyAndroidReceiverextendsBroadcastReceiverzoverrideonReceive(Contextcontext,IntentsIntents)¾注册BroadcastReceiverz在AndroidManifest.xml文件当中进行注册z在代码当中直接进行注册29receiverAndroid:name=“MyAndroidReceiverIntents-filteractionAndroid:name=”com.eoeAndroid.action.NEW_BROADCAST”//Intents-filter/receiverIntentsFilterfilter=newIntentsFilter(NEW_BROADCAST);MyAndroidReceiverMyAndroidReceiver=newMyAndroidReceiver();registerReceiver(MyAndroidReceiver,filter);Broadcastreceiv30Broadcastreceiver对象在onReceive返回后被销毁onReceive中不适合处理异步过程。例如弹出对话框与用户交互,可使用消息栏替代。Android权限控制¾在AndroidManifest.xml中描述一个app的权限¾例如:31manifestxmlns:android==com.android.app.myappuses-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_CONTACTS32Android的发展初探Android框架如何开发一个android应用如何开发一个widget目录工欲善其事,必¾AndroidSDKz昀新版本:android-sdk-1.5_r2zAVD:androidvirtualdevicezADB:AndroidDebugBridgezHierarchyviewer:UI解析z……¾IDE:eclipse+ADTzADT:AndroidDevelopmentTools33HelloWorld34Android带UI应用的入口,类似mainUI界面设计的xml文件,android中采用一个xml描述UIAndroidproject35Activityclass自动生成的资源定义类存放应用使用的资源UI布局描述文件应用使用的静态字符串应用程序描述文件基本UI组件3637实例:MyPhonebook38实例:短信未知号码提示39Android的发展初探Android框架如何开发一个android应用如何开发一个widget目录Appwidget组成40AppWidgetProviderInfoAppWidgetProviderAppWidgetViewAppwidgetAppWidget描述文件。定义widget大小、更新频率、接收的intent等Appwidget主体,java类,负责widget初始化,各种消息的响应等Appwidget界面描述文件。描述widget主界面的布局、包含的控件、显示效果等ConfigureActivity用于配置appwidget的activityAppwidget的UI41纵向屏幕横向屏幕CellsPixels4x1320x1003x3240x3002x2160x200CellsPixels4x1424x743x3318x2222x2212x148几个widget42androidwidget的¾功能z界面类是RemoteViews而不是View或ViewGroupz只支持少数布局和控件9布局:LinearLayout,FrameLayout,RelativeLayout9控件:button,TextView,ImageView,ImageButton,ProgressBar,AnalogClock,Chronometer(类似timer)¾android管理widget的策略:z只有当一个widget的所有实例都被delete了,该widget才会被disable。否则,被delete的widget实例仍然会在后台运行,只是界面没显示。4344
本文标题:Android框架与应用开发介绍
链接地址:https://www.777doc.com/doc-4916924 .html