[Android]Android開發入門之HelloWorld

引言: 在作Unity開發的時候,發現這麼個問題,雖然Unity是跨平臺的,可以進行Android,IOS,Web,PC等開發,但若是要實現一些稍微系統 層的東西,仍是須要經過通訊,調用原系統的接口(自定義的接口)來進行開發的,因此這仍是須要了解其餘平臺原生態的開發的,以前我Web,IOS開發有了 必定了解,最近要實現一個移動平臺的二維碼掃描功能,因爲IOS我在現有資源的狀況下,不能進行真機調試,但Android平臺開發我又不熟悉,因此感受 非常頭疼,因而就下定決心仍是要了解一下原生態的Android開發,求人不如靠己,求人只能是暫時的,再有耐心的人都通過不起你的反覆的問,他人也有他 人的工做!java

學習一門新的技術,都是從HelloWorld開始!這個是衆所周知的,輸入HelloWorld也就是進入了該開發的大門!下面我就寫一下學習心得!linux

以前我 一直從事的是Visual Stdio軟件下的開發,不管是cocos2dx仍是.net,Unity3d,都離不開VS,感受微軟最成功的不只僅是Windows操做系統,還有一 個就是Visual Stdio集成開發環境,我以前一直沒有觸碰與java相關的開發方向,就是由於習慣使用了VS,而且已經愛上它了,就不習慣Eclipse開發環 境,java開發的程序員或許也會有這感受,習慣上了Eclipse開發環境也就獨愛它同樣。如今因爲不得已仍是要學學Android開發,因此仍是漸漸 習慣用Eclipse吧,Eclipse與其餘兩大集成開發環境(Xcode,VS2010)有明顯不一樣的就是配置繁瑣,不耐心的程序員,或許就已經卡在 配置的路上了,但無論怎樣,耐心、細心、責任心是程序員必備的素質!這裏配置Android開發環境就不介紹了,本身Baidu。接下來就是從 HelloWorld建立開始!android

1、重要的調試工具adb的介紹

adb(android debug bridge)android調試橋

打開Android SDK目錄,介紹一下重要的adb工具,內部tcp調試橋,會經過socket,模擬器來執行指定的操做
。adb這工具比較重要,咱們常會用它來調試,咱們能夠添加在環境變量,配置操做:個人電腦->右擊->屬性->高級->環境變量
程序員

而後在cmd中就可使用adb工具了shell


adb基本操做
a)將本地文件拷貝到手機中
adb push [源文件] [目標文件]
adb push 1.txt /mnt/sdcard/1.txt
b)將手機文件拷貝到本地
adb pull [源文件] [本地]
adb pull /data/app/Apidemos.apk C:\demo.apk
c)殺死某一進程
adb kill start-server
d)將桌面某一應用(apk)安裝到手機模擬器上
adb install demo.apk
e)卸載某一應用
adb uninstall 包名(進程名)
adb uninstall com.example.android.apis
其實豌豆莢 QQ手機關機 91手機助手這些應用程序就是將這些命令封裝了一下,而後執行了相應操做
f)查看adb的版本
adb version (許多莫名其妙的問題就是可能由於adb的版本緣由致使的)
g)查看當前全部鏈接上來的設備信息
adb devices(若是是真機鏈接上,也會顯示真機的名字)
h)來到模擬器或者真機的控制檯
adb shell
Android手機實際上是Linux操做系統的控制檯
ls查看目錄信息
ps就能夠查看當前正在運行的進程信息
kill就能夠殺死某一進程
#kill 127(pid進程號)
這些都是linux的命令了,就不詳細介紹了!
ctrl+f11切換屏幕橫豎屏
api

2、HelloWorld開發

1.基本建立

File->New->Android Application Projectapp


生成的目錄socket

2.生成的目錄解析

project.properties 文件夾
指定開發使用的android.jar的版本
android-17  Android 4.2.2
android-8   Android 2.2
jsp

API級別與NDK的對應關係以下:tcp

Code name Version API level
(no code name) 1.0 API level 1
(no code name) 1.1 API level 2
Cupcake 1.5 API level 3, NDK 1
Donut 1.6 API level 4, NDK 2
Eclair 2.0 API level 5
Eclair 2.0.1 API level 6
Eclair 2.1 API level 7, NDK 3
Froyo 2.2.x API level 8, NDK 4
Gingerbread 2.3 - 2.3.2 API level 9, NDK 5
Gingerbread 2.3.3 - 2.3.7 API level 10
Honeycomb 3.0 API level 11
Honeycomb 3.1 API level 12, NDK 6
Honeycomb 3.2.x API level 13
IceCreamSandwich 4.0.1 - 4.0.2 API level 14, NDK 7
IceCreamSandwich 4.0.3 API level 15


AndroidManifest.xml
將咱們應用到的信息給註冊到Android系統上,至關於註冊表
註冊了包名、版本號
<activity>節點是咱們應用程序的主界面
修改圖標,添加節點信息
在res文件加下新建drawable文件夾做爲存放圖片的文件夾,放一個5.png的圖標
android:icon = "@drawable/5"

res文件夾
values文件夾下面的strings.xml是配置app的名字已經啓動文本,這裏修改一下app的名字
layout文件夾下的activity_main.xml是界面佈局的文件,點擊GraphicalLayout就是界面的預覽,

點擊activity_main.xml修改文本信息,改爲「Android開發,我要征服你」


全部res文件下的資源配置信息,咱們在gen目錄包下面都會有一個R.java,這個是由aadt工具自動生成的,都是以一個int類型的引用形式存在 的,咱們在res/values/strings.xml下添加一個節點<string name= "myname">丁小未</string>

而後去看R文件,會發現自動生成了一個
public static final int myname=0x7f050003;與之對應的引用


R文件的做用:爲了方便程序中重複的使用定義的資源文件,作到程序跟資源相分離,而後咱們來解釋一下以前寫的android:icon="@drawable/5",這樣寫的道理
@表明R文件,drawable就是表明R類的內部類,5是指內部類裏面的5所指向的地址的圖標
總而言之就是res資源文件R文件都會自動生成一個int類型的節點信息來贊成管理資源

最後介紹最關鍵的src(源碼文件夾)/MainActivity文件,Android開發每個Activity都是對應這一個與之對應的界面
類比:作jsp開發的時候,.jsp文件都是對應着一個用戶能夠見到的網頁;.net開發中,.aspx文件也是用戶能夠見到的動態網頁,這裏採用了MVC的這種模式,是採用這種Activity類來實現用戶可見的界面
雙擊MainActivity.java文件,看到onCreate方法,是在應用第一次啓動的時候執行的方法,其中有這麼一段代碼
setContentView(R.layout.activity_main);這就是設置activity的佈局,咱們能夠自定義佈局,拖動一些控件到activity上

佈局的就是R文件下layout節點下activity_main的資源,對應於res/layout/activity_main.xml文件,Android開發最重要的就是這個R文件

常見錯誤:1.例如若是註冊表文件 AndroidManifest.xml中android:name寫錯了,系統啓動的時候會報一個加載出錯,由於系統在啓動的時候首先就是去訪問該註冊表的文件,因爲清單文件配置出錯,系統找不到與之對應的activity2.AndroidManifest.xml中<intent-filter>        <action android:name="android.intent.action.MAIN" />        <category android:name="android.intent.category.LAUNCHER" /></intent-filter>這段配置文件的做用:在luncher程序裏面生成一個應用程序的圖標,若是咱們刪了,從新啓動,log日誌會顯示安裝成功HelloWorlddown,但咱們點擊應用圖標卻會提示咱們沒有安裝應用程序!

相關文章
相關標籤/搜索