標籤:
本文適用於從Eclipse轉AndroidStudio的開發人員
最近打算寫一個系列的android初級開發教程,預計40篇以上的文章,結合我實際工作中的經驗,寫一些工作中經常用到的技術,讓初學者可以少走彎路,這是本系列的第一篇文章,345大神寫的。
原文地址
一. 下載安裝
JDK安裝並配置JAVA_HOME環境變數
這個就略過了,純小白請自行百度
Android Studio安裝
截止到2016年4月9日Android studio的最新穩定版本為2.0,推薦使用該穩定版本。
:
二. 第一次啟動
- 安裝完過後不要著急啟動,初次開機會彈出檢查sdk更新群組件等設定,點擊finish可能會去下載,如果沒有設定代理的情況下,這個介面會卡很久。
解決方案
- 關閉android sutdio,開啟android studio安裝目錄下的bin檔案夾,找到idea.properties並開啟。
- 在該檔案尾部添加如下代碼:
# 禁用首次檢查sdk功能disable.android.first.run=true
點擊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』輸入框內填入上面鏡像伺服器地址(不包含http://,如)和連接埠,並且選中『Force https://… sources to be fetched using http://…』複選框。設定完成後單擊『Close』按鈕關閉『Android SDK Manager - Settings』視窗返回到主介面;
依次選擇『Packages』、『Reload』。
選擇鏡像網站的時候要注意的是,並不是所有的適合別人的就適合你還有可能根本無法更新,由於伺服器遠近頻寬的問題,你應該選擇適合自己的鏡像,怎麼選擇。。。。我想說設定成功後選擇更新個沒下載的檔案能成功下載更新並且速度不慢的就是合適的
主題設定
這個沒什麼好講的,但是追求逼格喜歡黑色主題的小夥伴在意這個的不少,這裡就說明一下。
啟動頁面點擊 configure->選擇Prefrences->Appearance->Theme->Darcula就是那個黑色Visual Studio風格主題 ->apply完事
如果想要更多字型關鍵詞顏色什麼的個人化配置的話推薦到下面的網址下載
http://color-themes.com/?view=index
選擇喜歡的主題下載,下載到的是個jar檔案,使用方法:
在AS中選擇File->import settings ->選擇下載的jar檔案->勾選editor color 確認
三. 項目工程
- 建立工程
跟著引導一步步來就好了,注意最低相容版本的選擇,建立項目的時候沒有提供編譯版本的選項,預設當前安裝的sdk的最高版本,AS給提供了幾個Activity模版,模版的實現都是比較經典的,推薦建立一個看一看。
- 工程目錄結構
建立完一個工程 點擊左上結構視圖切換,切換到Project目錄結構(開發中常用的是Android視圖,比較簡潔) 其中 app2和mylibrary是為了方便後面講解建立完成後手動添加的module預設建立工程是沒有的。
MyApplication檔案夾地位相當Eclipse的Workspace
不同的是AS工程目錄下面多了用於全域項目的設定檔,比較重要的是local.properties、setting.gradle、gradle.properties 、build.gradle和gradle檔案夾
- local.properties
其中可以設定你的 sdk、ndk配置,一般情況下不需要改
- settings.gradle
該檔案中就僅僅只包含了一句話,聲明所包含的module
比如上面的工程包含三個module
include ‘:app‘, ‘:app2‘, ‘:mylibrary‘
- gradle.properties
gradle編譯用到的一些參數設定 一般情況下不需要改
- buiLd.gradle
定義版本倉庫的依賴和一些gradle的命令一般情況下不需要改
Module目錄
這個目錄跟eclipse目錄很像 很容易就能理解各種目錄的對應關係,比較特別的是比eclipse多了一系列mipmap檔案夾,mipmap和drawable檔案夾一樣都是用來存放圖片的,按官方文檔說法是 mipmap檔案夾只放應用表徵圖。其他需要使用的drawable資源象之前一樣放到對應的drawable檔案夾。
建立moudle時drawable檔案夾只有預設不帶解析度參數的,適用於不同解析度的檔案夾需要自己手動建,AS提供了便捷的建立方式
在moudle上右鍵選擇Android resource directory,分別選擇類型drawable 左側列表選擇density 選擇對dpi
如
其他res檔案的建立同理。
- 開啟網上下載AS工程gradle報錯的問題
有時候我們從網上下載了一個demo工程開啟後gradle報錯不能運行,這種情況大多數由於gradle版本不一致,AS下載對應版本失敗的問題引起的,一般情況下有兩種解決方案
* 手動下載對應gradle版本到本地目錄
這種方式不推薦有興趣的自行搜尋
* 修改要開啟工程的gradle配置
參考本地建立工程的相同檔案
gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip//修改版本號碼與本地工程檔案相同
build.gradle
dependencies { classpath ‘com.android.tools.build:gradle:2.0.0‘ //修改版本號碼與本地工程檔案相同}
四. 添加依賴
瞭解了項目結構之後簡單的編譯運行調試一般來說應該沒有什麼問題了,畢竟功能表列,底部功能視窗功能提示都很明確,下面來說一說比較遇到問題的地方:添加依賴項目或運行第三方工程報錯的問題。
添加依賴一般有三種方式
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檔案夾內,然後需要重新構建一下項目 點擊功能表列的構建按鈕即可
構建完成在左側目錄欄裡的jar檔案左側應該會有尖頭可以展開查看jar包內容
有的jar還需要關聯.so庫 這時候只需要在src目錄的main檔案夾下面建一個名為jniLibs的檔案夾將so庫拷貝進去即可(與res目錄同級)
3. libray項目的依賴
很多時候我們的要用到從github上下載的項目,把其中提供的library添加到我們的項目中,方法如下 首先匯入module然後添加依賴
開啟project structure -> 添加新moudle ->在下載的工程檔案中 選擇要匯入的library的module
注意不是匯入下載的整個工程檔案夾 而是選擇其中的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‘}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
當然也可以手動把module檔案夾拷貝到工程目錄中然後修改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項 選擇簽名檔案 填寫簽名檔案的密碼別名等
- 建立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"] } }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
其中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 入門