Android之路(二)

來源:互聯網
上載者:User

標籤:設定檔   java代碼   測試版   直接   get   一個   library   特性   post   

(一)app內檔案詳解

1. build包含編譯時間自動產生的檔案。

2. libs第三方jar包,需要把jar包放在libs,會被自動添加到構建路徑裡去。

3. AndroidTest 此處是用來編寫Android Test 測試案例的,可以對項目進行一些自動化測試

4. java 放置java代碼的地方 activity檔案就在裡面。

5. res項目中使用到的所有圖片/布局/字串等資源都要存放在這個目錄下。圖片放在drawable目錄下,布局放在layout目錄下,字串放在values目錄下。

6. AndroidManifest.xml

整個Android項目的設定檔,程式中定義的所有四大組件都需要在這個檔案裡註冊,另外還可以在這個檔案中給應用程式添加許可權聲明。

7. test 此處是用來編寫 Unit Test測試案例的,是對項目進行自動化檢測的另一種方式。

8. .gitignore  將app模組內的指定的目錄或檔案排除在版本控制之外,作用和外層的.gitignore檔案類似。

9. app.iml intellij IDEA自動產生的檔案

10. build.gradle app模組的gradle構建指令碼,這個檔案會指定很多項目構建相關的配置。

11. proguard-rules.pro 用於指定項目代碼的混淆規則,當代碼開發完成後達成後打成安裝包檔案,如果不希望代碼被別人破解,通常會將代碼進行混淆。

 

(二)程式碼分析

Androidmanifest.xml 中,對activity進行註冊,intent-filter裡的兩行代碼非常重要,

<action android:name= "android.intent.action.MAIN" />和<category android:name="android.intent.category. LAUNCHER" />表示 HelloWorldActivity 是這個項目的主活動,在手機上點擊應用表徵圖,首先啟動 的就是這個活動。 

 

activity.java 中,

Activity 是 Android 系統提供的一個活動基類,我們項目中所有的活動都必須繼承它或者它的子 類才能擁有活動的特性(AppCompatActivity 是 Activity 的子類)。 

HelloWorldActivity 中有一個 onCreate()方法,這個方法是一個活動被建立時必定要執行的方法 

onCreate() 方法的第二行調用了 setContentView()方法,就是這個方法給當前的活動引入了一個 hello_world_layout 

 

(三)項目中的資源

drawable圖片,mipmap表徵圖,values字串樣式顏色等配置,layout布局檔案

之所以有這麼多 mipmap 開頭的檔案夾,其實主要是為了讓程式能夠更好地相容各種裝置。 drawable 檔案夾也是相同的道理,雖然 Android Studio 沒有幫我們自動產生,但是我們應該自己創 建 drawable-hdpi、drawable-xhdpi、drawable-xxhdpi 等檔案夾 

res/values/strings.xml 兩種引用方式:

1. 在代碼中R.string.app_name 2.在xml中@string/app_name string部分可以替換成drawable mipmap layout等。

AndroidManifest.xml中應用表徵圖通過Android:icon指定,應用程式名稱android:label指定。修改表徵圖或者名字在此處進行。

 

(三)build.gradle檔案

Android studio 採用Gradle來構建項目的。Gradle是一個非常先進的項目構建工具,它使用了一種基於Groovy的領特定領域語言DSL來聲明項目設定,摒棄了傳統基於XML 如Ant 和 Maven的各種繁瑣配置。有兩個build.gradle檔案,一個在最外面一個在app裡。

外面(如果想添加一些全域項目構建配置,可以改動):

兩處repositories的閉包中都聲明了jcenter()這行配置。它是一個代碼託管倉庫。很多Android開源項目都會選擇將代碼託管到jcenter上,聲明了這行配置之後,我們就可以在項目中輕鬆引用任何jecenter上的開源項目了。

dependencies閉包中使用了classpath聲明了一個Gradle外掛程式。因為Gradle不是專門構建Android項目而開發的,Java,C++等很多種項目都可以使用Gradle來構建。因此如果我們想用它構建Android要聲明,com.android. tools.build:gradle:版本號碼

app內:

第一行應用了一個外掛程式 apply plugin,一般有兩種值可以選擇:com.android.application 表示這是一個應用程式模組com.android.library表示這是一個庫模組。應用程式模組和庫模組的最大區別在於,一個是可以直接啟動並執行,一個只能作為程式碼程式庫依附於別的應用程式模組。

 

接下來是一個android 閉包,用於設定項目構建的各種屬性。

compileSdkVersion 用於指定項目的編譯版本,這裡指定成 24 表示使用 Android 7.0 系統的 SDK 編譯 

buildToolsVersion 用於指定項目構建工具的版本

         Android閉包裡嵌套的defaultConfig閉包

         applicationId 用於指定項目的包名,前面我們在 建立項目的時候其實已經指定過包名了,如果你想在後面對其進行修改,那麼就是在這裡修改的。 

         minSdkVersion 用於指定項目最低相容的 Android 系統版本 ,15 表示最低相容到 Android 4.0 系統

         targetSdkVersion 指定的值表示你在該目標版本上已經做過了充分的測試, 系統將會為你的應用程式啟用一些最新的功能和特性。比如說 Android 6.0 系統中引入了運行時 許可權這個功能,如果你將 targetSdkVersion 指定成 23 或者更高,那麼系統就會為你的程式啟 用運行時許可權功能,而如果你將 targetSdkVersion 指定成 22,那    麼就說明你的程式最高只在 Android 5.1 系統上做過充分的測試,Android 6.0 系統中引入的新功能自然就不會啟用了。 

          versionCode 用於指定項目的版本號碼,versionName 用於指定項目的版本名 

 

         buildTypes閉包,用於指定產生安裝檔案的相關配置。通常只會有兩個字閉包,debug和release。debug用於指定產生測試版安裝檔案的配置,release用於指定產生正式版安裝檔案的配置。

未完。。。

Android之路(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.