Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記 ---項目的目錄結構與安裝及啟動過程分析

Android學習筆記 ---項目的目錄結構與安裝及啟動過程分析

編輯:關於Android編程

  1.a.src文件夾:用來存放java源文件;   b.gen文件夾:開發工具自動創建的文件,有一個R文件,用來登陸資源id,在編譯器編譯的時    候自動生成的,可以通過資源id,引用資源   c.res是軟件引用的文字,圖片等等   d.res-->drawable-hdpi-->這個文件夾:專門用來放圖片資源,當把圖片放入這個文件夾     的時候,就會為這個圖片在R文件中生成一個資源id;   e.由於手機屏幕有大小,所以提供了:drawable-hdpi,drawable-ldpi,drawable-mdpi     三個不同的大小圖片,android操作系統會根據手機屏幕的分辨率,來選擇不同的文件夾   f.laylout文件夾:中的main.xml指的是定義系統的界面     values文件夾:strings.xml放了應用中用到的文字,為了實現國際化 2.a.在strings.xml中添加:     <resources>     <string name="hello">Hello World, MainActity!</string>     <string name="app_name">HelloWorldTest</string>     <string name="credream">創夢網絡</string>     </resources>   b.在R文件中可以看到多了:        public static final class string {         public static final int app_name=0x7f040001;         public static final int credream=0x7f040002;//多了這一行         public static final int hello=0x7f040000;     } -------------------------------------------- 3.a.當字體有很多的時候,為了不讓string.xml過於大     那麼可以新建一個Android xml文件credream.xml,創建的時候,要加上後綴.xml   b.在credream.xml添加了以下:      <?xml version="1.0" encoding="utf-8"?>      <resources>      <string name="lidewei">李德偉</string>      </resources>   c.在R文件中會生成:     public static final int lidewei=0x7f040000; ---------------------------------------------------------- 4.在layout中存放的界面文件main.xml   下面再創建一個界面文件:   右鍵新建android xml文件,adduser.xml,選擇layout     a.res\layout\addUser.xml: Invalid file name: must contain only [a-z0-9_.]     1.res\layout\addUser.xml: Invalid file name: must contain only [a-z0-9_.]     出現這個的原因是,文件名不可以包含大寫字母   b.res/anim/文件夾:動畫定義的xml文件;   c.res/xml文件夾:在Actity中使用getResource().getXML()讀取該目錄下的XML     資源文件   c.res/raw/文件夾:該目錄用於存放使用到的原始文件,如音效文件等,編譯軟件時,這些數      據不會被編譯,他們被直接加入到程序安裝包裡,為了再程序中使用這些資源,你可以調用     getResources().openRawResource(ID),參數ID形式,R.raw.somefilename ---------------------------------------------------------------------- 5.a.assets文件夾:用來存放資源文件;在這裡放入文件,不會在R文件中生成資源ID,需要使用     文件路徑來訪問這裡面的內容   b.default.properties文件:是eclipse用的文件,通過這個文件可以告訴eclipse,這個程序     適用於什麼android版本   c.AndroidManifest.xml文件,清單文件,在清單文件中除了列出了應用的功能外     還列出了,自己應用使用了系統的什麼服務,比如發短信服務,打電話服務;   d.以後開發的各種組件(Activity,ContentProvider,BroadcastReceiver,Service)需要在      該文件中進行配置,如果應用使用到了系統內置的應用(如電話服務,互聯網服務,短信服         務,GPS服務等等)還要在該文件中聲明使用權限 ----------------------------------------------------------------------- 6.AndroidManifest.xml文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.credream.app"  //包名,唯一標示一個應用       android:versionCode="1"     //開發的軟件的版本號,和版本名稱       android:versionName="1.0">  //版本名稱       <application android:icon="@drawable/icon//指定應用的圖標,drawable      指的是R文件中的drawable,指的是訪問R文件中的drawable內部類中的icon常量      ,更換圖標可以把一個圖片的資源id賦予="@drawable/的後面,"              android:label="@string/app_name">//這個屬性用於指定應用的名稱,指定應用strings.xml     中的   app_name指定的名稱         <activity android:name=".MainActity"//.代表當前應用所在包,取得是類的名字,    如果這個類,在應用的包下,可以省略點.但是如果在應用包的子包下面需要加點,建議不管   在哪裡都加點,避免出錯                   android:label="@string/app_name">//指的是窗口的標題             <intent-filter>//指意圖過濾器,對數據進行過濾,用來匹配意圖,意圖代表了            一個想法                 <action android:name="android.intent.action.MAIN//這個字符串已經被安卓系統賦予了一個功能,就是把應用添加到啟動列表中,如果沒有這兩項的話,應用是不會出現在   程序的啟動列表中的,這兩個參數只能使用在一個activity中" /> //動作的名稱                 <category android:name="android.intent.category.LAUNCHER" /> //動作的類別             </intent-filter>         </activity>//activity可以指定多個,因為一個activity代表一個窗口,那麼可以有多個窗口     </application>//</application>應用有關的     <uses-sdk android:minSdkVersion="8" />//指定應用最低支持的版本 </manifest>  ------------------------------------------------------------------- 7.清單文件是在軟件安裝的時候被操作系統讀取的;安裝的時候,操作系統讀取這個文件,然後   注冊,相當於在windows下,安裝軟件的時候,注冊進注冊表一樣 --------------------------------------------------------- 8.a.編譯器工作原理--->.java-->.class-->android虛擬機格式-->.dex...在/項目/bin/下     --->把dex.打包(簽名)-->使用默認的密鑰簽名,這個密鑰在:windows -->perference-    >android--->Build-->右側Default debug keystone就是密鑰的位置-->簽完名之後就把    這   個文件 --->打包成apk格式的.   b.然後當運行的時候,eclipse adt插件會自動的調用adb.exe 執行 adb install      c:\xxx.apk -------------------------------------------------------------------- 9.a.當點擊應用圖標-->找到一個MainActivity-->然後創建一個進程,然後創建一個線程(主      線程),在這個,線程裡面對MainActivity這個類進行實例化,在實例化的時候,會首先在配        置文件中讀取這個類的名稱:然後:使用反射MainActity .class.newInstance();來實例      化這個MainActivity這個類--操作系統會把應用有關的信息(context)放在Activity中,     然後---調用oncreate-- public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     --->把它放在一個任務棧中;    b.setContentView(R.layout.main);在窗口中顯示軟件界面-->只想layout文件夾下的     main.xml ------------------------------------------------------------------- 10. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"//     android:orientation="vertical"//指定了擺放的方向     android:layout_width="fill_parent"//填充窗口的寬和高     android:layout_height="fill_parent"//     > <TextView//類似於java中的label標簽:  用來顯示的     android:layout_width="fill_parent" //textView的寬度和父窗口的寬度一樣     android:layout_height="wrap_content" //高度指的是包裹內容,就是說顯示的內容有      //多少,顯示控件就有多高     android:text="@string/hello"//顯示文字的意思,使用的是Strings.xml文件中,hello,    //顯示的資源     /> </LinearLayout>//指的是線性布局,線性布局 --------------------------------------------------------------------------- 10.線性布局:擺放方式有兩種:    a.以垂直方式擺放或者    b.以水平方式擺放   2.對於控件的寬度和高度也可以自己設置:     <TextView//類似於java中的label標簽:  用來顯示的     android:layout_width="20dp" //textView的寬度和父窗口的寬度一樣     android:layout_height="wrap_content" //高度指的是包裹內容,就是說顯示的內容有      //多少,顯示控件就有多高     android:text="@string/hello"//顯示文字的意思,使用的是Strings.xml文件中,hello,    //顯示的資源     /> -------------      a.高度和寬度的單位有:1.dip或者是dp(device independent pixels)設備獨立像素     這個和設備硬件有關,一般為了支持WVGA,HVGA,和QVGA推薦使用這個,不依賴像素   b.sp(scaled pixeis -best for text size)比例像素 ------------------ 除了以上兩個還有兩個不太常用的:   in(inches)英寸    mm(millimeters)毫米   pt(points)點,1/72英寸 ------------------------ 為了適應不同分辨率,不同的像素密度,推薦使用dip,文字使用sp 注意:android:layout_width="fill_parent"      fill_parent和match_parent作用是一樣的 ------------------------------- 12.軟件的啟動過程:     當點擊應用圖標-->找到一個MainActivity-->然後創建一個進程,然後創建一個線程(主      線程),在這個,線程裡面對MainActivity這個類進行實例化,在實例化的時候,會首先在配        置文件中讀取這個類的名稱:然後:使用反射MainActity .class.newInstance();來實例      化這個MainActivity這個類--操作系統會把應用有關的信息(context)放在Activity中,     然後---調用oncreate-- public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     --->把它放在一個任務棧中;然後會調用      setContentView(R.layout.main);//這裡調用了layout,下的       //main.xml,這裡用到的是線性布局       //有線性布局,相對布局,表格布局.frame.layout(幀布局)       //線性布局的兩種方法:  
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved