日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android 項目在Eclipse中的目錄結構

 kiki的號 2017-04-05

Android工程目錄
 
如果使用Eclipse插件ADT開發(fā)應用程序,必須要熟悉工程的目錄結構,清楚各個目錄下面放置的是什么東西。Android工程主要的目錄有:src、bin、gen、res等。

不同的Android平臺目錄結構是不同的,下面以Android 2.3.3 為例介紹Android 在Eclipse 中的目錄結構,下面是目錄結構:

這里01_項目名當然就是我們的項目名了,下面分別對各目錄進行解析。

 

1. Src:

該目錄中存放的是該項目的源代碼,這個目錄包含了你即將創(chuàng)建的Java源代碼文件,這個目錄里的文件是根據(jù)package結構管理的,它與普通java項目中的/src目錄很相似。

如上圖所示,其中cn.com.qiang.helloworld 是包名,MainActivity.java 是默認的源代碼文件,我們可以打開看一下里面的代碼:

  1. package cn.com.qiang.helloworld;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.view.Menu;  
  6.   
  7. public class MainActivity extends Activity {  
  8.   
  9.     @Override  
  10.     protected void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         setContentView(R.layout.activity_main);  
  13.     }  
  14.   
  15.   
  16.     @Override  
  17.     public boolean onCreateOptionsMenu(Menu menu) {  
  18.         // Inflate the menu; this adds items to the action bar if it is present.  
  19.         getMenuInflater().inflate(R.menu.main, menu);  
  20.         return true;  
  21.     }  
  22.       
  23. }  

Activity 就是我們大名鼎鼎的Android 四大組件之一,主要實現(xiàn)我們打開app 所看到的界面。 

2.Gen:

自動生成的文件目錄。該目錄下的文件全部都是ADT自動生成的,一般并不需要去修改,實際上該目錄下只定義了一個R.java文件,該文件相當于項目的字典,為項目中用戶界面、字符串、圖片等資源都會在該類中創(chuàng)建其惟一的ID,當項目中使用這些資源時,會通過該ID得到資源的引用。

我們可以看看其中的代碼:

  1. public static final class drawable {  
  2.        public static final int ic_launcher=0x7f020000;  
  3.        public static final int p0015=0x7f020001;  
  4.        public static final int p0022=0x7f020002;  
  5.    }  
  6.    public static final class id {  
  7.        public static final int action_settings=0x7f080000;  
  8.    }  
  9.    public static final class layout {  
  10.        public static final int activity_main=0x7f030000;  
  11.    }  
  12.    public static final class menu {  
  13.        public static final int main=0x7f070000;  
  14.    }  
  15.    public static final class string {  
  16.        public static final int action_settings=0x7f050001;  
  17.        public static final int app_name=0x7f050000;  
  18.        public static final int hello_world=0x7f050002;  
  19.    }  

這是其中的一部分,我們可以看到其中各個資源的ID。

3.Android {版本號}:

這個目錄包含了項目需要的庫文件(Jar文件),這和普通Java項目中的/lib目錄很相似。同時其中還包含項目打包時需要的META-INF目錄.

 

4.Android Private Libraries:

所有的第三方JAR包引入都被放入了Android Private Libraries中

 

5.assets:

資源路徑,不會在R文件注冊。該目錄用于存放項目相關的資源文件,這個目錄和res包含的xml文件差不多,也是應用中引用到的一些外部資源。但主要區(qū)別在于這些資源是以原始格式保存,且只能用編程方式讀取。例如文本文件,視頻文件,MP3音頻等媒體文件。

 

6.bin:

編譯生成目錄。二進制文件,包括class、資源文件、dex、apk等。

可以看到,這里01_項目名.apk 就可以直接在手機里安裝使用了。

 

7.res:(這個就很重要了)

該目錄用于存放應用程序中經(jīng)常使用的資源文件,其中包括圖片、布局文件以及參數(shù)描述文件等,其中包括多個目錄。

 

a) 其中以drawable開頭的四個文件夾用于存儲.png、.9.png、.jpg等圖片資源(.9.png是Android特有的圖片格式,可以根據(jù)情況進行拉伸,達到不變形的效果),他們的分變率從高到低,如果你打算在android應用中包含一個圖片或者圖標,就應該把它們放在這個目錄。

