《Android項目開發實戰》課件匯 任務5-1Activity應用 -任務7-4綜合項目實戰之新建日程_第1頁
《Android項目開發實戰》課件匯 任務5-1Activity應用 -任務7-4綜合項目實戰之新建日程_第2頁
《Android項目開發實戰》課件匯 任務5-1Activity應用 -任務7-4綜合項目實戰之新建日程_第3頁
《Android項目開發實戰》課件匯 任務5-1Activity應用 -任務7-4綜合項目實戰之新建日程_第4頁
《Android項目開發實戰》課件匯 任務5-1Activity應用 -任務7-4綜合項目實戰之新建日程_第5頁
已閱讀5頁,還剩294頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Android項目開發任務5-1:Activity應用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,還需掌握其常用組件的應用,本次任務應用Activity完成不同界面及其Activity類的切換。導入任務【任務目標】應用Activity組件,實現不同的Activity類及其界面間的跳轉。導入任務【任務描述】Activity是Android的四大組件之一,它是一種可以包含用戶界面的組件,主要用于和用戶進行交互,比如打電話、照相、發送郵件、或者顯示地圖。由于Activity用于顯示用戶界面,因此用戶可以通過Activity交互完成相關操作。在Android系統中,一個App允許有多個Activity。這就會涉及不同Activity之間的跳轉問題了。本次任務將介紹應用Activity組件編程實現不同Activity類及其界面間的跳轉。導入任務【任務分析】本次任務中,我們將創建2個Activity,分別為MainActivity和NextActivity。其中:MainActivity的界面設計包含一個TextView和一個Button。

TextView用于顯示歡迎文字,

Button用于跳轉。NextActivity的界面設計包含一個ImageView和一個TextView。

ImageView用于展示一幅圖片,

