動機:偶然的機會認識倆朋友,業余時間開始搞搞自己的小項目,發現身邊沒有做android的朋友,再加上現在iOS行情對于我這個從事iOS才2年多的菜??來說是越來越差了,于是萌生了自己搞Android的想法。雖然Android行情也不咋地,但是會一門總有點好處,都是移動端,學起來應該不會太難吧=。=
準備:我學Android用的是谷歌爹的Android studio,用的mac開發。
開始:
-
1.新建一個project。
one_start.png -
2.然后project的名字和公司的名字,點??next
one_api.png - 3.這里我選的是API 15的,參考的help me choose里給的建議(這個版本以后占到目前95%的份額,還有5%大爺不要了)。
one_activity.png
- 4.因為是第一次,所以選擇Add No Activity,我們手動去創建一個Activity(這個Activity我是理解成UIViewController的)。finish!
one_open.png
- 5.展開工程目錄,我選的Project方式,找到/app/src/main
- 5.1 java文件夾放java代碼(廢話)
- 5.2 src是資源文件夾,在xml文件里的引用方式是:@xxx/xxx。我目前用的比較多的是values文件夾,Android里字符串跟顏色都不用像iOS那樣硬編碼,這個好。
- 6.新建一個MainActivity,繼承Activity
-
7.在AndroidManifest.xml里注冊Activity,以后所有創建的Activity都需要在這里注冊
one_register_activity.png- 7.1 這里要把我們創建的MainActivity注冊為一進來就顯示的活動(類似window.rootController)。這個intent-filter是用來隱式創建活動過濾用的(后面會學到)
- 8.為我們的活動創建布局layout
-
8.1 原先沒有layout文件夾,先新建一個,類型選layout,名字也叫layout。再在里面新建xml文件,布局先選LinearLayout
one_create_layout.png - 8.2在xml文件里加一個TextView(UILabel),先抄著,layout_width/height的值有match_parent和wrap_content選,看字面就知道啥意思啦。
-
8.3id很重要,我們在java文件里引用這個控件的時候,就是通過R.id.xxx來引用的
one_text_view.png
-
- 9.回到我們創建的MainActivity里,類里添加一段代碼:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
}
在Activity創建的時候(相當于viewDidLoad),使用setContentView(R.layout.xxx)引用我們的layout。
-
10.跑一下,就是那個綠箭頭,第一次跑還會讓設置一下模擬器。
one_run.png
隔壁那個有個齒輪的綠箭頭是調試用,我們打斷點的時候可以用,這么打。
one_point.png
這樣下面可以看到打印的信息
one_run_debug.jpeg
好了,excited!
one_excited.png
建一個工程就這樣。我在學的時候有一些都是不求甚解,因為我覺著畢竟有做移動端的經驗,有一些東西敲著敲著就會了。所以有些說的不夠詳細的地方,是因為我也不會??