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

下載本文檔

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

文檔簡(jiǎn)介

android框架及應(yīng)用開(kāi)發(fā)介紹 信息應(yīng)用開(kāi)發(fā)部 2009年 9月 2 Android的發(fā)展 初探 Android框架 如何開(kāi)發(fā)一個(gè) android應(yīng)用 如何開(kāi)發(fā)一個(gè) widget 目錄 Android發(fā)展路線 2007年11月,Android發(fā)布 2008年 9月 23日,HTC G1上市,android SDK 1.0發(fā)布 2008年 10月 21日,android開(kāi)源 2009年 4月 27日,android SDK 1.5發(fā)布 ?android 2.0,代號(hào) donut,支持CDMA,多點(diǎn)觸摸,文本語(yǔ)音引擎, 3 Android手機(jī)一覽 4 華為 pulse LG Etna 5 Android的發(fā)展 初探 Android框架 如何開(kāi)發(fā)一個(gè) android應(yīng)用 如何開(kāi)發(fā)一個(gè) widget 目錄 Android框架 6 JNI JAVA C/匯編 Android應(yīng)用程序構(gòu)成 7 Activity Service Broadcast Receiver Content Provider Intent 8 Activity Activity A visual user interface 通過(guò) view管理 UI 每一個(gè)有用戶界面的應(yīng)用至少包含一個(gè)activity 一個(gè)應(yīng)用可以有多個(gè) activity,其中一個(gè)作為main activity用于啟動(dòng)顯示 Activity通過(guò) startActivity或startActivityForResult啟動(dòng)另外的 activity 9 ActivityView 通過(guò) View管理 UI View繪制 UI與處理 UI event View可通過(guò) xml描述定義,也可在代碼中生成。 setContentView(R.layout.main) Android建議將 UI設(shè)計(jì)和邏輯分離 android UI設(shè)計(jì)類(lèi)似 swing,通過(guò)布局 (layout)組織 UI組件 10 Activity生命周期 Activity通過(guò) onCreate被創(chuàng)建 當(dāng)一個(gè) activity失去焦點(diǎn),該 activity將進(jìn)入 pause狀態(tài),系統(tǒng)在內(nèi)存不足時(shí)會(huì)將其終止 當(dāng)一個(gè) activity被另一個(gè)activity覆蓋,該 activity將進(jìn)入 stop狀態(tài),系統(tǒng)在需要內(nèi)存的時(shí)候會(huì)將其終止 11 12 Intent Intent(1) 13 類(lèi)似于消息、事件通知 Intent構(gòu)成: action、 category、 data Activity、 Service、 broadcast receiver之間的橋梁 Intent activity service Broadcast receiver Intent(2) 兩類(lèi) intent: 顯式:指定具體的目標(biāo)組件處理 startActivity(new Intent(ActivityLifecycle.this, AnotherActivity.class); 隱式:由系統(tǒng)接受并決定如何處理 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 實(shí)例 16 action - DIAL data - tel:02038639592 action - VIEW data - 17 Service Service 沒(méi)有 UI,啟動(dòng)之后一直運(yùn)行于后臺(tái) 例子:音樂(lè)播放器 與應(yīng)用程序的其他模塊(例如 activity)一同運(yùn)行于主線程中 通過(guò) startService或 bindService創(chuàng)建 Service 通過(guò) stopService或 stopSelf終止 Service 一般的,在 activity中啟動(dòng)和終止 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應(yīng)用程序的四大組成部分之一 是 android中的跨應(yīng)用訪問(wèn)數(shù)據(jù)機(jī)制 為何需要 content provider? Android中每一個(gè) app的資源是私有的 app通過(guò) content provider和其他app共享私有數(shù)據(jù) 21 如何使用 content provider 通過(guò) content resolver訪問(wèn) Context.getContentResolver() 22 app ContentResolver ContentProvider A ContentProvider B ContentResolver ContentResolver app app 如何使用 content provider(續(xù) ) URI定位資源 content:/contacts/people content:/call_log 類(lèi)似關(guān)系數(shù)據(jù)庫(kù)的訪問(wèn)方式 以二維數(shù)據(jù)表的格式暴露數(shù)據(jù),缺省都包含 _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中聲明一個(gè) provider 創(chuàng)建 MyProvider類(lèi),繼承自 ContentProvider。定義該 provider提供的數(shù)據(jù)集的 URI和字段名 在 MyProvider中實(shí)現(xiàn) ContentProvider的 6個(gè)abstract method: query, insert, update, delete, getType, onCreate 在其他 app中使用 ContentResolver通過(guò) URI訪問(wèn) MyProvider提供的數(shù)據(jù) 24 Android的存儲(chǔ) 一般的,應(yīng)用程序的數(shù)據(jù)(包括文件)都是私有的 四種持久存儲(chǔ)方式 Preferences類(lèi)似 properties, xml文件 Files DatabaseSQLite Network 25 26 Broadcast Receiver Broadcast receiver 接收和處理 android的廣播消息 Android的廣播機(jī)制 系統(tǒng)事件 例如變換時(shí)區(qū)、電量低等 應(yīng)用程序發(fā)出廣播消息: sendBroadCast 廣播消息: intent 27 android app Broadcast receiver Send broadcast 創(chuàng)建 Broadcast Receiver 實(shí)現(xiàn)一個(gè) BroadcastReceiver public class MyAndroidReceiver extends BroadcastReceiver override onReceive(Context context, Intents Intents) 注冊(cè) BroadcastReceiver 在 AndroidManifest.xml文件當(dāng)中進(jìn)行注冊(cè) 在代碼當(dāng)中直接進(jìn)行注冊(cè) 28 IntentsFilter filter = new IntentsFilter(NEW_BROADCAST ); MyAndroidReceiver MyAndroidReceiver = new MyAndroidReceiver(); registerReceiver(MyAndroidReceiver , filter); Broadcast receiver生命周期 Create Object onReceive Destroy object 29 Broadcast receiver對(duì)象在 onReceive返回后被銷(xiāo)毀 onReceive中不適合處理異步過(guò)程。例如彈出對(duì)話框與用戶交互,可使用消息欄替代。 Android權(quán)限控制 在 AndroidManifest.xml中描述一個(gè) app的權(quán)限 例如: 30 權(quán)限舉例 (參考 android. Manifest.permission) 權(quán)限名稱(chēng) 權(quán)限描述 接收短信 android.permission.RECEIVE_SMS 撥打電話 android.permission.CALL_PHONE 系統(tǒng)啟動(dòng)完畢通知 android.permission.RECEIVE_BOOT_COMPLETED 讀取聯(lián)系人信息 android.permission.READ_CONTACTS 修改聯(lián)系人信息 android.permission.WRITE_CONTACTS 31 Android的發(fā)展 初探 Android框架 如何開(kāi)發(fā)一個(gè) android應(yīng)用 如何開(kāi)發(fā)一個(gè) 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應(yīng)用的入口,類(lèi)似 main UI界面設(shè)計(jì)的 xml文件,android中采用一個(gè) xml描述 UI Android project 34 Activity class 自動(dòng)生成的資源定義類(lèi) 存放應(yīng)用使用的資源 UI布局描述文件 應(yīng)用使用的靜態(tài)字符串 應(yīng)用程序描述文件 基本 UI組件 35 36 實(shí)例: MyPhonebook 37 實(shí)例:短信未知號(hào)碼提示 38 Android的發(fā)展 初探 Android框架 如何開(kāi)發(fā)一個(gè) android應(yīng)用 如何開(kāi)發(fā)一個(gè) widget 目錄 App widget組成 39 AppWidget Provider Info AppWidget Provider AppWidget View App widget App Widget描述文件。定義 widget大小、更新頻率、接收的 intent等 App widget主體, java類(lèi),負(fù)責(zé) widget初始化,各種消息的響應(yīng)等 App widget界面描述文件。描述 widget主界面的布局、包含的控件、顯示效果等 Configure Activity 用于配置 app widget的activity App widget的 UI設(shè)計(jì) 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 幾個(gè) widget 41 android widget的局限 功能 界面類(lèi)是 RemoteViews而不是 View或 ViewGrou

溫馨提示

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

評(píng)論

0/150

提交評(píng)論