android框架與應(yīng)用開發(fā)介紹_第1頁
android框架與應(yīng)用開發(fā)介紹_第2頁
android框架與應(yīng)用開發(fā)介紹_第3頁
android框架與應(yīng)用開發(fā)介紹_第4頁
android框架與應(yīng)用開發(fā)介紹_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

android框架及應(yīng)用開發(fā)介紹信息應(yīng)用開發(fā)部2009年9月2Android的發(fā)展初探Android框架如何開發(fā)一個android應(yīng)用如何開發(fā)一個widget目錄Android發(fā)展路線2007年11月,Android發(fā)布2008年9月23日,HTCG1上市,androidSDK1.0發(fā)布2008年10月21日,android開源2009年4月27日,androidSDK1.5發(fā)布?android2.0,代號donut,支持CDMA,多點觸摸,文本語音引擎,…3Android手機一覽4華為pulseLGEtna5Android的發(fā)展初探Android框架如何開發(fā)一個android應(yīng)用如何開發(fā)一個widget目錄Android框架6JNIJAVAC/匯編Android應(yīng)用程序構(gòu)成7ActivityServiceBroadcastReceiverContentProviderIntent8ActivityActivityAvisualuserinterface通過view管理UI每一個有用戶界面的應(yīng)用至少包含一個activity一個應(yīng)用可以有多個activity,其中一個作為mainactivity用于啟動顯示Activity通過startActivity或startActivityForResult啟動另外的activity9Activity——View通過View管理UIView繪制UI與處理UI

eventView可通過xml描述定義,也可在代碼中生成。setContentView(R.layout.main)Android建議將UI設(shè)計和邏輯分離androidUI設(shè)計類似swing,通過布局(layout)組織UI組件10Activity生命周期Activity通過onCreate被創(chuàng)建當一個activity失去焦點,該activity將進入pause狀態(tài),系統(tǒng)在內(nèi)存不足時會將其終止當一個activity被另一個activity覆蓋,該activity將進入stop狀態(tài),系統(tǒng)在需要內(nèi)存的時候會將其終止1112IntentIntent(1)13類似于消息、事件通知Intent構(gòu)成:action、category、dataActivity、Service、broadcastreceiver之間的橋梁IntentactivityserviceBroadcastreceiverIntent(2)兩類intent:顯式:指定具體的目標組件處理startActivity(newIntent(ActivityLifecycle.this,AnotherActivity.class));隱式:由系統(tǒng)接受并決定如何處理startActivity(newIntent(Intent.ACTION_DIAL));在AndroidManifest.xml中定義activity、service、broadcastreceiver接受的intent14Intent(3)Intentfilter:action、category、data15frameworkComponentnameActionDataCategoryintentcomponentactivityserviceBroadcastreceiver實例16action--DIALdata--tel:02038639592action--VIEWdata--17ServiceService沒有UI,啟動之后一直運行于后臺例子:音樂播放器與應(yīng)用程序的其他模塊(例如activity)一同運行于主線程中通過startService或bindService創(chuàng)建Service通過stopService或stopSelf終止Service一般的,在activity中啟動和終止service18Service生命周期onCreateonStartonDestroy19Context.stopService()Serivce.stopSelf()Context.startService()Context.bindService()20ContentProvider何為Contentprovider什么是Contentprovider?ContentProvider是Android應(yīng)用程序的四大組成部分之一是android中的跨應(yīng)用訪問數(shù)據(jù)機制為何需要contentprovider?Android中每一個app的資源是私有的app通過contentprovider和其他app共享私有數(shù)據(jù)21如何使用contentprovider通過contentresolver訪問Context.getContentResolver()22appContentResolverContentProviderAContentProviderBContentResolverContentResolverappapp如何使用contentprovider(續(xù))URI定位資源content://contacts/peoplecontent://call_log類似關(guān)系數(shù)據(jù)庫的訪問方式以二維數(shù)據(jù)表的格式暴露數(shù)據(jù),缺省都包含_id字段23delete(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>創(chuàng)建MyProvider類,繼承自ContentProvider。定義該provider提供的數(shù)據(jù)集的URI和字段名在MyProvider中實現(xiàn)ContentProvider的6個abstractmethod:query,insert,update,delete,getType,onCreate在其他app中使用ContentResolver通過URI訪問MyProvider提供的數(shù)據(jù)24Android的存儲一般的,應(yīng)用程序的數(shù)據(jù)(包括文件)都是私有的四種持久存儲方式Preferences——類似properties,xml文件FilesDatabase——SQLiteNetwork2526BroadcastReceiverBroadcastreceiver接收和處理android的廣播消息Android的廣播機制系統(tǒng)事件——例如變換時區(qū)、電量低等應(yīng)用程序發(fā)出廣播消息:sendBroadCast廣播消息:intent27androidappBroadcastreceiverSendbroadcast創(chuàng)建BroadcastReceiver實現(xiàn)一個BroadcastReceiverpublicclassMyAndroidReceiverextendsBroadcastReceiveroverrideonReceive(Contextcontext,IntentsIntents)注冊BroadcastReceiver在AndroidManifest.xml文件當中進行注冊在代碼當中直接進行注冊28<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生命周期CreateObjectonReceiveDestroyobject29Broadcastreceiver對象在onReceive返回后被銷毀onReceive中不適合處理異步過程。例如彈出對話框與用戶交互,可使用消息欄替代。Android權(quán)限控制在AndroidManifest.xml中描述一個app的權(quán)限例如:

