2012年6月25日 星期一

初學android必先了解的五大語法觀念


記得初學android時所看到一堆的程式碼,心中就在想,這麼多奇怪的函數要全記起來要花多久呀@@!什麼都不懂的我只好照書本寫的程式一個一個抄,每個語法一個一個去找解釋,然後抄原文解釋來看(結果抄完後,隔天也看不懂它代表什麼意思),一直苦練半年(抄了上百個程式)才對程式一知半解,也才發現自已浪費了許多時間背程式碼、抄程式碼(程式碼的背誦不是android要我們去學的,還有更多重要的內容學習),為了不讓想學android的初學者跟我走一樣浪費時間的路,下面幾個重要觀念一定要先記起來,才不會耗費不必要的時間。





一、口語化的函數或指令

        在android生命周期中有onCreateonPauseonDestory…等等
由這些函數可知道其中所代表的意思或做法:onCreate(創建期間)onPause(暫停期間)
onDestory(毀滅期間),許多預設的函數,它的字義就是如此,所以如果你看到很長的函數或指令,拆開來看就能了解它的意思,比如:StartActivityForResult
你可以拆成Start Activity For Result,這代表依照不同結果來開始一個活動。
         在android程式設計中,空白代表一個程式碼或一個定義的結束,所以我們在命名或定義時才會將名稱連在一起而不留空白。

二、函數的執行

         android是一種物件導向,也就是說每個函數、每個動作、每個元素都可當作一個物件,在物件中又有許多不同的類別與執行動作,所以我們要讀取或執行物件中的函數或動作時,都用“.”來執行所要的指令。
例如:Button.onClickListenr() ,這代表是在Button類別中執行on click listener(按下的監聽器

三、大、小寫的差別

       如果常接觸java,有時候會覺得是不是自已寫錯程式碼了(大小寫不同),但這些程式碼卻偏偏可以執行而沒有出現錯誤?
其實這些大小寫的意義不相同,但常常會混淆,例如:int,Integer ; double,Double ; float,Float,這些看似相同,但其實有它的意義在(不然的話,開發程式者寫這種無聊的東西出來做啥)
小寫是基本類型,也就是說它可以直接存數值。
例如:int i=1(定義 i 為整數1)
而大寫可以代表1object(物件)
例如:Integer i=new Integer(1);(定義i為一個整數物件,而此物件為整數1)
那為什麼要這麼麻煩的做法呢,因為當我們遇到某些函數,它的參數無法直接放入數值,只能放入物件,所以我們才必須把數值包在物件之中,例如:ArrayListHashMap等函數…

四、父子關係

        在函數中有許多類別,而這些類別中又分許多子類別出來,當我們在使用函數時就 注意這些差別。通常每個類別只能有一個父類別,而在子類別中可以用“extends”來繼承父類別,繼承後可以擁有父類別的所有函數、變數。
例如:class test extends Activity{}:這代表我們新建一個testclass,而它繼承了父類別Activity的所有函數、變數。所以當我們在testclass中使用onCreate(){super.onCreate();}
這代表我們可以用“super”這個方法來讀取父類別中onCreate()的功能。

五、變數

在很多函數或方法中我們都必須代入參數,而這些參數的類型我們可以分為常用的幾種類型
1、Object:物件
2、String:字串
3、Value:數值(int double float……不同的數值是不互通的)
這些變數彼此之間是無法直接通用,必須通過轉換才可以使用,所以在引用參數時,我們都必須清楚知道他們之間的關聯才可以,為什麼這邊要特別講變數呢?因為在android之中,我們常用R.java中的參數來代入,在R.java中的參數都是數字,但是它們可以代表物件、字串或數值,所以有時候引用時一旦沒注意,就會形成例外出錯…

Android的起源與認識

Android操作系統於200711月公開發表,它是由google手機開放聯盟(Open Handset Alliance, OHA)共同發展。在短短的5年之間,Android的系統不斷的開發更新,更新版本如 Cupcake Donut Eclair Froyo Gingerbread Honeycomb 以及 Ice Cream Sandwich等等, 這些版本不斷地擴張手機所能支援的功能 ,甚至到了 匪夷所思的的地步。下面這張圖可以詳細說明每次版本更新所帶來的新功能。

究竟Android是什麼呢?

        它是移動操作設備系統,只要是移動設備的硬體,都可以用Android植入系統來達到所要的效果,而我們今日所見的移動設備大多以手機與平板為主,可是實際上它的功能會比我們想像的還要多很多…


在這邊我們先由軟體支援開始,Android系統中的應用程式框架,裡面有包含4個基本元件(活動、服務、廣播與內容提供)、資源管理、視窗這些都能以API的方式取得,然後建構出各式各樣的app,當然也有許多函式庫可以取得(這裡的函式庫是以C/C++建構),在google play上所有軟體都由應用程式框架與函式庫互相配合取用而創造出來~到這裡,好像創造出一個程式,感覺不會太困難~實際上真的不困難,因為google已經利用Android系統幫你取得了多數軟硬體設備的控制權(如:多媒體、藍芽、wifigps3DSQLite web)而我們所需要做的就是熟讀文件並且將正確的參數代入即可得到我們要的效果。


        可是這些功能applewindows也能做到,而且apple做的也比android來的簡約、便利,為什麼還要學Android??相信這是許多人的疑問~我只學Andorid,沒寫apple(當然不是程式難學的關係)Android最大的特點在於開放!!!他不一定只能用在特定硬體,你可以自製硬體,然後與Android互相結合成你要的東西,看下面的影片你就知道它的威力在那!





相信由這兩部影片你可以發現,他們都是用手機去控制的(廢話!!!!),更正確的說法~他們是用android去控制的,這也就是我們要說的第2個部份,硬體支援~只要你想做自已的電子設備,用你的手機去控制硬體,那就用android~這是windowsapple所不容易做到的。

2012年6月19日 星期二

開始你的android app(安裝篇)


    記得開始寫android之前,安裝需要的環境(java、eclipse及android sdk還有開啟它的模擬器)時,等待的時間有夠漫長,長到令人狂打瞌睡(自已的電腦等級不夠,又不能打電玩只能看看網誌、新聞,一直等待並打哈欠…)整個過程花費約2個小時左右,所以請耐心依以下步驟安裝並更新。





第一步:下載java jdk(這裡提供java下載網址,請找適合自已電腦的安裝)

 

下面為詳細步驟說明提供操作參考




第二步:安裝eclipse開發程式,並且設定其ADT(eclipse下載網址)

 

安裝詳細說明



第三步:下載android sdk並且設定模擬器
 (這裡的步驟是最耗時的地方,下一篇會詳細介紹這部份的模擬器)


下載android sdk 並且執行模擬器的詳細介紹

整個更新過程至少要3小時以上,請耐心等待,而模擬器的開啟,建議先用android2.1
一開始會比較快速,如果用android4.0以上,要確定你的電腦ram至少2G,否則不建議
使用andoid4.0以上的模擬器。


1116補充:
尋找更新時,新增site: http://dl-ssl.google.com/android/eclipse