TextView用于標記NextActivity。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計MainActivity界面。創建一個【AndroidApplicationProject】,將該項目命名為“activitydemo”。在項目“activitydemo”中雙擊打開界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成MainActivity界面代碼的編寫。任務實施操作2:設計NextActivity界面。在項目“activitydemo”中創建一個新的AndroidActivity類,命名為“NextActivity”,并將對應的界面文件命名為“activity_next.xml”。效果如下:任務實施操作3:雙擊打開界面程序“activity_next.xml”,在代碼編輯窗口輸入對應程序代碼,完成NextActivity界面代碼的編寫。任務實施操作3:編寫跳轉的功能代碼。雙擊打開“MainActivity.java”,在代碼編輯窗口輸入對應程序代碼,完成跳轉的功能代碼編寫。相關知識認識ActivityActivity生命周期技術知識知識點1:認識Activity在Android開發中,Activity是一個應用程序組件,提供一個界面,用戶可以用來交互為了完成某項任務,例如撥號、拍照、發送email、看地圖。每一個Activity被給予一個窗口,在上面可以繪制用戶接口。窗口通常充滿屏幕,但也可以小于屏幕而浮于其它窗口之上。一般來說,一個Android應用程序通常由一個或多個Activity組成,它們通常是松耦合關系。其中一個Activity被指定為MainActivity,即當第一次啟動應用程序時用戶看到界面的那個Activity。在Activity中可以啟動另一個Activity以便完成不同的動作。每一次一個Activity啟動,前一個Activity就停止了,但是會被Android系統保留在一個棧中。當一個新Activity啟動,它被推送到棧頂,取得用戶焦點。棧采用“后進先出”原則,所以,當用戶完成當前Activity然后點擊返回按鈕,之前的Activity將獲得恢復。技術知識知識點2:Activity生命周期Activity生命周期如右圖,包含以下幾個過程:(1)啟動Activity:系統會先調用onCreate方法,然后調用onStart方法,最后調用onResume,Activity進入運行狀態。(2)當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。(3)當前Activity由被覆蓋狀態回到前臺或解鎖屏:系統會調用onResume方法,再次進入運行狀態。(4)當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居后臺:系統會先調用onPause方法,然后調用onStop方法,進入停滯狀態。(5)用戶后退回到此Activity:系統會先調用onRestart方法,然后調用onStart方法,最后調用onResume方法,再次進入運行狀態。(6)當前Activity處于被覆蓋狀態或者后臺不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而后用戶退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。(7)用戶退出當前Activity:系統先調用onPause方法,然后調用onStop方法,最后調用onDestory方法,結束當前Activity。拓展訓練應用Activity組件編程實現一個登錄界面的跳轉。拓展訓練【實戰訓練】創建一個Android應用程序項目,在項目中使用2個Activity類編程實現以下登錄界面的跳轉。劉國3c365@Android項目開發任務5-2:Intent應用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,還需掌握其常用組件的應用,本次任務應用Intent完成不同Activity界面間的跳轉和數據傳遞。導入任務【任務目標】通過Intent應用,設計一個程序實現軟件界面間的跳轉和數據傳遞。導入任務【任務描述】Intent組件雖然不是Android系統中的四大組件,但卻是連接四大組件的橋梁。Android中提供了Intent機制來協助應用間的交互與通訊。它能在程序運行的過程中連接兩個不同的組件。通過Intent,應用程序可以向Android系統表達某種請求或者意愿,Android會根據意愿的內容選擇適當的組件來響應。activity、service、broadcastreceiver等組件之間是通過Intent進行通信的。本次任務由2個界面組成。當點擊第一個界面中的按鈕時,通過Intent組件將圖片和文字數據傳遞到第二個界面顯示出來。導入任務【任務分析】本次任務用2個Activity類(MainActivity和SecActivity)分別完成2個界面的設計與制作。其中在MainActivity界面設置一個按鈕Button控件,通過按鈕點擊事件,使用Intent組件將圖片(圣誕老人)和文字(“歡迎光臨”)傳遞到SecActivity。然后在SecActivity類中將圖片和文字顯示出來。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:創建MainActivity界面。創建一個【AndroidApplicationProject】,將該項目命名為“intentdemo”。在項目“intentdemo”中雙擊打開界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成MainActivity界面代碼的編寫。任務實施操作2:創建SecActivity界面。在項目“intentdemo”中創建一個新的AndroidActivity類,命名為“SecActivity”,并將對應的界面文件命名為“activity_sec.xml”。雙擊打開界面程序“activity_sec.xml”,在代碼編輯窗口輸入對應程序代碼,完成SecActivity界面代碼的編寫。任務實施操作3:編寫MainActivity功能代碼。雙擊打開“MainActivity.java”,在代碼編輯窗口輸入對應程序代碼,使用Intent完成跳轉和數據傳遞的功能代碼編寫。任務實施操作3:編寫SecActivity功能代碼。雙擊打開“SecActivity.java”,在代碼編輯窗口輸入對應程序代碼,完成數據接收和顯示的功能代碼編寫。相關知識認識IntentIntent包含的六大信息技術知識知識點1:認識IntentIntent是不同組件之間相互通訊的紐帶,封裝了不同組件之間通訊的條件。Intent本身是定義為一個類(Class),一個Intent對象表達一個目的(Goal)或期望(Expectation),敘述其所期望的服務或動作、與動作有關的數據等。Android則根據此Intent對象之敘述,負責配對,找出相配的組件,然后將Intent對象傳遞給所找到的組件。Intent是一個保存著消息內容的Intent對象。對于activity和服務來說,它指明了請求的操作名稱以及作為操作對象的數據的URI和其它一些信息。比如說,它可以承載對一個Activity的請求,讓它為用戶顯示一張圖片,或者讓用戶編輯一些文本。而對于廣播接收器而言,Intent對象指明了聲明的行為。比如,它可以對所有感興趣的對象聲明照相按鈕被按下。技術知識知識點2:Intent包含的六大信息(1)Componentname(組件名稱),指定Intent的目標組件的類名稱。定義要啟動哪一個組件,啟動的組件不一定是Activity。(2)Action(動作),指定新啟動組建的動作。指定Intent的執行動作,比如調用撥打電話組件。(3)Data(數據),向另外一個Activity里面傳送的數據。(4)Category(類別),向另外一個Activity傳送的多個鍵值對,被執行動作的附加信息。例如應用的啟動Activity在intent-filter中設置category。(5)Extras(附加信息),為處理Intent組件提供附加的信息。可通過putXX()和getXX()方法存取信息;也可以通過創建Bundle對象,再通過putExtras()和getExtras()方法來存取。(6)Flags(標記),指示Android如何啟動目標Activity,設置方法為調用Intent的setFlags方法。拓展訓練使用Intent編程實現一個登錄界面的數據傳遞。拓展訓練【實戰訓練】創建一個Android應用程序項目,在項目中使用2個Activity類編程實現以下登錄界面的跳轉和數據傳遞。劉國3c365@Android項目開發任務5-3:Service應用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,還需掌握其常用組件的應用,本次任務應用Service完成一個音樂播放器的制作。導入任務【任務目標】應用Service組件設計并制作一個簡易的音樂播放器。導入任務【任務描述】Service組件在Android系統中被稱之為“后臺服務”組件。因為其本身的運行并不依賴于用戶可視的UI界面,因此從任務需求上來理解,Service組件非常適用于Android系統中的音樂播放(可以后臺運行,不影響前端界面操作)。本次任務將應用Service組件實現音樂播放器的音樂播放功能。導入任務【任務分析】Service組件的使用方式有2種:第一種是startService(),第二種是bindService()。本次任務分別采用startService和bindService兩種方式啟動和停止播放音樂服務本次任務界面設計使用線性布局,自上而下設計4個按鈕Button。其中2個Button用于startService啟動播放和停止音樂;另2個Button用于bindService啟動播放和停止音樂任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計播放器界面。創建一個【AndroidApplicationProject】,將該項目命名為“servicedemo”。在項目“servicedemo”中雙擊打開界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成MainActivity界面代碼的編寫。任務實施操作2:創建MusicService類。在項目“servicedemo”中創建一個Service類,命名為“MusicService”。雙擊打開程序“MusicService.java”,在代碼編輯窗口輸入對應程序代碼。任務實施操作3:編寫按鈕程序。雙擊打開程序“MainActivity.java”,在代碼編輯窗口輸入對應程序代碼。任務實施操作4:注冊Service類。在項目“servicedemo”中雙擊打開程序“AndroidManifest.xml”,在代碼編輯窗口添加MusicService類的注冊代碼。相關知識認識ServiceService使用方式技術知識知識點1:認識ServiceService服務是Android系統最常用的四大部件之一,Android支持Service服務的原因主要目的有兩個,一是簡化后臺任務的實現,二是實現在同一臺設備當中跨進程的遠程信息通信。Service服務主要分為LocalService本地服務與RemoteService遠程服務兩種,本地服務只支持同一進程內的應用程序進行訪問,遠程服務可通過AIDL(AndroidInterfaceDefinitionLanguage)技術支持跨進程訪問。Service服務可以通過Context.startService()和Context.bindService()進行啟動,一般LocalService本地服務可使用其中一種方法啟動,但RemoteService遠程服務只能使用Context.bindService()啟動,而兩種調用方式在使用場景與活動流程中都存在差異。技術知識知識點2:Service使用方式第一類是直接通過Context.startService()啟動,通過Context.stopService()結束Service,其特點在于調用簡單,方便控制。缺點在于一旦啟動了Service服務,除了再次調用或結束服務外就再無法對服務內部狀態進行操控,缺乏靈活性。第二類是通過Context.bindService()啟動,通過Context.unbindService()結束,相對其特點在運用靈活,可以通過IBinder接口中獲取Service的句柄,對Service狀態進行檢測。從Android系統設計的架構上看,startService()是用于啟動本地服務,bindService()更多是用于對遠程服務進行綁定。當然,也可以結合兩者進行混合式應用,先通過startService()啟動服務,然后通過bindService()、unbindService()方法進行多次綁定,以獲取Service服務在不同狀態下的信息,最后通過stopService()方法結束Service運行。拓展訓練應用Service組件編程實現一個背景音樂控制界面的功能實現。拓展訓練【實戰訓練】創建一個Android應用程序項目,使用Service編程實現以下背景音樂控制的功能。劉國3c365@Android項目開發任務5-4:Broadcast應用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,還需掌握其常用組件的應用,本次任務應用Broadcast完成廣播消息的發送。導入任務【任務目標】使用Broadcast組件編程實現消息的廣播發送。導入任務【任務描述】在Android系統中,Broadcast用于發送與接收廣播信息,是Android的四大組件之一。Broadcast組件可以用于在不同應用之間傳遞和共享數據或者同一應用的不同組件之間數據的共享,比如音樂播放器的UI更新。本次任務應用Broadcast組件來實現對一條預先寫好的廣播信息的發送。導入任務【任務分析】本次任務界面設計簡單,使用線性布局,在界面上只設計一個按鈕Button。當點擊按鈕時,發送一條事先寫好的廣播消息。發送后的廣播信息以Toast方式進行顯示。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:創建程序界面。創建一個【AndroidApplicationProject】,將該項目命名為“broadcastdemo”。在項目“broadcastdemo”中雙擊打開界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成MainActivity界面代碼的編寫。任務實施操作2:創建BroadcastReceiver類。在項目“broadcastdemo”中創建一個BroadcastReceiver類,命名為“MsgReceiver”。雙擊打開程序“MsgReceiver.java”,在代碼編輯窗口輸入對應程序代碼。任務實施操作3:注冊廣播組件。在項目“servicedemo”中雙擊打開程序“AndroidManifest.xml”,在代碼編輯窗口添加MsgReceiver類的注冊代碼。任務實施操作4:編寫按鈕程序。雙擊打開程序“MainActivity.java”,在代碼編輯窗口輸入對應程序代碼。相關知識認識BroadcastBroadcast的兩種類型廣播接收器BroadcastReceiver創建BroadcastReceiver的方法技術知識知識點1:認識Broadcast在Android系統中,廣播(Broadcast)是在組件之間傳播數據的一種機制。這些Broadcast甚至是可以位于不同的進程中,這樣它就像Binder機制一樣,起到進程間通信的作用。在Android系統中,為什么需要廣播機制呢?廣播機制,本質上它就是一種組件間的通信方式,如果是兩個組件位于不同的進程當中,那么可以用Binder機制來實現,如果兩個組件是在同一個進程中,那么它們之間可以用來通信的方式就更多了。然而,廣播機制卻是不可替代的,它和Binder機制不一樣的地方在于,廣播的發送者和接收者事先是不需要知道對方的存在的,這樣帶來的好處便是,系統的各個組件可以松耦合地組織在一起,這樣系統就具有高度的可擴展性,容易與其它系統進行集成。技術知識知識點2:Broadcast的兩種類型Broadcast廣播可以分為無序廣播和有序廣播兩種類型。無序廣播:所有跟廣播的intent匹配的廣播接收者都可以收到該廣播,并且是沒有先后順序(同時收到)。有序廣播:所有跟廣播的intent匹配的廣播接收者都可以收到該廣播,但是會按照廣播接收者的優先級來決定接收的先后順序。技術知識知識點3:廣播接收器BroadcastReceiver廣播分為兩個角色:廣播發送器、廣播接收器。其中廣播接收器BroadcastReceiver是一個專注于接收廣播通知信息,并做出對應處理的組件。Android應用程序可以擁有任意數量的廣播接收器對所有它感興趣的通知信息予以響應,并且所有的接收器均繼承自BroadcastReceiver基類。BroadcastReceiver生命周期過程從對象調用它開始,到onReceiver方法執行完成之后結束。另外,每次廣播被接收后會重新創建BroadcastReceiver對象,并在onReceiver方法中執行完就銷毀。技術知識知識點4:創建BroadcastReceiver的方法第一步:創建BroadcastReceiver的子類:由于BroadcastReceiver本質上是一種監聽器,所以創建BroadcastReceiver的方法也非常簡單,只需要創建一個BroadcastReceiver的子類然后重寫onReceive(Contextcontext,Intentintent)方法即可。第二步:注冊BroadcastReceiver一旦實現了BroadcastReceiver,接下就應該指定該BroadcastReceiver能匹配的Intent即注冊BroadcastReceiver。在配置AndroidManifest.xml配置文件中注冊,通過這種方式注冊的廣播為常駐型廣播,也就是說如果應用程序關閉了,有相應事件觸發程序還是會被系統自動調用運行。例如:<!--在配置文件中注冊BroadcastReceiver能夠匹配的Intent--><receiverandroid:name="com.example.test.MyBroadcastReceiver"><intent-filter><actionandroid:name="ent.action.MyBroadcastReceiver"></action><categoryandroid:name="ent.category.DEFAULT"></category></intent-filter></receiver>拓展訓練應用Broadcast組件編程實現廣播的注冊、發送及注銷。拓展訓練【實戰訓練】創建一個Android應用程序項目,使用BroadcastReceiver編程實現以下功能。要求:①點擊【發送廣播】按鈕的時候,因為程序沒有注冊BraodcastReceiver,所以使用Toast輸出“沒有注冊BraodcastReceiver”的信息。②當先點擊【注冊廣播接收器】再點擊【發送廣播】按鈕的時候,這時程序會動態的注冊BraodcastReceiver,之后會調用onReceive()方法,通過Toast輸出“這是廣播測試”信息。③當點擊【注銷廣播接收器】按鈕的時候,這時程序會注銷BraodcastReceiver,再點擊【發送廣播】,使用Toast輸出“沒有注冊BraodcastReceiver”的信息。劉國3c365@Android項目開發任務5-5:音樂盒設計與實現導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,還需掌握其常用組件的應用,本次任務應用Activity、Service和Broadcast組件完成一個音樂盒的制作。導入任務【任務目標】應用Activity、Service、Broadcast組件設計并制作一個Android音樂盒軟件。導入任務【任務描述】本次任務,我們將使用前面學習過的Activity、Service、Broadcast等三大組件來中制作一個簡易的音樂盒(音樂播放器)。其中:Activity完成音樂盒界面的設計與制作;Service實現音樂的后臺播放功能;

