本系列將使用 Android Studio 將《第一行代碼——Android》(書中講解案例使用Eclipse)刷一遍,旨在為想入坑 Android 開發,並選擇 Android Studio 作為開發 IDE 的同學開路。
關鍵詞
《第一行代碼》:CSDN 知名博主郭霖所著,Android 入門書籍 下載見 http://www.linuxidc.com/Linux/2015-05/117920.htm。
Android Studio :谷歌目前主推的 Android 開發 IDE 工具。
Ubuntu 12.04(64位)安裝Android Studio 全過程 http://www.linuxidc.com/Linux/2013-05/84812.htm
Android Studio v0.1嘗鮮 http://www.linuxidc.com/Linux/2013-05/84681.htm
Android Studio使用教程 http://www.linuxidc.com/Linux/2013-05/84579.htm
Android Studio開發指南 http://www.linuxidc.com/Linux/2013-05/84543.htm
Android Studio設置主題 和 不支持中文的問題解決方法 http://www.linuxidc.com/Linux/2013-05/84488.htm
Android Studio 下載安裝以及不能打開的解決辦法 http://www.linuxidc.com/Linux/2013-05/84409.htm
Android Studio安裝使用圖文教程 http://www.linuxidc.com/Linux/2014-09/106914.htm
戰前准備
第一戰,必然是 Hello world!目標:創建一個 APP project,運行、查看目錄結構。
打開 Android Studio,選擇 Start a new Android Studio project,此時會彈出創建 Android 項目的對話框,填好 Application name(應用名稱),選擇好 project location(項目路徑),然後點 Next。如下圖
接下來選擇 Minimum SDK(程序最低兼容版本),下面還有一個說明(your app will run on approximately 90.4% of the devices that are active on the Google Play Store) 會告訴你選擇這個最低兼容版本大約可以支持多少設備。當然這是來自 Google Play Store 的數據,國內的話僅供參考吧。我選擇 5.0 試了一下,悲催的 < 0.1%,老老實實的選擇 4.0 吧,然後點Next。如下圖
接下來選擇 Activity(活動界面),我們選擇 Blank Activity,繼續點Next。我們需要給你剛剛選擇的 Blank Activity 起名。Activity Name 我們填 HelloWorldActivity,下面的 Layout Name、Title、Menu Resource Name 都會自動跟著改變。如下圖
最後點擊Finish,OK,項目創建完成。
點擊工具欄中的綠色小箭頭,或者按 Shift+F10 運行項目(在此之前請將你的手機連接到電腦,或者創建好一個模擬器)。如下圖
經過一番艱苦卓絕的編譯之後,彈出了 Choose Device 的對話框,這裡選擇你的手機或模擬器,然後點擊 OK。(PS:這裡可以選擇 Use same device for future launches. 復選框,這樣以後運行就會默認選擇的設備,不需要每次都選擇設備了。)
看到熟悉的 Hello world 了吧。好了,就這樣我們打響了 Android 戰場的第一槍,Hello World 功不可沒。
來看一下我們的項目目錄結構吧,默認是這樣的。如下圖
可以看到跟書中的 Eclipse 結構有很大區別,反正我是看不習慣(因為搞Java用Eclipse用慣了)。點擊上圖中紅圈的地方,我們切換到 Project 模式。如下圖
和書中所講的 Eclipse 目錄有一些區別:
書中還提到幾個目錄和文件:
這些在 Android Studio 創建的項目中並沒有找到,但是他們都有對應的目錄或文件,後面用到的時候再詳細說明。
打開文件可以找到如下代碼:
<activity
android:name=".HelloWorldActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這段代碼表示對 HelloWorldActivity 這個活動進行注冊,沒有注冊的活動是不能使用的。其中 intent-filter 裡的兩行代碼非常重要,表示 HelloWorldActivity 是這個項目的主活動,項目運行時首先啟動這個活動。
打開文件可以找到如下代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
}
onCreate() 方法是一個活動被創建時必定要執行的方法。Android 程序的設計講究邏輯和視圖分離。其中第二行調用了 setContentView() 方法,這個方法為當前活動引入了一個 activity_hello_world 布局,用來顯示當前活動的視圖。
布局文件都是定義在 res/layout 目錄下的,找到並打開文件,找到如下代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".HelloWorldActivity">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
其中的 TextView 是 Android 提供的一個控件,可以用來顯示文字。
這句代碼 android:text="@string/hello_world"
是用來定義顯示的文字內容的,其中引用了定義在 res/values/strings.xml 中的 hello_world 字符串。
Android 不推薦在程序中對字符串進行硬編碼,通常是把字符串定義在 res/values/strings.xml,然後可以在布局文件或代碼中引用。大家可以找到該文件,打開看看。
這裡還有一個問題要說明:可能大家在打開 activity_hello_world.xml 這個文件時看到的並不是上面代碼裡的樣子。如下圖
這裡明明顯示著 android:text="Hello world!",和我上面貼的代碼不一樣啊。其實把鼠標移到上面看看,或者點一下你就知道了。這應該是 Android Studio 的一個特性吧。
首先看一下 res 的目錄結構,如下圖
1. mipmap
用來放圖片的。跟書中 Eclipse 中生成的有些區別,mipmap-hdpi 等代替了 drawable-hdpi。用法上區別不大,在引用時使用 @mipmap 就行了。我 Google Baidu 了一下,在 eoe 論壇裡有人這麼說。
Mipmaps早在Android2.2+就可以用了,但是直到4.3 google才強烈建議使用。把圖片放到mipmaps可以提高系統渲染圖片的速度,提高圖片質量,減少GPU壓力。so,do it。
2. layout
用來放布局文件的。
3. values
用來放字符串的。
4. menu
用來放菜單文件的。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-05/117919p2.htm