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(幀布局)
//線性布局的兩種方法: