Android移動應(yīng)用開發(fā)-創(chuàng)建Android項目_第1頁
Android移動應(yīng)用開發(fā)-創(chuàng)建Android項目_第2頁
Android移動應(yīng)用開發(fā)-創(chuàng)建Android項目_第3頁
Android移動應(yīng)用開發(fā)-創(chuàng)建Android項目_第4頁
Android移動應(yīng)用開發(fā)-創(chuàng)建Android項目_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Android移動應(yīng)用開發(fā)

010302040706認識Android列表與適配器菜單與對話框設(shè)計UI控件設(shè)計設(shè)計用戶界面創(chuàng)建Android項目Android本地存儲書目錄140911BroadcastReceiver與廣播通信Service與后臺服務(wù)設(shè)計ContentProvider與應(yīng)用間數(shù)據(jù)共享網(wǎng)絡(luò)連接與管理05Activity與Fragment08131210線程間的通信與異步機制Android性能分析與測試

創(chuàng)建Android項目章目錄2.1Android項目架構(gòu)解析2.2Android資源配置與管理2.3Android代碼調(diào)試任務(wù)2.1使用向?qū)?chuàng)建Android項目1.任務(wù)描述使用AndroidStudio創(chuàng)建一個Android移動應(yīng)用項目,在向?qū)е信渲庙椖康膮?shù),并選擇一個Activity(Android的一個系統(tǒng)組件,用于構(gòu)建用戶界面)模板。完成項目的創(chuàng)建后,通過AndroidPluginforGradle編譯、構(gòu)建和打包Android項目,并通過手機或模擬器運行該項目。2.運行結(jié)果本任務(wù)創(chuàng)建一個包含EmptyActivity模板的Android項目,運行結(jié)果如圖所示。運行結(jié)果任務(wù)介紹2.1.1Android的項目組成通過向?qū)?chuàng)建的項目架構(gòu)如圖示。在AndroidStudio中單擊“View”>“ToolWindows”>“Project”,打開“Project”窗口?!癙roject”窗口展示了項目中文件的組織方式,包括Project、Packages、ProjectFiles、Problems、Android等。Android項目架構(gòu)主要包括編譯系統(tǒng)和應(yīng)用模塊兩大類。2.1.1Android的項目組成Gradle是Google公司推薦使用的一套基于Groovy的編譯系統(tǒng)腳本,Android中使用GradleWrapper對Gradle進行一層包裝。項目中與Gradle相關(guān)的模塊如表2-1所示。01編譯系統(tǒng)文件(夾)名用途.gradleGradle編譯系統(tǒng),版本由Wrapper指定.ideaAndroidStudioIDE所需要的文件gradleWrapper的JAR和配置文件所在的位置.gitignoreGit使用的IGNORE文件build.gradleGradle編譯的相關(guān)配置文件,包括模塊配置文件和項目配置文件pertiesGradle相關(guān)的全局屬性設(shè)置gradlewLinux下的GradleWrapper可執(zhí)行文件graldew.batWindows下的GradleWrapper可執(zhí)行文件perties本地屬性設(shè)置(key設(shè)置,AndroidSDK位置等屬性),這個文件是不推薦上傳到版本控制系統(tǒng)(VersionControlSystem,VCS)中的settings.gradle和設(shè)置相關(guān)的Gradle腳本2.1.1Android的項目組成應(yīng)用(App)模塊主要包含表2-2所列舉的內(nèi)容。02應(yīng)用模塊文件(夾)名用途build編譯后文件存在的位置(包括最終生成的APK也在這里面)libs依賴的庫所在的位置(JAR和AAR)src源代碼所在的目錄src/main主要代碼所在位置src/androidTest包含在Android設(shè)備上運行的儀器測試的代碼src/test包含在主機Java虛擬機(JavaVirtualMachine,JVM)上運行的本地測試的代碼src/main/assets項目中附帶的一些文件src/main/javaJava代碼所在的位置src/main/jni包含使用Java原生接口(JavaNativeInterface,JNI)的原生代碼src/main/resAndroid資源文件所在位置src/main/AndroidManifest.xml項目的清單列表文件,說明項目及其每個組件的性質(zhì)build.gradle和這個項目有關(guān)的Gradle配置,一些項目的依賴就寫在這里面代碼混淆配置文件2.1.1Android的項目組成單擊“File”>“ProjectStructure”,打開圖2-4所示的“ProjectStructure”對話框。03項目架構(gòu)“ProjectStructure”對話框2.1.2項目文件解析通過向?qū)傻腗ainActivity.java是Android中用于管理用戶界面的系統(tǒng)組件。MainActivity.java代碼編輯器窗口如圖所示。01MainActivity.javaMainActivity.java代碼編輯器窗口2.1.2項目文件解析activity_main.xml是一個布局文件,用于構(gòu)MainActivity.java

