Android Project Structure(項目結構)

來源:互聯網
上載者:User

Introducing Android

Hello Android

接著前兩篇的內容,本文簡要介紹一下Android的項目結構。

 

一個Android項目會包括java源檔案,資源檔片,基於xml的布局檔案等,第三方的jar包等。這些檔案最終會被編譯成一個.apk檔案即Android應用程式可執行檔Android package file, .apk檔案可以安裝在類比裝置或者真機上。

 

看一下前一篇我們建立的HelloAndroid項目的結構圖:

 

可以看到Android項目主要包括:

src/: 存放java源檔案

gen/: 存放由Android編譯工具產生的java源檔案, 這些檔案不能手動修改。如R.java就定義了一些常量,這些常量是對資源檔的索引,以便我們很方便的引用這些資源檔。

assets/: 存放一些靜態檔案並將會被一起打包成.apk檔案

res/:存放資源檔

    res/drawable: 存放圖片如PNG,JPEG等

res/drawable-ldpi/my_icon.png       // 存放低解析度的圖片
res/drawable-mdpi/my_icon.png   // 存放中等解析度的圖片
res/drawable-hdpi/my_icon.png       // 存放高解析度的圖片

    res/layout: 存放基於xml的布局檔案

    res/menu: 存放基於xml的菜單檔案

    res/values: 存放字串等資源檔,如多語言的檔案

 

bin/:存放編譯後的檔案

   bin/yourpackagename/classes/:存放java編譯後的.class檔案

   bin/classes.dex: class檔案被轉換成針對Dalvik虛擬機器最佳化的dex檔案, 在Introducing Android中有提及。

   bin/resources.ap_: 被壓縮的資源檔類似zip檔案。

   bin/yourapp.apk: Android應用程式可執行檔,其實它也是個壓縮的檔案,包含了.dex檔案,各種資源檔等。

 

AndroidManifest.xml是一個當前應用程式的組件清單,它列出了應用程式套件組合含的各種activities,services,許可權等, 下面看一下HelloAndroid項目中的AndroidManifest.xml檔案:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.benjamin.helloandroid"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".HelloAndroid"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

 

可以看到根項目manifest的定義, 首先聲明了命名空間,指定了包名。android:versionCode是Android應用程式的版本號碼,一個整形的數字,在應用程式升級的時候會進行比較是否決定要更新。android:versionName是你自己為你應用程式定義一個版本代號,不必一定是數字,如”Tiger 2000”, “System X”等。如果你的應用程式要發布在Android Market的話,都需要指定android:versionCode和android:versionName這兩項。

android:icon表示你的應用程式顯示的表徵圖,"@drawable/icon”表示讀取res/drawable下面icon這個圖片,android:label表示應用程式的名稱,"@string/app_name”表示讀取res/values/strings.xml中app_name的值。activity的兩個屬性android:name和android:label分別表示這個activity的類名,activity的顯示名稱。intent-filter表示在什麼條件下這個activity會顯示。

AndroidManifest.xml還包含很多元素,更詳細的可以參考官方的文檔。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.