Broadcast負責音樂控制的消息傳遞。導入任務【任務分析】音樂盒的界面設計采用水平線性布局設計,包括2個ImageButton和2個TextView。其中,第一個ImageButton用于實現音樂的播放和暫停功能。第二個ImageButton用于停止音樂的播放。任務實施創建程序界面編寫Activity程序編寫Service程序注冊Service任務實施操作1:創建程序界面。創建一個【AndroidApplicationProject】,將該項目命名為“musicboxdemo”。在項目“musicboxdemo”中雙擊打開界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成MainActivity界面代碼的編寫。任務實施操作2:編寫Activity程序。雙擊打開程序“MainActivity.java”,在代碼編輯窗口輸入對應程序。任務實施操作3:編寫Service程序。在項目“musicboxdemo”中創建一個Service類,命名為“MusicService”。雙擊打開程序“MusicService.java”,在代碼編輯窗口輸入對應程序代碼。任務實施操作4:注冊Service。在項目“servicedemo”中雙擊打開程序“AndroidManifest.xml”,在代碼編輯窗口添加Service類的注冊代碼。相關知識認識MediaPlayer如何獲得MediaPlayer實例如何設置要播放的文件對播放器的主要控制方法設置播放器的監聽器技術知識知識點1:認識MediaPlayerAndroid提供了常見的音頻、視頻的編碼和解碼機制。Android下對于音頻、視頻的支持均需要使用到MediaPlayer。MediaPlayer是一個主要用來控制Android下播放文件或流的類,它位于Android多媒體包下"android.media.MediaPlayer"。MediaPlayer支持的數據源包括本地文件、內部的Uri(內容提供者)、外部Uri。借助于多媒體類MediaPlayer的支持,開發人員可以很方便在在應用中播放音頻、視頻。技術知識知識點2:如何獲得MediaPlayer實例可以使用直接new的方式:MediaPlayermp=newMediaPlayer();也可以使用create的方式,如:MediaPlayermp=MediaPlayer.create(this,R.raw.test);技術知識知識點3:如何設置要播放的文件MediaPlayer要播放的文件主要包括3個來源:(1)用戶在應用中事先自帶的resource資源.

例如:MediaPlayer.create(this,R.raw.test);(2)存儲在SD卡或其他文件路徑下的媒體文件

例如:mp.setDataSource("/sdcard/test.mp3");(3)網絡上的媒體文件

例如:mp.setDataSource("/music/confucius.mp3");技術知識知識點4:對播放器的主要控制方法Android通過控制播放器的狀態的方式來控制媒體文件的播放,其中:prepare()和prepareAsync():提供了同步和異步兩種方式設置播放器進入prepare狀態,需要注意的是,如果MediaPlayer實例是由create方法創建的,那么第一次啟動播放前不需要再調用prepare()了,因為create方法里已經調用過了。start():是真正啟動文件播放的方法,pause()和stop():比較簡單,起到暫停和停止播放的作用,seekTo():是定位方法,可以讓播放器從指定的位置開始播放,需要注意的是該方法是個異步方法,也就是說該方法返回時并不意味著定位完成,尤其是播放的網絡文件,真正定位完成時會觸發OnSeekComplete.onSeekComplete(),如果需要是可以調用setOnSeekCompleteListener(OnSeekCompleteListener)設置監聽器來處理的。release():可以釋放播放器占用的資源,一旦確定不再使用播放器時應當盡早調用它釋放資源。reset():可以使播放器從Error狀態中恢復過來,重新會到Idle狀態。技術知識知識點5:設置播放器的監聽器MediaPlayer提供了一些設置不同監聽器的方法來更好地對播放器的工作狀態進行監聽,以期及時處理各種情況。如:setOnCompletionListener(MediaPlayer.OnCompletionListenerlistener)、setOnErrorListener(MediaPlayer.OnErrorListenerlistener)等,設置播放器時需要考慮到播放器可能出現的情況設置好監聽和處理邏輯,以保持播放器的健壯性。拓展訓練應用Activity+Service+Broadcast組件編程實現一個音樂播放器的設計與制作。拓展訓練【實戰訓練】編程實現以下Android音樂播放器的設計與實現。編程實現以下Android音樂播放器的設計與實現。劉國3c365@Android項目開發任務6-1:文件存儲操作導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將完成一個Android文件讀寫程序。導入任務【任務目標】設計與制作一個Android文件讀寫軟件。導入任務【任務描述】Android系統文件的操作和Java在PC環境下的操作類似,不同的是,Android系統提供了不同于PC的訪問文件系統的根路徑,并對應用軟件的私有文件做了統一的管理。本次任務將制作一個Android文件讀寫軟件,以此介紹Android讀寫文件編程的基本操作。導入任務【任務分析】本次任務程序界面采用線性布局,界面設計包含1個EditText、2個TextView、3個Button。其中EditText用于輸入需要寫入文件的內容;2個TextView分別用于顯示讀取文件的內容和顯示文件的路徑;3個Button分別完成寫入文件、讀取文件、獲取文件路徑的操作。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“filedemo”。編寫主界面xml代碼,在項目“filedemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。任務實施操作3:保存文件,運行項目程序,查看運行結果。運行效果如下:相關知識認識Android中的文件存儲Android的內部存儲路徑獲取Android文件路徑技術知識知識點1:認識Android中的文件存儲在Android系統中,文件操作仍然沿用Java的文件操作,不同的是Android文件操作分內部存儲和外部存儲。Android系統提供了一個openFileOutput()方法來讀寫應用在內部存儲空間上的文件,下面是一個向文件中寫入文本的示例代碼:Stringfilename="myfile";Stringstring="Helloworld!";FileOutputStreamoutputStream;try{outputStream=openFileOutput(filename,Context.MODE_PRIVATE);outputStream.write(string.getBytes());outputStream.close();}catch(Exceptione){e.printStackTrace();}技術知識知識點2:Android的內部存儲路徑在Android系統中,有個data文件夾存放著重要的內部存儲數據,當打開data文件夾之后,里邊有兩個文件夾值得關注。一個文件夾是app文件夾,還有一個文件夾就是data文件夾。app文件夾里存放著所有安裝的apk文件。另一個重要的文件夾就是data文件夾了,這個文件夾里邊都是一些包名,打開這些包名之后我們會看到這樣的一些文件:1.data/data/包名/shared_prefs()2.data/data/包名/databases(數據庫文件就存儲)3.data/data/包名/files(文件數據存儲)4.data/data/包名/cache(緩存文件存儲)一般而言,存儲在這里的文件都稱之為內部存儲。技術知識知識點3:獲取Android文件路徑//獲取當前程序路徑應用在內存上的目錄:/data/data/com.mufeng.toolproject/filesStringfilesDir=context.getFilesDir().toString();System.out.println("context.getFilesDir()=:"+filesDir);//應用的在內存上的緩存目錄:/data/data/com.mufeng.toolproject/cacheStringcacheDir=context.getCacheDir().toString();System.out.println("context.getCacheDir()=:"+cacheDir);//獲取該程序的安裝包路徑:/data/app/com.mufeng.toolproject-3.apkStringpackageResourcePath=context.getPackageResourcePath();System.out.println("context.getPackageResourcePath()=:"+packageResourcePath);

//獲取程序默認數據庫路徑:/data/data/com.mufeng.toolproject/databases/mufengStringdatabasePat=context.getDatabasePath("mufeng").toString();System.out.println("context.getDatabasePath(\"mufeng\")=:"+databasePat);拓展訓練編程實現對Android系統中文件的讀寫操作。拓展訓練【實戰訓練】創建一個Android應用程序項目,完成以下文件讀寫器軟件的設計,編程實現其文件讀寫操作。劉國3c365@Android項目開發任務6-2:SD卡文件讀寫導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將完成一個AndroidSD卡文件讀寫器設計與制作。導入任務【任務目標】設計并制作一個AndroidSD卡文件讀寫器。導入任務【任務描述】由于手機本身的存儲空間有限,因此需要把一些大容量文件如視頻、音頻等存儲到SD卡中。因此在Android開發中掌握SD卡的文件讀寫操作是十分必要的。本次任務將介紹一個簡易AndroidSD卡文件讀寫器的設計與制作。導入任務【任務分析】SD卡文件讀寫器界面設計包括2個Button和2個EditText。功能設計:界面上方的EditText用于輸入需要文字內容,界面下方的EditText用于輸出SD卡文件的內容。2個Button分別用于實現SD卡文件寫入和SD卡文件讀取功能。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“sddemo”。編寫主界面xml代碼,在項目“sddemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。1/3任務實施程序接上。2/3任務實施程序接上。3/3任務實施操作3:注冊SD操作權限。雙擊打開項目“sddemo”中的“AndroidManifest.xml”文件,在代碼編輯窗口輸入對應程序代碼,完成SD讀寫權限的注冊。任務實施操作3:保存文件,運行項目程序,查看運行結果。運行效果如下:相關知識認識Android中SD卡的文件讀寫SD卡文件讀寫的常用操作技術知識知識點1:認識Android中SD卡的文件讀寫在Android系統中對SD卡進行文件操作,可以遵循以下一些方法。首先如果要在程序中使用sdcard進行存儲,我們必須要在AndroidManifset.xml文件進行下面的權限設置。

