Android Studio 入門
本文適用於從Eclipse轉AndroidStudio的開發人員
近期打算寫一個系列的android0基礎開發教程,估計40篇以上的文章,結合我實際工作中的經驗,寫一些工作中經經常使用到的技術,讓剛開始學習的人能夠少走彎路,這是本系列的第一篇文章,345大神寫的。
原文地址
一. 下載安裝
安裝JDK並配置JAVA_HOME環境變量
這個就略過了,純小白請自行百度
Android Studio安裝
截止到2016年4月9日Android studio的最新穩定版本號為2.0,推薦使用該穩定版本號。
下載地址:
下載地址1 官網下載頁面傳送門
假設下載速度非常慢。請復制下載連接到迅雷,萬能的迅雷會幫你提速的。 假設根本打不開請移步地址2
下載地址2 AndroidDevTools
你須要的這裏基本都會有,強烈推薦到這裏下載。
假設本地已經下載有sdk的話推薦下載zip免安裝版,第一次啟動的時候配置下sdk目錄就好。
二. 第一次啟動
- 安裝完過後不要著急啟動,首次啟動會彈出檢查sdk更新組件等設置,點擊finish可能會去下載。假設沒有設置代理的情況下。這個界面會卡非常久。
解決方法
- 關閉android sutdio,打開android studio安裝目錄下的bin目錄,找到idea.properties並打開。
- 在該文件尾部加入例如以下代碼:
# 禁用首次檢查sdk功能
disable.android .first.run=true
重新啟動android studio就不會再出現sdk設置檢查界面了。
- 啟動完畢會看到以下的界面
- 啟動完畢會看到以下的界面
點擊Configure選擇SDK Manger能夠配置SDK目錄等屬性
點擊左下角連接 啟動SDK Manger 配置SDK更新鏡像
我想說這一步在天朝是必須的,原因我想你懂的
以下說一下SDK更新鏡像站點的用法:
詳細請參考AndroidDevTools
1. 啟動 Android SDK Manager 。打開主界面,依次選擇『Tools』、『Options…』,彈出『Android SDK Manager - Settings』窗體。
在『Android SDK Manager - Settings』窗體中。在『HTTP Proxy Server』和『HTTP Proxy Port』輸入框內填入上面鏡像server地址(不包括http://。例如以下圖)和端口。而且選中『Force https://… sources to be fetched using http://…』復選框。
設置完畢後單擊『Close』button關閉『Android SDK Manager - Settings』窗體返回到主界面;
依次選擇『Packages』、『Reload』。
選擇鏡像站點的時候要註意的是,並非全部的適合別人的就適合你還有可能根本無法更新。因為server遠近帶寬的問題,你應該選擇適合自己的鏡像,怎麽選擇。
。。。我想說設置成功後選擇更新個沒下載的文件能成功下載更新而且速度不慢的就是合適的
主題設置
這個沒什麽好講的,可是追求逼格喜歡黑色主題的小夥伴在意這個的不少,這裏就上圖說明一下。
啟動頁面點擊 configure->選擇Prefrences->Appearance->Theme->Darcula就是那個黑色Visual Studio風格主題 ->apply完事
假設想要很多其它字體關鍵詞顏色什麽的個性化配置的話推薦到以下的網址下載
view=index">http://color-themes.com/?view=index
選擇喜歡的主題下載,下載到的是個jar文件。用法:
在AS中選擇File->import settings ->選擇下載的jar文件->勾選editor color 確認
三. 項目project
- 新建project
跟著引導一步步來就好了,註意最低兼容版本號的選擇。新建項目的時候沒有提供編譯版本號的選項,默認當前安裝的sdk的最高版本號。AS給提供了幾個Activity模版,模版的實現都是比較經典的。推薦新建一個看一看。
- project目錄結構
新建完一個project 如圖點擊左上結構視圖切換。切換到Project目錄結構(開發中經常使用的是Android視圖,比較簡潔) 當中 app2和mylibrary是為了方便後面解說新建完畢後手動加入的module默認新建project是沒有的。
MyApplication目錄地位相當Eclipse的Workspace
不同的是ASproject目錄以下多了用於全局項目的配置文件,比較重要的是local.properties、setting.gradle、gradle.properties 、build.gradle和gradle目錄
- local.properties
當中能夠設置你的 sdk、ndk配置,普通情況下不須要改 - settings.gradle
該文件裏就僅僅僅僅包括了一句話,聲明所包括的module
比方上面的project包括三個module
include ‘:app‘, ‘:app2‘, ‘:mylibrary‘
- gradle.properties
gradle編譯用到的一些參數設置 普通情況下不須要改 - buiLd.gradle
定義版本號倉庫的依賴和一些gradle的命令普通情況下不須要改
- local.properties
Module目錄
這個目錄跟eclipse目錄非常像 非常easy就能理解各種目錄的相應關系,比較特別的是比eclipse多了一系列mipmap目錄。mipmap和drawable目錄一樣都是用來存放圖片的,按官方文檔說法是 mipmap目錄僅僅放應用圖標。
其它須要使用的drawable資源象之前一樣放到相應的drawable目錄。
新建moudle時drawable目錄僅僅有默認不帶分辨率參數的,適用於不同分辨率的目錄須要自己手動建。AS提供了便捷的創建方式
在moudle上右鍵選擇Android resource directory,分別選擇類型drawable 左側列表選擇density 選擇對dpi
例如以下圖
其它res文件的創建同理。- 打開網上下載ASprojectgradle報錯的問題
有時候我們從網上下載了一個demoproject打開後gradle報錯不能執行,這樣的情況大多數因為gradle版本號不一致,AS下載相應版本號失敗的問題引起的。普通情況下有兩種解決方法
* 手動下載相應gradle版本號到本地目錄
這樣的方式不推薦有興趣的自行搜索
* 改動要打開project的gradle配置
參考本地新建project的同樣文件
gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
//改動版本號號與本地project文件同樣
build.gradle
dependencies {
classpath ‘com.android.tools.build:gradle:2.0.0‘
//改動版本號號與本地project文件同樣
}
四. 加入依賴
了解了項目結構之後簡單的編譯執行調試一般來說應該沒有什麽問題了,畢竟菜單條,底部功能窗體功能提示都非常明白。以下來說一說比較遇到問題的地方:加入依賴項目或執行第三方project報錯的問題。
加入依賴一般有三種方式
1. 加入代碼倉庫的依賴
這樣的方式最簡單直接在項目module的build.gradle 裏面的dependencies 裏加入一句話,然後又一次構建就可以。如:
dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
testCompile ‘junit:junit:4.12‘
compile ‘com.android.support:appcompat-v7:23.3.0‘
compile ‘com.android.support:design:23.3.0‘
//加入了OKHttp的依賴
compile ‘com.squareup.okhttp3:okhttp:3.2.0‘
}
能夠手動加入也能夠右鍵項目在open module settings裏搜索加入(推薦這樣的方式)
AS會自己主動聯網下載加入的依賴 這個一般不須要FQ
- jar包的依賴
這個是最簡單的也不用聯網,和eclipse一樣把jar包復制到libs目錄內,然後須要又一次構建一下項目 點擊菜單條的構建button就可以如圖
構建完畢在左側目錄欄裏的jar文件左側應該會有尖頭能夠展開查看jar包內容
有的jar還須要關聯.so庫 這時候僅僅須要在src目錄的main目錄以下建一個名為jniLibs的目錄將so庫拷貝進去就可以(與res目錄同級)
3. libray項目的依賴
非常多時候我們的要用到從github上下載的項目,把當中提供的library加入到我們的項目中,方法例如以下 首先導入module然後加入依賴
打開project structure -> 加入新moudle ->在下載的project文件裏 選擇要導入的library的module
註意不是導入下載的整個project目錄 而是選擇當中的module目錄
把導入的library加入到目的項目的依賴中
當導入的library裏的項目build.gradle文件裏包括一些上傳到版本號倉庫的信息的話導入過後可能會報錯,這時候僅僅須要把不必要的信息凝視掉就可以,須要保留的是編譯配置,依賴關系。目錄配置。例如以下
apply plugin: ‘com.android.library‘
//項目編譯信息
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
}
//依賴信息
dependencies {
compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
testCompile ‘junit:junit:4.12‘
compile ‘com.android.support:appcompat-v7:23.2.1‘
compile ‘com.android.support:design:23.2.1‘
}
當然也能夠手動把module目錄復制到project目錄中然後改動settings.gradle文件。只是不推薦這樣的方式。
五. 快捷鍵
AS的自己主動提示功能非常強大,有輸入過後會自己主動彈出提示不須要像Eclipse一樣按alt+/才提示,至於其它AS的快捷鍵非常多就不一一說明了, 上個圖拿去自行修煉吧
六. 插件安裝
打開Setting頁面 找到Plugins 搜索安裝 如圖
推薦的幾個AS插件,詳細用法請自行百度
1. GsonFormat
2. android-butterknife-zelezny
3. JsonOnlineViewer
七. 打多渠道包
國內上線APP一般要從多渠道公布。為了統計渠道安裝量一般須要每一個渠道生產一個安裝包。AS自帶多渠道打包功能。多渠道打包功能絕對是AS最有用的功能之中的一個。這裏重點講一下。
- 生成簽名文件
簽名文件能夠在build->generate signed apk -> 選擇項目 next ->create new生成,方式與eclipse幾乎相同
- 設置打包用的簽名文件
打開module setting 新建一個signing項 選擇簽名文件 填寫簽名文件的password別名等
- 新建Flavors配置
作為演示樣例我新建了三個配置並選擇打包用到的簽名配置 一個offline_debug、一個release_360、一個release_baidu
- 改動module的build.gradle和Mainfest文件
依照上一步配置好之後。build.gradle裏會多出productFlavors和singConfig配置。我們要改動的是productFlavors部分。
怎樣改動我們來舉例說明
這是build.gradle文件內改動的部分
defaultConfig {
applicationId "com.example.mark.myapplication"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
//BuildConfig.IS_SIGN = false
buildConfigField "boolean", "IS_SIGN", "false"
}
productFlavors {
offline_debug {
signingConfig signingConfigs.signConfig
//這裏演示的是一個變量的寫法
manifestPlaceholders = [APP_NAME: "Debug版本號"]
}
release_360 {
signingConfig signingConfigs.signConfig
//BuildConfig.IS_SIGN = true
buildConfigField "boolean", "IS_SIGN", "true"
//這裏演示的是有多個變量的寫法
manifestPlaceholders = [APP_NAME: "360版本號", EXAMPLE: "360"]
}
release_baidu {
signingConfig signingConfigs.signConfig
buildConfigField "boolean", "IS_SIGN", "true"
manifestPlaceholders = [APP_NAME: "百度版本號", EXAMPLE: "baidu"]
}
}
當中defaultConfig內的 buildConfigField “boolean”, “IS_SIGN”, “false”一句 是在構建項目生成的BuildConfig類中加入一個名為 IS_SIGN 的bool變量,並賦值為false。
這個變量是能夠在代碼裏使用的,如以下的代碼能夠用來切換線上線下的請求地址
public static String BASE_URL;
static {
if(BuildConfig.IS_SIGN){
BASE_URL = "線上地址";
}else{
BASE_URL = "線下地址";
}
}
productFlavors 內的manifestPlaceholders = [APP_NAME: “Debug版本號”] 一句的含義是 將AndroidManifest.xml文件裏的變量APP_NAME替換為冒號後面的字符串,這句是僅僅有一個要替換的變量的寫法。後面you多個變量的寫法舉例。這個APP_NAME在Manifest文件裏的定義格式例如以下 ${變量名} 在打包的時候gradle會自己主動把這個占位變量給替換掉。
<activity
android:name=".LoginActivity"
android:label="${APP_NAME}">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
這樣的變量定義能夠出如今Mainfest中不論什麽須要字符串的位置,我上面僅僅是一個演示樣例,請活學活用不要照搬照抄。
- 打包
同一時候選中你要打包的配置項 點擊finish 等一會就會同一時候生成多個APK。
推薦下自己創建的android QQ群: 202928390歡迎大家的加入.
假設你想第一時間看我們的後期文章,掃碼關註公眾號。每周不定期推送Android開發實戰教程文章。你還等什麽。趕快關註吧。學好技術,。出任ceo,贏取白富美。。
。。。
。。。。。
Android Studio 入門