可以看到,我們的drawable-hdpi 文件中有三個圖片,注意:圖片名字不能有大寫字母和漢字,我們可以用F2修改其名字,且調(diào)用圖片時,是不需要添加.png的。

 

b) layout文件夾存放的是應用程序的布局文件,這些layout是以xml形式保存的,關于layout的進一步信息,你可以參考android文檔中的UI layout。可以看看默認的文件:

  1. <LinearLayout xmlns:android="http://schemas./apk/res/android"  
  2.     xmlns:tools="http://schemas./tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent" >  
  5.   
  6.     <TextView  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:text="@string/hello_world" />  
  10.   
  11. </LinearLayout>  

其中TextView顯示一個文件系統(tǒng)提供的空間。

Eclispse 同時為我們提供了Graphic Layout (可視化布局) :

 

 

c) menu

memu主要用設置菜單文件

 

d) values

這個目錄也包含了一些xml文件,但主要是應用中要引用的key-value對。這些XML文件聲明了數(shù)組(Array)、顏色(color)、度量(Dimension)、字符串。之所以把這些東西分別放在單獨的xml文件中主要是考慮到這些值能夠在不更改源代碼的情況下用于多語言環(huán)境。例如,根據(jù)用戶語言的不同應用程序中的信息可以有多種語言版本。

1) strings.xml 文件—— 字符串資源文件,可以看一下源代碼

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <string name="app_name">QQ</string>  
  5.     <string name="action_settings">Settings</string>  
  6.     <string name="hello_world">你好?。。」?!</string>  
  7.   
  8. </resources>  

.xml 文件調(diào)用用strings中的字符串時,需這樣調(diào)用:

  1. android:text="@string/hello_world"  

@string/+<string name>,則會調(diào)用strings.xml中定義的字符串;

Java源代碼需調(diào)用字符串時,則需要調(diào)用gen中的R.string這樣來使用字符串;

 

2) dimens.xml 文件,主要用來設置文件的寬度和高度

  1. <resources>  
  2.   
  3.     <!-- Default screen margins, per the Android Design guidelines. -->  
  4.     <dimen name="activity_horizontal_margin">16dp</dimen>  
  5.     <dimen name="activity_vertical_margin">16dp</dimen>  
  6.   
  7. </resources>  

這里 dp—寬度,sp— 字體大小

3) stypes.xml 文件

 

8.AndroidManifest.xml:

清單文件 這個XML文件包含了android應用中的元信息,是每個android項目中的重要文件。在軟件安裝的時候被讀取,Android中的四大組件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在該文件中,以及運行這個android應用程序需要的用戶權限列表,例如:電話、短信、互聯(lián)網(wǎng)、訪問SD卡,同時也詳細描述了android應用的項目結構。

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas./apk/res/android"  
  3.     package="cn.com.qiang.helloworld"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="10" />  
  10.   
  11.     <application  
  12.         android:allowBackup="true"  
  13.         android:icon="@drawable/p0015"  
  14.         android:label="@string/app_name"  
  15.         android:theme="@style/AppTheme" >  
  16.         <activity  
  17.             android:name="cn.com.qiang.helloworld.MainActivity"  
  18.             android:label="@string/app_name" >  
  19.             <intent-filter>  
  20.                 <action android:name="android.intent.action.MAIN" />  
  21.   
  22.                 <category android:name="android.intent.category.LAUNCHER" />  
  23.             </intent-filter>  
  24.         </activity>  
  25.     </application>  
  26.   
  27. </manifest>  

1)、每個activity 都要注冊,注冊的方式 寫上“包名+類名”即可:

  1. android:name="cn.com.qiang.helloworld.MainActivity</span>  

2)、必須有一個activty 作為入口界面

  1. <intent-filter>  
  2.                 <action android:name="android.intent.action.MAIN" />  
  3.   
  4.                 <category android:name="android.intent.category.LAUNCHER" />  
  5. </intent-filter>  

intnet-filter 被稱為意圖過濾器。

 

9. proguard-project.txt:

代碼混淆相關文件

 

10.project.properties:

工程屬性的配置文件,配置編譯的版本等。ADT14 以后, project.properties和default.properties合并成了project.properties。供Eclipse使用,讀取該項目使用Android版本號

 

 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多