30<manifestxmlns:android="/apk/res/android"package="com.android.app.myapp"><uses-permissionandroid:name="android.permission.RECEIVE_SMS"/><uses-persissionandroid:name=“android.permission.INTENET”/></manifest>權(quán)限舉例(參考android.Manifest.permission)

權(quán)限名稱權(quán)限描述接收短信android.permission.RECEIVE_SMS撥打電話android.permission.CALL_PHONE系統(tǒng)啟動完畢通知android.permission.RECEIVE_BOOT_COMPLETED讀取聯(lián)系人信息android.permission.READ_CONTACTS修改聯(lián)系人信息android.permission.WRITE_CONTACTS31Android的發(fā)展初探Android框架如何開發(fā)一個android應(yīng)用如何開發(fā)一個widget目錄工欲善其事,必先利其器AndroidSDK最新版本:android-sdk-1.5_r2AVD:androidvirtualdeviceADB:AndroidDebugBridgeHierarchyviewer:UI解析……IDE:eclipse+ADTADT:AndroidDevelopmentTools32HelloWorld33Android帶UI應(yīng)用的入口,類似mainUI界面設(shè)計的xml文件,android中采用一個xml描述UIAndroidproject34Activityclass自動生成的資源定義類存放應(yīng)用使用的資源UI布局描述文件應(yīng)用使用的靜態(tài)字符串應(yīng)用程序描述文件基本UI組件3536實例:MyPhonebook37實例:短信未知號碼提示38Android的發(fā)展初探Android框架如何開發(fā)一個android應(yīng)用如何開發(fā)一個widget目錄Appwidget組成39AppWidgetProviderInfoAppWidgetProviderAppWidgetViewAppwidgetAppWidget描述文件。定義widget大小、更新頻率、接收的intent等Appwidget主體,java類,負責widget初始化,各種消息的響應(yīng)等Appwidget界面描述文件。描述widget主界面的布局、包含的控件、顯示效果等ConfigureActivity用于配置appwidget的activityAppwidget的UI設(shè)計40縱向屏幕橫向屏幕CellsPixels4x1320x1003x3240x3002x2160x200CellsPixels4x1424x743x3318x2222x2212x148幾個widget41androidwidget的局限功能界面類是RemoteViews

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論