Android之自學筆記(一)

準備開發環境


安裝ADT插件

下載用於在Eclipse中開發android應用的ADT(Android Development Tools)插件。

Help → Install Software → Add → Achieve → 選擇ADT的zip文件,輸入Name,確定,勾選安裝項(如果安裝不上, 就把該zip文件丟到eclipse/dropins下)。爲了防止安裝時自動更新,所以勾掉Contact all update sites during install tofind required software。→ 重啓Eclipse。

安裝完之後在工具欄就會出現Android機器人的圖標。在Preference也會有對應的項。

安裝Android SDK

AndroidSDK包含了開發Android應用所依賴的jar文件,運行環境及相關工具。有點類似於JDK。

從官方網站下載的SDK不帶有各種版本的android平臺(platforms文件夾是空的),可以通過SDK Manage.exe來下載android的版本。

完成之後再platforms中有對應的android文件。

爲ADT插件指定使用的SDK環境:

Window →  Preference → Android → 選擇SDK Location →選擇解壓的SDK文件 → Apply,就會出現Android版本的列表 → OK

創建android手機模擬器

選擇屏幕分辨率:

HVGA:320*480

QVGA:240*320

WQVGA400:240*400

WQVAG432:240*432

WVGA800: 480*800(default)

WVGA854: 480*854

幾個常用eclipse視圖窗口

視圖File Explorer

該視圖有3個文件:

data: 存放原件產生的數據

mnt: 存放外部的數據

  asec

  sdcard: 外部設備

system: 存放android系統文件

 

視圖Emulator Control 模擬器控制器

模擬電話呼出

打開手機模擬器之後,輸入Telephony Actions : 5554 點擊Call就能模擬呼叫手機模擬器了。


第一個Android應用


新建項目

File → new → Project →Android → Android Project →

輸入Project name: HelloWord

選擇對應android平臺

輸入Application name(應用名稱):  第一個應用

輸入Package name(Android中使用 Package name作爲應用的唯一標識。):com.gshen.android.app

創建Create Activity(Activity代表窗口,該窗口可以接受用戶的輸入事件):Main

選擇Minimum SDK版本,表示該應用程序可以在選擇版本以上的版本運行

項目安裝部署到模擬器上

第一種:項目右鍵→ Run As → Android Application(推薦, 內部也是通過adb.exe實現)

第二種:編譯之後,會在根目錄/bin下生成一個HelloWorld.apk 的文件,然後通過android-sdk-windows\tools下的adb.exe來完成項目部署

cd E:/android-sdk-windows/tools

adbinstallE:/workspace/Android_HelloWrod/bin/HelloWord.apk

卸載程序

第一種:setting → 管理應用程序 → 就可以操作

第二種:通過adb指令來完成

adbuninstall <應用的包名>   eg. adbuninstall com.gshen.android.app

項目的目錄結構

src/    存放源文件

gen/    存放由開發工具自動生成的文件(由開發工具維護),有一個R.java:作用是登記各種資源的id,資源id是由編譯器在放入res(資源)時生成的

public final class R {

    public static final class attr {

}

/* 這個類專門登記圖形資源,可以通過這個ic_launcher資源id找到對應圖片*/

    public static final class drawable {

        public static final int ic_launcher=0x7f020000;

    }

    public static final class layout {

        public static final int main=0x7f030000;

    }

    public static final class string {

        public static final int app_name=0x7f040001;

        public static final int hello=0x7f040000;

    }

}

使用靜態內部類實現 [gshen1] 

 

res/  存放資源文件:比如圖片,文字,佈局等等

drawable-*/  爲了適應不同分辨率的屏幕,圖片文件提供了drawable-hdpi(高), drawable-mdpi(中), drawable-ldpi(低)三個文件夾 ,開發時我們可以爲同一張圖片設置不同的分辨率,分別放在這三個文件夾下。

    layout/    存放界面佈局和的文件

    values/    存放應用中用到的數據,也用於實現國際化,減少相同文字內存空間的使用比如在string.xml中添加:

      <string name="hello_world">你好,世界</string>

在R.java文件的string內部類下就會生成對應的資源id:

public static final class string {

        public static final int app_name=0x7f040001;

        public static final int hello=0x7f040000;

        public static final int hello_world=0x7f040002;

    }

這樣在項目中就可以通過hello_world找到對應的字符串了。

amin/  存放定義動畫的XML文件

xml/   存放應用中配置的數據, 在Activity中使用getResources().getXML()讀取該目錄下XML資源文件。

raw/   該目錄用於存放應用使用到的原始文件,如音效文件等。編譯軟件時,這些數據不會被編譯,他們被直接加入到程序安裝包中,爲了在程序中使用這些資源,可以通過調用getResources().openRawResources(ID),參數ID形式:R.raw.i_definition

assets/    存放資源文件,這個文件夾下的資源文件不會在R.java生成資源id,如果要訪問這個路徑下的資源文件,通過:file:///android_asset/icon.jgp

AndroidMainifest.xml  項目清單文件(imp)

這個文件列出了應用程序所提供的功能,以後開發好的各種組件(Activity、ContentProvider、BroadcastReceiver、Service)需要在該文件中配置,如果應用使用到了系統內置的應用(如電話服務、互聯網服務、短信服務、GPS服務等),還需要在該文件中生命使用權限。

<activity android:label="@string/app_name"

            android:name=".Android_HelloWorldActivity" >

     <intent-filter >

          <action android:name="android.intent.action.MAIN" />

          <category android:name="android.intent.category.LAUNCHER" />

     </intent-filter>

</activity>

這個activity是應用程序的入口,指定應用程序的圖標出現在啓動列表中。

清單文件是在應用程序安裝的時候讀取,註冊。

default.properties  項目環境信息,不需要操作

應用程序安裝過程

.java →  .class →通過dx工具再轉成一個.dex  → 將.dex文件和資源文件打包一個壓縮文件,這也是一個簽名過程,使用一個證書祕鑰(證書位置:Android→Build→Default debug keystore目錄下)對文件打包簽名,完成之後就是一個.apk文件。

(如果我們是調用Run As Android Application,則會默認調用adb指令安裝到模擬器)

應用程序啓動過程

用戶點擊圖標之後,創建一個進程 → 創建主線程 → 在主線程中實例化Activity →操作系統把應用有關的信息(Context)存放進Activity中,然後調用onCreate()方法,再調用main.xml佈局方式。

@Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

}

佈局及單位

佈局方式(容器,用於擺放控件)有幾種:

1、 LineLayout(線性佈局)

2、 RelativeLayout(相對佈局)

3、 TableLayout(表格佈局)

4、 FrameLayout(幀佈局)

Android中顯示的單位

1、 px(pixels)像素

一般HVGA代表320*480像素,則個用的比較多

2、 dip或dp(device independent pixels)設備獨立像素

這個和設備的硬件有關,一般爲了支持WVGA、HVGA、QVGA推薦使用這個,不依賴像素

3、 sp(scaled pixels – best for text size)比例像素

主要處理字體的大小,可以根據系統的字體自適應

除了上面三個顯示單位,還有幾個不太常用的:

in(inches)英寸

mm(millimeters)毫米

pt(points)點,1/72英寸

爲了適應不同分辨率,不同的像素密度,推薦使用dip,文字使用sp。


 [gshen1]爲什麼這麼實現?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章