<!--SDCard中創建與刪除文件權限--><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!--向SDCard寫入數據權限--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>接著在使用SDcard進行讀寫的時候,需要知道Environment類下面的幾個靜態方法:(1)getDataDirectory():獲取到Android中的data數據目錄。(2)getDownloadCacheDirectory():獲取到下載的緩存目錄。(3)getExternalStorageDirectory():獲取到外部存儲的目錄(“/storage/sdcard0”)。(4)getExternalStorageState():獲取外部設置的當前狀態。較常用的狀態是MEDIA_MOUNTED。(5)getRootDirectory():獲取到AndroidRoot路徑。技術知識知識點2:SD卡文件讀寫的常用操作(1)判斷SD卡是否存在publicstaticbooleanisSdCardExist(){returnEnvironment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);}(2)獲取SD卡根目錄publicstaticStringgetSdCardPath(){booleanexist=isSdCardExist();Stringsdpath="";if(exist){sdpath=Environment.getExternalStorageDirectory().getAbsolutePath();

}else{sdpath="不適用";}returnsdpath;}(3)獲取默認的文件存放路徑publicstaticStringgetDefaultFilePath(){Stringfilepath="";Filefile=newFile(Environment.getExternalStorageDirectory(),"abc.txt");if(file.exists()){filepath=file.getAbsolutePath();}else{filepath="不適用";

}returnfilepath;}拓展訓練編程實現AndroidSD卡文件讀寫功能。拓展訓練【實戰訓練】編程實現以下Android應用軟件的SD卡文件讀寫功能。劉國3c365@Android項目開發任務6-3:SD卡文件瀏覽器導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將完成一個AndroidSD卡文件瀏覽器。導入任務【任務目標】設計并制作一個AndroidSD卡文件瀏覽器。導入任務【任務描述】在Android中,除了學會對SD卡進行文件讀寫的操作,還需要掌握對SD卡中的文件瀏覽操作,以便于查找和編輯所需操作的文件。本次任務將設計與制作一個簡單的SD卡文件瀏覽器,并以此介紹對SD卡中的文件瀏覽操作。導入任務【任務分析】SD卡文件瀏覽器的主界面設計采用線性布局設計,包括1個TextView、1個ListView和1個Button。其中TextView用于顯示當前的目錄,ListView用于顯示當前目錄下的文件和文件夾,Button用于實現返回上一級目錄的功能。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“sdfiledemo”。編寫主界面xml代碼,在項目“sdfiledemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:設計列表界面。由于軟件界面上設置了ListView界面,因此需要設計一個ListView界面。在項目“sdfiledemo”中“layout”文件夾里創建一個layout界面文件,命名為“listview_file.xml”。效果如下:任務實施操作3:編寫列表界面代碼。雙擊打開文件“listview_file.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作4:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。1/2任務實施程序接上。2/2相關知識調用系統自帶的文件瀏覽器返回的文件數據處理技術知識知識點1:調用系統自帶的文件瀏覽器在Android開發中,制作文件瀏覽器還可以調用系統自帶的文件瀏覽器中的功能。下面程序代碼調用了系統自帶的文件瀏覽器中的文件選擇功能。代碼示例如下:privatevoidshowFileChooser(){intent=newIntent(Intent.ACTION_GET_CONTENT);intent.setType("*/*");intent.addCategory(Intent.CATEGORY_OPENABLE);try{ startActivityForResult(Intent.createChooser(intent,"請選擇一個文件"),FILE_SELECT_CODE);}catch(android.content.ActivityNotFoundExceptionex){Toast.makeText(getActivity(),"請安裝文件管理器",Toast.LENGTH_SHORT).show();}}技術知識知識點2:返回的文件數據處理對上面選擇的文件數據,可以使用以下程序對返回的文件數據進行處理。

