




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java程序設(shè)計(jì)程序設(shè)計(jì)補(bǔ)充補(bǔ)充 Android應(yīng)用開發(fā)應(yīng)用開發(fā)用Java開發(fā)Android應(yīng)用目錄nAndroid平臺(tái)架構(gòu)nAndroid開發(fā)環(huán)境和開發(fā)步驟nAndroid應(yīng)用程序的構(gòu)成nAndroid程序示例Android平臺(tái)架構(gòu)用Java開發(fā)Android應(yīng)用AndroidAndroid平臺(tái)架構(gòu)平臺(tái)架構(gòu)JNIJAVAC/匯編用Java開發(fā)Android應(yīng)用簡(jiǎn)介nLinuxLinux核心核心:Android依賴Linux 2.6來提供核心的服務(wù),例如存儲(chǔ)管理、進(jìn)程(Process)管理等nAndroid RuntimeAndroid Runtime:Java語(yǔ)言層級(jí)的Virtual Mac
2、hinenLibrariesLibraries:Android里已經(jīng)提供的C/C+組件。例如,SQLite、OpenGL 3D等。n應(yīng)用應(yīng)用框架框架(Application Framework,)(Application Framework,):這是結(jié)合Applications和Libraries的主架構(gòu),讓Libraries組件能不斷地為Applications所重復(fù)使用n應(yīng)用程序應(yīng)用程序(Applications)(Applications):根據(jù)用戶的期望而將AF的組件及Libraries組件組合而成的服務(wù)。用Java開發(fā)Android應(yīng)用用Java開發(fā)Android應(yīng)用Android開
3、發(fā)環(huán)境和開發(fā)步驟用Java開發(fā)Android應(yīng)用安裝 Android開發(fā)工具下載javahttp:/ 選Java SE downloadhttp:/ Eclipse Standard下載android sdkhttp:/ 或者直接下載 ADT (Android Developer Tools) 其中有個(gè)其中有個(gè) ADT Bundle for Windows 直接包含了直接包含了 sdk及及eclipse或 http:/ 用Java開發(fā)Android應(yīng)用開發(fā)第一個(gè)Android應(yīng)用打開Eclipse,新建項(xiàng)目(點(diǎn)擊FileNewProject),在項(xiàng)目列表中展開Android目錄,選擇Andro
4、id Project,如下圖:用Java開發(fā)Android應(yīng)用開發(fā)第一個(gè)Android應(yīng)用用Java開發(fā)Android應(yīng)用開發(fā)第一個(gè)Android應(yīng)用點(diǎn)擊”finish”即可完成項(xiàng)目的創(chuàng)建,創(chuàng)建后的項(xiàng)目已經(jīng)是一個(gè)可運(yùn)行的Android應(yīng)用,我們可以通過下面方式運(yùn)行此應(yīng)用:點(diǎn)擊工具欄上手機(jī)形狀的虛擬設(shè)備管理器(簡(jiǎn)稱“AVD“),如下:用Java開發(fā)Android應(yīng)用開發(fā)第一個(gè)Android應(yīng)用在打開的虛擬設(shè)備管理器中創(chuàng)建一個(gè)虛擬手機(jī):用Java開發(fā)Android應(yīng)用開發(fā)第一個(gè)Android應(yīng)用在項(xiàng)目上右鍵點(diǎn)擊run as Android application,如下圖:用Java開發(fā)Androi
5、d應(yīng)用Android應(yīng)用程序架構(gòu)src/ java原代碼存放目錄原代碼存放目錄gen/ 自動(dòng)生成目錄自動(dòng)生成目錄gen 目錄中存放所有由Android開發(fā)工具自動(dòng)生成的文件。目錄中最重要的就是R.java文件。 這個(gè)文件由Android開發(fā)工具自動(dòng)產(chǎn)生的。Android開發(fā)工具會(huì)自動(dòng)根據(jù)你放入res目錄的xml界面文件、圖標(biāo)與常量,同步更新修改R.java文件。正因?yàn)镽.java文件是由開發(fā)工具自動(dòng)生成的,所以我們應(yīng)避免手工修改R.java。R.java在應(yīng)用中起到了字典的作用,它包含了界面、圖標(biāo)、常量等各種資源的id,通過R.java,應(yīng)用可以很方便地找到對(duì)應(yīng)資源。另外編繹器也會(huì)檢查R.ja
6、va列表中的資源是否被使用到,沒有被使用到的資源不會(huì)編繹進(jìn)軟件中,這樣可以減少應(yīng)用在手機(jī)占用的空間。res/ 資源資源(Resource)目錄目錄在這個(gè)目錄中我們可以存放應(yīng)用使用到的各種資源,如xml界面文件,圖片或數(shù)據(jù)。具體請(qǐng)看ppt下方備注欄。AndroidManifest.xml 功能清單文件功能清單文件 這個(gè)文件列出了應(yīng)用程序所提供的功能,在這個(gè)文件中,你可以指定應(yīng)用程序使用到的服務(wù)(如電話服務(wù)、互聯(lián)網(wǎng)服務(wù)、短信服務(wù)、GPS服務(wù)等等)。另外當(dāng)你新添加一個(gè)Activity的時(shí)候,也需要在這個(gè)文件中進(jìn)行相應(yīng)配置,只有配置好后,才能調(diào)用此Aperties
7、 項(xiàng)目環(huán)境信息項(xiàng)目環(huán)境信息,一般是不需要修改此文件Android應(yīng)用程序的構(gòu)成用Java開發(fā)Android應(yīng)用Android應(yīng)用程序構(gòu)成ActivityServiceBroadcast ReceiverContent ProviderIntent用Java開發(fā)Android應(yīng)用ActivitynA visual user interfacen通過view管理UIn每一個(gè)有用戶界面的應(yīng)用至少包含一個(gè)activityn一個(gè)應(yīng)用可以有多個(gè)activity,其中一個(gè)作為main activity用于啟動(dòng)顯示nActivity通過startActivity或startActivityForResult啟
8、動(dòng)另外的activity用Java開發(fā)Android應(yīng)用Activity生命周期nActivity通過onCreate被創(chuàng)建n當(dāng)一個(gè)activity失去焦點(diǎn),該activity將進(jìn)入pause狀態(tài),系統(tǒng)在內(nèi)存不足時(shí)會(huì)將其終止n當(dāng)一個(gè)activity被另一個(gè)activity覆蓋,該activity將進(jìn)入stop狀態(tài),系統(tǒng)在需要內(nèi)存的時(shí)候會(huì)將其終止用Java開發(fā)Android應(yīng)用Intentn類似于消息、事件通知nIntent構(gòu)成:action、category、datanActivity、Service、broadcast receiver之間的橋梁IntentactivityserviceBr
9、oadcast receiver用Java開發(fā)Android應(yīng)用Intentn兩類intent:n顯式:指定具體的目標(biāo)組件處理nstartActivity(new Intent(ActivityLifecycle.this, AnotherActivity.class);n隱式:由系統(tǒng)接受并決定如何處理nstartActivity(new Intent(Intent.ACTION_DIAL); n在AndroidManifest.xml中定義activity、service、broadcast receiver接受的intent用Java開發(fā)Android應(yīng)用IntentnIntent fil
10、ter: action、category、dataframeworkComponent nameActionDataCategoryintentcomponentactivityserviceBroadcast receiver用Java開發(fā)Android應(yīng)用實(shí)例action - DIALdata - tel:01038639592action - VIEWdata - http:/用Java開發(fā)Android應(yīng)用Servicen沒有UI,啟動(dòng)之后一直運(yùn)行于后臺(tái)n例子:音樂播放器n與應(yīng)用程序的其他模塊(例如activity)一同運(yùn)行于主線程中n通過startService或bindServic
11、e創(chuàng)建Servicen通過stopService或stopSelf終止Servicen一般的,在activity中啟動(dòng)和終止service用Java開發(fā)Android應(yīng)用Service生命周期Context.stopService()Serivce.stopSelf()Context.startService()Context.bindService()用Java開發(fā)Android應(yīng)用服務(wù)服務(wù)-Service-ServiceAndroid中的服務(wù)和windows中的服務(wù)是類似的東西,服務(wù)一般沒有用戶操作界面,它運(yùn)行于系統(tǒng)中不容易被用戶發(fā)覺,可以使用它開發(fā)如監(jiān)控之類的程序。服務(wù)的開發(fā)比較簡(jiǎn)單,如
12、下:第一步:繼承Service類public class SMSService extends Service 用Java開發(fā)Android應(yīng)用服務(wù)服務(wù)-Service-Service第二步:在AndroidManifest.xml文件中的節(jié)點(diǎn)里對(duì)服務(wù)進(jìn)行配置:服務(wù)不能自己運(yùn)行,需要通過調(diào)用Context.startService()或Context.bindService()方法啟動(dòng)服務(wù)。這兩個(gè)方法都可以啟動(dòng)Service,但是它們的使用場(chǎng)合有所不同。使用startService()方法啟用服務(wù),調(diào)用者與服務(wù)之間沒有關(guān)連,即使調(diào)用者退出了,服務(wù)仍然運(yùn)行。使用bindService()方法啟用
13、服務(wù),調(diào)用者與服務(wù)綁定在了一起,調(diào)用者一旦退出,服務(wù)也就終止。如果打算采用Context.startService()Context.startService()方法啟動(dòng)服務(wù)方法啟動(dòng)服務(wù),在服務(wù)未被創(chuàng)建時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的onCreate()方法,接著調(diào)用onStart()方法。如果調(diào)用startService()方法前服務(wù)已經(jīng)被創(chuàng)建,多次調(diào)用startService()方法并不會(huì)導(dǎo)致多次創(chuàng)建服務(wù),。采用startService()方法啟動(dòng)的服務(wù),只能調(diào)用Context.stopService()方法結(jié)束服務(wù),服務(wù)結(jié)束時(shí)會(huì)調(diào)用onDestroy()方法。用Java開發(fā)Android應(yīng)用服務(wù)服
14、務(wù)-Service-Service如果打算采用Context.bindService()Context.bindService()方法啟動(dòng)服務(wù)方法啟動(dòng)服務(wù),在服務(wù)未被創(chuàng)建時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的onCreate()方法,接著調(diào)用onBind()方法。這個(gè)時(shí)候調(diào)用者和服務(wù)綁定在一起,調(diào)用者退出了,系統(tǒng)就會(huì)先調(diào)用服務(wù)的onUnbind()方法,接著調(diào)用onDestroy()方法。如果調(diào)用bindService()方法前服務(wù)已經(jīng)被綁定,多次調(diào)用bindService()方法并不會(huì)導(dǎo)致多次創(chuàng)建服務(wù)及綁定(也就是說onCreate()和onBind()方法并不會(huì)被多次調(diào)用)。如果調(diào)用者希望與正在綁定的服務(wù)
15、解除綁定,可以調(diào)用unbindService()方法,調(diào)用該方法也會(huì)導(dǎo)致系統(tǒng)調(diào)用服務(wù)的onUnbind()-onDestroy()方法。用Java開發(fā)Android應(yīng)用服務(wù)服務(wù)-Service-Service服務(wù)常用生命周期回調(diào)方法如下:onCreate() 該方法在服務(wù)被創(chuàng)建時(shí)調(diào)用,該方法只會(huì)被調(diào)用一次,無論調(diào)用多少次startService()或bindService()方法,服務(wù)也只被創(chuàng)建一次。onDestroy()該方法在服務(wù)被終止時(shí)調(diào)用。l 與采用Context.startService()方法啟動(dòng)服務(wù)有關(guān)的生命周期方法onStart() 只有采用Context.startServi
16、ce()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在服務(wù)開始運(yùn)行時(shí)被調(diào)用。多次調(diào)用startService()方法盡管不會(huì)多次創(chuàng)建服務(wù),但onStart() 方法會(huì)被多次調(diào)用。l 與采用Context.bindService()方法啟動(dòng)服務(wù)有關(guān)的生命周期方法onBind()只有采用Context.bindService()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在調(diào)用者與服務(wù)綁定時(shí)被調(diào)用,當(dāng)調(diào)用者與服務(wù)已經(jīng)綁定,多次調(diào)用Context.bindService()方法并不會(huì)導(dǎo)致該方法被多次調(diào)用。onUnbind()只有采用Context.bindService()方法啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該方法。該方法在調(diào)用
17、者與服務(wù)解除綁定時(shí)被調(diào)用。用Java開發(fā)Android應(yīng)用采用采用startService()startService()啟動(dòng)服務(wù)啟動(dòng)服務(wù)采用Context.startService()方法啟動(dòng)服務(wù)的代碼如下:public class HelloActivity extends Activity Override public void onCreate(Bundle savedInstanceState) . Button button =(Button) this.findViewById(R.id.button); button.setOnClickListener(new View.O
18、nClickListener()public void onClick(View v) Intent intent = new Intent(HelloActivity.this, SMSService.class);startService(intent);); 用Java開發(fā)Android應(yīng)用采用采用bindService()()啟動(dòng)服務(wù)啟動(dòng)服務(wù)采用Context.startService()方法啟動(dòng)服務(wù)的代碼如下:public class HelloActivity extends Activity ServiceConnection conn = new ServiceConnecti
19、on() public void onServiceConnected(ComponentName name, IBinder service) public void onServiceDisconnected(ComponentName name) ; Override public void onCreate(Bundle savedInstanceState) Button button =(Button) this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener()public
20、 void onClick(View v) Intent intent = new Intent(HelloActivity.this, SMSService.class);bindService(intent, conn, Context.BIND_AUTO_CREATE);/unbindService(conn);/解除綁定); 用Java開發(fā)Android應(yīng)用何為Content providern什么是Content provider?nContent Provider 是Android應(yīng)用程序的四大組成部分之一n是android中的跨應(yīng)用訪問數(shù)據(jù)機(jī)制n為何需要content provi
21、der?nAndroid中每一個(gè)app的資源是私有的napp通過content provider和其他app共享私有數(shù)據(jù)用Java開發(fā)Android應(yīng)用如何使用content providern通過content resolver訪問Context.getContentResolver()appContentResolverContentProvider AContentProvider BContentResolverContentResolverappapp用Java開發(fā)Android應(yīng)用如何使用content providernURI定位資源ncontent:/contacts/peop
22、lencontent:/call_logn類似關(guān)系數(shù)據(jù)庫(kù)的訪問方式n以二維數(shù)據(jù)表的格式暴露數(shù)據(jù),缺省都包含_id字段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 sele
23、ctionArgs)用Java開發(fā)Android應(yīng)用定義自己的content provider用Java開發(fā)Android應(yīng)用Android的存儲(chǔ)n一般的,應(yīng)用程序的數(shù)據(jù)(包括文件)都是私有的n四種持久存儲(chǔ)方式nPreferences類似properties,xml文件nFilesnDatabaseSQLitenNetwork用Java開發(fā)Android應(yīng)用Broadcast receivern接收和處理android的廣播消息nAndroid的廣播機(jī)制n系統(tǒng)事件例如變換時(shí)區(qū)、電量低等n應(yīng)用程序發(fā)出廣播消息:sendBroadCastn廣播消息:intentandroidappBroadcas
24、t receiverSend Send broadcastbroadcast用Java開發(fā)Android應(yīng)用創(chuàng)建Broadcast Receivern實(shí)現(xiàn)一個(gè)BroadcastReceivernpublic class MyAndroidReceiver extends BroadcastReceivernoverride onReceive(Context context, Intents Intents) n注冊(cè)BroadcastReceivern在AndroidManifest.xml文件當(dāng)中進(jìn)行注冊(cè)n在代碼當(dāng)中直接進(jìn)行注冊(cè) IntentsFilter filter = new IntentsFilter(NEW_BROADCAST );MyAndroidReceiver MyAndroidRecei
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- XX公司保溫工程合同履約承諾書2025
- 商場(chǎng)店面租賃合同范本
- 圍網(wǎng)銷售合同范本
- 環(huán)保產(chǎn)業(yè)協(xié)同發(fā)展:綠色能源項(xiàng)目合作合同
- 跨區(qū)域電子商務(wù)平臺(tái)合作合同
- 2025年酒類供貨合同5篇
- 國(guó)內(nèi)獨(dú)家合同范本
- 工程消防安全管理合同協(xié)議
- 標(biāo)準(zhǔn)版租賃合同樣本-辦公用房
- 城市土地流轉(zhuǎn)合同范本
- 裝配式建筑裝配率計(jì)算評(píng)分表
- 1.1北京市基本概況與主要文旅資源《地方導(dǎo)游基礎(chǔ)知識(shí)》(第四版)PPT
- 畢業(yè)論文-基于MATLAB的扇形束投影CT重建
- 綜述的寫作方法與技巧課件
- 零售藥店實(shí)施GSP情況的內(nèi)審報(bào)告
- 機(jī)械設(shè)計(jì)基礎(chǔ)網(wǎng)考題庫(kù)答案 吉林大學(xué)
- 新蘇教版科學(xué)六年級(jí)下冊(cè)全冊(cè)教案(含反思)
- 觸電事故應(yīng)急處置卡
- 國(guó)際貿(mào)易運(yùn)輸方式課件
- 南陽(yáng)理工學(xué)院畢業(yè)論文格式規(guī)范
- SolidWorks入門教程(很全面)PPT課件
評(píng)論
0/150
提交評(píng)論