所管理的用戶界面。activity_main.xml代碼編輯器窗口如圖所示。02activity_main.xml2.1.2項目文件解析app文件夾下的build.gradle主要用于配置應(yīng)用程序?qū)傩浴⒑灻?、特性(渠道)、?gòu)建類型和依賴。build.gradle代碼編輯器窗口如圖所示。03app/build.gradlebuild.gradle代碼編輯器窗口2.1.3清單文件解析AndroidManifest.xmlAndroidManifest.xml是一個用來描述Android應(yīng)用整體信息的結(jié)構(gòu)化XML清單文件,位于app/src/main目錄下。該文件描述了應(yīng)用程序的環(huán)境及其支持的Activity、Service、Intent接收器、ContentProvider提供程序以及權(quán)限、外部庫和設(shè)備特性等信息。AndroidManifest.xml代碼編輯器窗口如圖所示。在AndroidManifest.xml文件的所有元素中,只有<manifest>和<application>標(biāo)簽中的元素是必需的,且只能出現(xiàn)一次。AndroidManifest.xml文件的所有元素值均通過屬性進行設(shè)置,而不是通過元素內(nèi)的字符數(shù)據(jù)設(shè)置。2.1.3清單文件解析AndroidManifest.xml代碼編輯器窗口表示從右向左布局Activity的聲明任務(wù)2.2設(shè)計App閃屏界面1.任務(wù)描述參照微信閃屏界面,實現(xiàn)App閃屏界面。2.運行結(jié)果本任務(wù)運行結(jié)果如圖2-9所示。運行結(jié)果任務(wù)介紹章目錄2.1Android項目架構(gòu)解析2.2Android資源配置與管理2.3Android代碼調(diào)試2.2.1資源的種類可以通過3種類型的文件來創(chuàng)建資源:XML文件(除位圖和原始數(shù)據(jù)文件)位圖文件原始數(shù)據(jù)文件兩種不同類型的XML文件一種是編譯到包里;另外一種是通過AAPT產(chǎn)生的資源文件。表2-3列出了Android支持的資源文件類型。2.2.1資源的種類路徑資源文件類型res/animator/定義屬性動畫的XML文件res/anim/定義補間動畫的XML文件,加載動畫時使用AnimationUtils.loadAnimation()方法。屬性動畫也可以保存在此目錄中,但是為了區(qū)分這兩種類型,屬性動畫首選res/animator/目錄res/color/定義顏色狀態(tài)列表的XML文件res/drawable/存放位圖文件(擴展名為.png、.9.png、.jpg、.gif)或編譯為Drawable資源子類型的XML文件,可以使用Resource.getDrawable()方法獲取這些資源res/mipmap/存放適用于不同啟動器圖標(biāo)密度的Drawable文件res/layout/定義屏幕布局的XML文件(或者屏幕的一部分)res/values/文件夾里有一些典型的文件(一般約定文件以定義的元素類型后面部分為文件名)。arrays.xml:定義數(shù)組。colors.xml:定義顏色和顏色字符串?dāng)?shù)值??梢允褂肦esources.getDrawable()和Resources.getColor()方法取得這些資源。dimens.xml:定義尺寸數(shù)值??梢允褂肦esources.getDimension()方法取得這些資源。strings.xml:定義字符串?dāng)?shù)值。可以使用Resources.getString()或Resources.getText()方法取得這些資源。styles.xml:定義類型對象res/menu/定義程序菜單的XML文件,例如OptionsMenu、ContextMenu或者SubMenu等res/xml/任何XML文件??梢赃M行編譯,并能在運行時調(diào)用Resources.getXML()方法顯示XML原文件res/raw/放置任意原始形式的文件,并直接被復(fù)制到設(shè)備上??梢哉{(diào)用Resources.openRawResource()方法取得資源res/font/帶有擴展名的字體文件(如.ttf、.otf或.ttc)或包含<font-family>標(biāo)簽的XML文件2.2.2引用資源以下4種通過資源ID引用資源的方式。例如styles、themes、layouts等。要調(diào)用這些資源通過Android包名來限定資源。例如,在ListAdapter中以列表的形式顯示數(shù)據(jù)。setListAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myarray));4.引用系統(tǒng)資源Android可以通過XML格式的資源文件來聲明與定義各種類型的數(shù)組。(1)字符串?dāng)?shù)組(2)整型數(shù)組(3)Drawable數(shù)組(4)Color數(shù)組3.引用資源數(shù)組一個在屬性(或者資源)里提供的數(shù)值可以被指向一個具體的資源。常用于布局文件中對字符串或圖像的引用。在XML文件中引用資源的語法:@[<package_name>:]<resource_type>/<resource_name>2.在XML文件中引用資源知道資源的ID和目標(biāo)文件的資源類型就可以在代碼里使用資源。語法:R.resource_type.resource_name或android.R.resource_type.resource_name1.在代碼中引用資源2.2.3管理資源備用資源是為特定配置而設(shè)置的資源。一個特定配置對應(yīng)一組特定的資源,并給資源目錄添加一個合適的配置限定詞作為名稱。創(chuàng)建備用資源:01備用資源首先在res/目錄中創(chuàng)建以<resources_name>-<qualifier>形式命名的新目錄。創(chuàng)建好后將相應(yīng)的備用資源保存在其中。例如:res/drawable/icon.pngbackground.pngdrawable-hdpi/icon.pngbackground.png2.2.3管理資源02本地化資源很大程度上,本地化應(yīng)用程序(根據(jù)產(chǎn)品界面語言以及硬件配置設(shè)置不同的資源)的工作就是為各種語言提供可替代的文本資源(有時,還需要提供可替代的圖像、聲音、布局及其他地區(qū)設(shè)置相關(guān)資源)。為了支持更多的語言,需要在res目錄里創(chuàng)建額外的values目錄。這些values目錄的名稱需要以“-”和國家的ISO碼結(jié)尾。Android在運行時會根據(jù)設(shè)備的語言環(huán)境設(shè)置來加載適當(dāng)?shù)馁Y源。例如:res/values/strings.xmlres/values-fr/strings.xmlres/values-ja/strings.xml2.2.3管理資源02本地化資源在AndroidStudio中提供TranslationsEditor以輔助本地化工作。選擇res/values/strings.xml文件,右擊strings.xml文件,然后選擇“OpenTranslationsEditor”,會顯示strings.xml文件中的鍵值對,如圖所示。TranslationsEditor2.2.3管理資源Android用兩種常規(guī)屬性來分類設(shè)備屏幕:尺寸和像素密度。尺寸通常分為4類:small、normal、large和xlarge。像素密度通常也分為4類:低分辨率(ldpi)、中分辨率(mdpi)、高分辨率(hdpi)和特高分辨率(xhdpi)。03適配不同尺寸的屏幕為了聲明用于不同屏幕的不同layout布局文件和Bitmap資源,必須把這些可選的資源文件分別放在不同的目錄中。(1)創(chuàng)建不同的layout布局文件(2)創(chuàng)建不同的Bitmap資源任務(wù)2.3托管項目至GitHub【任務(wù)介紹】1.任務(wù)描述本任務(wù)通過搭建本地Git環(huán)境、在AndroidStudio中配置GitHub來實現(xiàn)將本地Android項目托管到GitHub中。2.運行結(jié)果項目托管成功后,GitHub中的項目瀏覽界面如圖所示。GitHub中的項目瀏覽界面章目錄2.1Android項目架構(gòu)解析2.2Android資源配置與管理2.3Android代碼調(diào)試2.3.1Logcat與系統(tǒng)日志系統(tǒng)日志系統(tǒng)日志會在調(diào)試應(yīng)用時顯示系統(tǒng)消息。這些消息包括運行在設(shè)備上的應(yīng)用產(chǎn)生的信息。如果想利用系統(tǒng)日志來調(diào)試應(yīng)用,需確保代碼能夠在應(yīng)用處于開發(fā)階段時寫入日志消息和輸出針對異常的堆疊追蹤。“Logcat”窗口常用于顯示以下兩種情況產(chǎn)生的信息程序強制關(guān)閉或者異常退出的情況,即ForceClosed。程序無響應(yīng)的情況,即ApplicationNoResponse[界面操作過程中線程響應(yīng)超過5s,或者HandleMessage()回調(diào)方法執(zhí)行過程中線程響應(yīng)超過10s]。2.3.1Logcat與系統(tǒng)日志“Logcat”窗口2.3.1Logcat與系統(tǒng)日志在代碼中寫入日志消息,需使用Log類。android.util.Log類為Android提供了一個日志工具類,其通過Log.v()、Log.d()等方法向“Logcat”窗口輸出調(diào)試信息。一種比較好的做法:在要用作第一個參數(shù)的類中聲明TAG常量。例如,可以按如下方式創(chuàng)建一條日志消息。privatestaticfinalStringTAG="MyActivity";Log.i(TAG,"MyClass.getView()—getitemnumber"+position);Logcat信息級別包括Verbose(詳細)、Debug(調(diào)試)、Info(信息)、Warning(警告)、Error(錯誤)、Assert(斷言)。不同級別的信息顯示不同的顏色。2.3.1Logcat與系統(tǒng)日志AndroidLogcat設(shè)置對話框如圖所示。2.3.1Logcat與系統(tǒng)日志importandroid.util.Log;...publicclassMyActivityextendsActivity{privatestaticfinalStringTAG=MyActivity.class.getSimpleName();...@OverridepublicvoidonCreate(BundlesavedInstanceState){if(savedInstanceState!=null){Log.d(TAG,"onCreate()Restoringpreviousstate");/*restorestate*/}else{Log.d(TAG,"onCreate()Nosavedstateavailable");/*initializeapp*/}}

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論