@OverridepublicvoidonActivityResult(intrequestCode,intresultCode,Intentdata){if(resultCode==Activity.RESULT_OK){Uriuri=data.getData();

Stringurl;try{url=FFileUtils.getPath(getActivity(),uri);Log.i("ht","url"+url);StringfileName=url.substring(url.lastIndexOf("/")+1);intent=newIntent(getActivity(),UploadServices.class);intent.putExtra("fileName",fileName);intent.putExtra("url",url);intent.putExtra("type","");intent.putExtra("fuid","");intent.putExtra("type","");getActivity().startService(intent);}catch(URISyntaxExceptione){e.printStackTrace();}}super.onActivityResult(requestCode,resultCode,data);

}拓展訓練編程實現一個AndroidSD文件瀏覽器的文件目錄瀏覽功能。拓展訓練【實戰訓練】編程實現以下Android應用軟件的功能。劉國3c365@Android項目開發任務6-4:SQLite數據庫操作導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將完成一個Android

SQLite數據庫操作演示軟件的設計與制作。導入任務【任務目標】設計并實現一個SQLite數據庫操作演示軟件。導入任務【任務描述】SQLite是一款輕型的數據庫。它的設計目標是嵌入式的,目前已經有很多嵌入式產品使用了它。它占用資源非常的低,在嵌入式設備中,只需要幾百K的內存就夠了。Android提供了創建和是用SQLite數據庫的API。SQLiteDatabase代表一個數據庫對象,提供了操作數據庫的一些方法。在Android的SDK下有sqlite3工具,可以利用它創建數據庫、創建表和執行一些SQL語句。本次任務通過一個SQLite數據庫操作演示軟件的制作來介紹SQLite的使用。導入任務【任務分析】本次任務演示了對SQLite數據庫的整個基本操作流程。程序界面由8個Button、2個EditText、2個TextView構成,采用線性布局設計。其中8個Button分別實現了創建數據庫、創建數據表、添加數據、查詢數據、修改數據、刪除數據、刪除數據表、關閉數據庫等數據庫的基本操作功能。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“sqlitedemo”。編寫主界面xml代碼,在項目“sqlitedemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。1/2任務實施接上程序。2/2任務實施操作3:運行程序,測試效果。運行結果如下:相關知識認識SQLiteSQLite數據類型SQLiteDatabase介紹技術知識知識點1:認識SQLiteSQLite是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等主流的操作系統,同時能夠跟很多主流程序語言相結合,比如Java、C++、C#等。并且數據處理速度比較快。技術知識知識點2:SQLite數據類型SQLite具有以下五種常用的數據類型:(1)NULL:這個值為空值。(2)VARCHAR(n):長度不固定且其最大長度為n的字串,n不能超過4000。(3)CHAR(n):長度固定為n的字串,n不能超過254。(4)INTEGER:值被標識為整數,依據值的大小可以依次被存儲為1,2,3,4,5,6,7,8。(5)REAL:所有值都是浮動的數值,被存儲為8字節的IEEE浮動標記序號。(6)TEXT:值為文本字符串,使用數據庫編碼存儲。(7)BLOB:值是BLOB數據塊,以輸入的數據格式進行存儲。即如何輸入就如何存儲,不改變格式。(8)DATA:包含了年份、月份、日期。(9)TIME:包含了小時、分鐘、秒。技術知識知識點3:SQLiteDatabase介紹SQLiteDatabase代表一個數據庫對象,提供了操作數據庫的一些方法。下面是SQLiteDatabase的常用方法。方法名稱描述openOrCreateDatabase(Stringpath,SQLiteDatabase.CursorFactoryfactory)打開或創建數據庫insert(Stringtable,StringnullColumnHack,ContentValuesvalues)插入一條記錄delete(Stringtable,StringwhereClause,String[]whereArgs)刪除一條記錄query(Stringtable,String[]columns,Stringselection,String[]selectionArgs,

StringgroupBy,Stringhaving,StringorderBy)查詢一條記錄update(Stringtable,ContentValuesvalues,StringwhereClause,String[]whereArgs)修改記錄execSQL(Stringsql)執行一條SQL語句close()關閉數據庫拓展訓練編程實現一個查找用戶信息的界面及功能實現。拓展訓練【實戰訓練】編程實現以下Android應用軟件項目的功能。劉國3c365@Android項目開發任務6-5:SQLiteOpenHelper使用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將使用SQLiteOpenHelper實現對SQLite數據庫的操作。導入任務【任務目標】使用SQLiteOpenHelper實現對SQLite數據庫的操作。導入任務【任務描述】SQLiteOpenHelper是Android軟件開發中對數據庫操作的一個輔助類??梢杂盟鼇碓L問數據庫(包含創建、增、刪、改、查)和版本控制。其使用方式是通過創建子類繼承SQLiteOpenHelper類,使用它的一些方法來對數據庫進行操作。本次任務將介紹使用SQLiteOpenHelper對SQLite中的數據庫和數據表進行訪問和管理。導入任務【任務分析】本次任務的程序界面非常簡單,采用線性布局設計,只設置1個TextView。該TextView控件用于顯示對數據庫查詢結構數據的顯示。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“sqliteopenhelperdemo”。編寫主界面xml代碼,在項目“sqliteopenhelperdemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:編寫SQLiteOpenHelper輔助類。創建一個Java類,命名為“MySQLiteOpenHelper”,使該類繼承于SQLiteOpenHelper類。雙擊打開src目錄中新創建的“MySQLiteOpenHelper.java”程序,在代碼編輯窗口輸入對應程序代碼,完成MySQLiteOpenHelper類的編寫。任務實施操作3:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。相關知識認識SQLiteOpenHelper使用adb命令查看數據庫技術知識知識點1:認識SQLiteOpenHelperSQLiteOpenHelper類是SQLiteDatabase一個輔助類。這個類主要生成一個數據庫,并對數據庫的版本進行管理。當在程序當中調用這個類的方法getWritableDatabase()或者getReadableDatabase()方法的時候,如果當時沒有數據,那么Android系統就會自動生成一個數據庫。SQLiteOpenHelper是一個抽象類,通常需要創建一個類繼承它,并且實現里面的3個函數:(1)onCreate(SQLiteDatabase):在數據庫第一次生成的時候會調用這個方法,也就是說,只有在創建數據庫的時候才會調用,當然也有一些其它的情況,一般我們在這個方法里邊生成數據庫表。(2)onUpgrade(SQLiteDatabase,int,int):當數據庫需要升級的時候,Android系統會主動的調用這個方法。一般我們在這個方法里邊刪除數據表,并建立新的數據表,當然是否還需要做其他的操作,完全取決于應用的需求。(3)onOpen(SQLiteDatabase):這是當打開數據庫時的回調函數,一般不常使用。技術知識知識點2:使用adb命令查看數據庫(1)在命令行窗口輸入adbshell回車,進入了命令行,就可以使用adb命令了。(2)ls回車,顯示所有的東西,其中有個data。(3)cddata回車,再ls回車,cddata回車,ls回車后就會看到很多的應用程序包名,找到數據庫程序的包名,然后進入。(4)進去后在查看所有,會看到有databases,進入databases,顯示所有就會發現數據庫名字。(5)sqlite3dbname回車就進入了該數據庫,然后“.schema”就會看到該應用程序的所有表及建表語句。(6)之后就可以使用標準的SQL語句查看剛才生成的數據庫及對數據執行增刪改查了。技術知識知識點2:在SQLite中常用到的adb命令:(1)查看.database顯示數據庫信息;.tables顯示表名稱;.schema命令可以查看創建數據表時的SQL命令;.schematable_name查看創建表table_name時的SQL的命令;(2)插入記錄insertintotable_namevalues(field1,field2,field3...);(3)查詢記錄select*fromtable_name;查看table_name表中所有記錄;select*fromtable_namewherefield1='xxxxx';查詢符合指定條件的記錄;(4)刪除數據droptable_name;刪除表;dropindex_name;刪除索引;拓展訓練使用SQLiteOpenHelper實現一個英文生詞本軟件的設計與制作。拓展訓練【實戰訓練】編程完成以下Android生詞本應用軟件的實現。劉國3c365@Android項目開發任務6-6:SharedPreferences使用導入任務任務實施相關知識拓展訓練導入任務進行Android應用軟件開發,需要掌握其數據存儲技術和操作,本次任務將使用SharedPreferences完成數據保存與讀取。導入任務【任務目標】使用SharedPreferences設計與制作一個隨機數生成器。導入任務【任務描述】在Android應用軟件開發中,我們常常需要保存數據。常用的存儲方式包括文件讀寫、SQLite數據存儲等,這類存儲方式適用于保存較多數據的情形。除此之外,Android系統還提供了SharedPreferences以鍵值對的形式進行數據保存于讀取。

SharedPreferences常用于保存用戶偏好設置數據,例如某個CheckBox的選擇狀態、用戶登錄狀態、配置信息、密碼記憶功能等。本次任務將用SharedPreferences來保存和讀取隨機數生成器生成的數據。導入任務【任務分析】隨機數生成器界面設計包含2個Button,采用水平線性布局設計。其中“保存數據”按鈕用于存入隨機數和隨機數產生的時間,“讀取數據”按鈕用于讀取保存的隨機數和時間并顯示出來。任務實施創建項目后進行界面設計編寫實現功能的程序代碼運行應用程序并查看結果任務實施操作1:設計軟件界面。創建一個【AndroidApplicationProject】,將該項目命名為“sharedpreferencesdemo”。編寫主界面xml代碼,在項目“sharedpreferencesdemo”中雙擊打開主界面程序“activity_main.xml”,在代碼編輯窗口輸入對應程序代碼,完成界面代碼的編寫。任務實施操作2:編寫功能代碼。雙擊打開src目錄中的“MainActivity.java”程序,在代碼編輯窗口輸入對應程序代碼,完成功能代碼的編寫。任務實施操作3:運行程序測試。效果如下:相關知識認識SharedPreferencesSharedPreferences使用方法技術知識知識點1:認識SharedPreferencesSharePreferences是用來存儲一些簡單配置信息的一種機制,例如保存登錄用戶的賬號和密碼。它使用Map數據結構來存儲數據,以鍵值對的方式存儲,采用了XML格式將數據存儲到設備中。它只能在同一個包內使用,不能在不同的包之間使用。即只能在創建它的應用中使用,其他應用無法使用。它創建的存儲文件保存在/data/data/<packagename>/shares_prefs文件夾下。技術知識知識點2:SharedPreferences使用方法

(1)通過Context.getSharedPreferences方法獲

溫馨提示

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

評論

0/150

提交評論