Android Studio 教程(乾貨)

目錄

!!!原創地址:http://write.blog.csdn.net/mdeditor#!postId=49473215 
歡迎大家評論交流,如有問題,可以留言!!!

常見設置 
導入第三方主題 
自動提示的設置 
修改成Eclipse的快捷鍵風格 
拷入java代碼的衝突提醒 
使用Genymotion 
導入Eclipse工程 
程序從運行狀態,直接切換到Debug狀態 
創建和刪除library 
導入一些library和jar 
同步gradle文件 
Gradle概念:構建工具、以Groovy爲基礎、主要面向Java 
在工程下的build.gradle配置倉庫 
創建簽名文件並打包 
使用Gradle命令進行打包 
gradlew的原理 
aar包的使用 
AS中導入so庫 
65535問題 
多渠道打包 
導入Github中的源碼 
其他問題 
Win10下AS自帶命令行無法使用問題

需要分清兩個概念:Project和Module 
Project:相當於Eclipse中的工作區的概念,裏面可以存在多個Module 
Module:相當於Eclipse中的project,Module可以是library或者application 
每個Module下都有一個build.gradle文件,Project下也有一個build.gradle文件

常見設置

a)在Setting中,修改主題、修改工程目錄的字體大小。 
這裏寫圖片描述

b)在Setting中,顯示行號: 
這裏寫圖片描述

c)設置註釋模板,File–>Other Setting –> Default Setting 
這裏寫圖片描述 
d)在Default Setting中,設置xml格式,全部勾選,否則換行會有點問題 
這裏寫圖片描述

e)在Default Setting中,修改編碼方式 
這裏寫圖片描述

導入第三方主題

網站:http://www.ideacolorthemes.org 
下載的文件是個jar包,選擇File–>Import Settings 選項,然後選擇對應的jar包即可

自動提示的設置

a)如下圖: 
這裏寫圖片描述

b)系統提示時,修改大小寫敏感,First letter是首字母大小寫敏感,將鼠標處修改成None即不區分大小寫 
這裏寫圖片描述

修改成Eclipse的快捷鍵風格

由於修改成Eclipse風格後,有少部分快捷鍵不能使用需要手動修改,下面是一些快捷鍵的修改。

a)修改Eclipse中的alt + / 的效果;在搜索框中輸入:class name completion,然後選擇“add keyboard shortcut”,修改快捷鍵爲alt + / 即可。 
這裏寫圖片描述

b)Eclipse快捷鍵風格中,如何通過Ctrl + 左鍵單擊 查看方法或類的源碼,如下圖,此處是鼠標相關的快捷鍵,注意!!!!! 
這裏寫圖片描述

在Click Pad 處 按住Ctrl + 鼠標左鍵單擊即可,可以在preview看到設置好的快捷鍵,然後選擇OK 
這裏寫圖片描述

拷入java代碼的衝突提醒

做如下選擇,這樣當從其他地方拷入代碼時,可以自動導入引用,如果有衝突,會進行詢問(Ask)

這裏寫圖片描述

使用Genymotion

a)首先需要安裝Genymotion,然後需要AS中添加插件,操作:File–>Setting–>搜索plugins,在界面中點擊下方的 “Browse repostories”,在彈出的窗口搜索“Genymotion”,然後安裝即可。 
b)Genymotion的插件安裝成功後,會出現如下圖標,點擊打開即可,首次運行需配置 
安裝模擬器的路徑 
這裏寫圖片描述

導入Eclipse工程

Android Studio,點擊左上角File–>New–>Import Project,選擇對應Eclipse工程即可。 
系統會根據Eclipse工程生成一個AS的工程的副本,在生成過程中會刪除一些不識別的 文件,同時會生成對應的gradle文件。

程序從運行狀態,直接切換到Debug狀態

點擊下圖所示的按鈕即可。 
這裏寫圖片描述

創建和刪除library

New–> New Module ,選擇Android Library如下所示: 
這裏寫圖片描述

刪除Module,首先應該在Project Structure中刪除,然後再右鍵刪除;否則不能刪除。 
這裏寫圖片描述 這裏寫圖片描述

導入library和jar

在Module下的build.gradle文件中的顯示,如下圖 
這裏寫圖片描述

同步gradle文件

每當gradle文件有所修改時,需要點擊下圖中的Sync Now 進行同步。

這裏寫圖片描述

Gradle編譯失敗,會出現如下所示部分,可以點擊Try Again重新編譯 
這裏寫圖片描述

Gradle概念和介紹

一種構建工具、以Groovy爲基礎、主要面向Java。 
build.gradle對應的圖形界面就是Project Structure,導入jar包在這兩個地方都可以進行,效果相同;通過這種方式導入的jar包不在libs下面,在External Libraries下 
這裏寫圖片描述

gradle文件簡介: 
這裏寫圖片描述

在工程下的build.gradle牆內倉庫

默認是jcenter() 
jcenter對應的網址:https://bintray.com/bintray/jcenter 
可以修改映射倉庫的地址,改爲牆內的網址: 
maven{ url ‘http://maven.oschina.net/content/groups/public/‘} 
修改工程目錄下的gradle文件,如下圖: 
這裏寫圖片描述 
buildscript中的倉庫是在gradle編譯中需要下載的gradle依賴文件的倉庫。 
allprojects中的倉庫是工程中的jar包下載的倉庫

創建簽名文件並打包

操作Build –> Generate Signed APK,然後在下圖中選擇“Create new”,然後按步驟操作即可 
這裏寫圖片描述

選擇Next,出現如下窗口,然後選擇Build Type和渠道即可。 
這裏寫圖片描述

使用Gradle命令進行打包

右擊工程,選擇“Open Module Setting”,配置如下信息: 
注意:該窗口的所有標籤對應相應Module下的gradle文件,所有操作會在對應gradle文件中生成相應代碼;使用AS創建的簽名文件的擴展名是jks,不再是keystore了 
這裏寫圖片描述


配置打包類型及其簽名信息,如下圖: 
這裏寫圖片描述

上述操作完成後,會在build.gradle中生成對應的配置代碼

然後在AS自帶的命令行中輸入 
gradlew clean (先clean) 
gradlew assembleRelease進行打包 
ubuntu上不能直接輸入gradlew命令,需要輸入 ./gradlew 
點擊運行按鈕(綠色箭頭)運行的是:assembleDebug!!!

生成的apk在build/output文件夾下,有兩個文件:app-release.apk、app-release-unaligned.apk(該文件是沒有經過zipalign優化的apk)

gradlew的原理

a)gradlew會調用gradle wrapper 找到系統中對應版本的gradle,如果沒有該版本則進 行下載,然後執行assembleRelease,可以屏蔽gradle不同版本信息;如果需要直接使 用gradle需要配置環境變量 
b)工程目錄下gradle/wrapper下有gradle-wrapper.jar和gradle-wrapper.properties兩個 文件,後者是一個配置文件,該文件配置了所依賴的gradle的相關信息,該文件中的 distributionUrl是對應的gradle版本信息,當程序運行是會檢查該版本是否存在,如果 不存在則需要到對應網站下載該版本gradle!!!配置文件如下所示: 
這裏寫圖片描述 
注意:在File–>Setting–>Gradle中配置的信息只是針對使用AS才生效,如果使用命令 行(包括AS自帶的命令行)則沒有效果

aar包的使用

在gradle中類型爲library的Module會自動在該Module下的build\outputs\aar目錄下 生成aar包 
這裏寫圖片描述 
然後在AS中選擇File–>New–>New Module,做如下選擇,依賴的添加同library 
這裏寫圖片描述

AS中導入so庫

1)、AS默認導入so文件放入哪裏? 
放在src/main目錄下面,在 該目錄下創建目錄jniLibs,這個jniLibs目錄就是AS默認的so文件存放的位置,不需要在gradle文件中做其他配置。 
2)、jar包默認放在module根目錄下的libs目錄下 
3)、 如果jniLibs不放在默認目錄下,放在與libs同級目錄下,此時需要在module下的build.gradle文件的android{}中添加如下代碼: 
這裏寫圖片描述

此時設置jniLibs的目錄爲”jniLibs“;當前目錄是module的根目錄!!! 
默認配置:jniLibs.srcDirs (‘src/main/jniLibs’)

65535問題

參考鏈接:http://blog.csdn.net/piscesq329a/article/details/49888477

多渠道打包

a)清單文件中將android:value設置成變量 
這裏寫圖片描述

b)在gradle文件中進行變量定義 
這裏寫圖片描述

c)然後直接使用命令打包即可,會在build/output目錄下生成不同apk。

導入Github中的源碼

1)導入之前需要查看gradle-wrapper.properties文件 
查看依賴版本,可以更改成本地已經存在的版本,避免下載

2)導入工程(Import Project),此時仍然顯示下載,使用任務管理器強制停止AS,到dists/gradle下面找到該工程創建的文件夾,將其中的內容刪除,將其他文件夾中的內容拷入之後,再重新導入,這樣就不再下載

3)導入後,可能會出現如下問題: 
這裏寫圖片描述 
由於已經修改過gradle的版本,所以不會是版本問題,則應該是插件問題, 
到工程根目錄下的build.gradle文件中,修改dependencies中的“com.android.tools.gradle”的版本號,可參考自己工程的版本號!!改完之後,點擊右上角的”Try Again“

4)接下來可能會遇到的問題:build tools的問題 
這裏寫圖片描述 
修改所有Module下的build.gradle文件中的buildToolsVersion版本,改成自 己電腦中有的版本,可參考自己創建的工程;最好和compileSdkVersion一致!

5)接下來可能會遇到的問題: 
這裏寫圖片描述 
解決方案:舊版本使用的倉庫是:mavenCentral(),需要改成最新的jcenter() 
apply plgin是標誌module的類型的,不應該出現在工程根目錄下 的build.gradle中,而且其格式應該使用最新的 
apply from不知道什麼作用,可以刪除!! 
刪除其他不太對勁的東西

6)編譯通過;Reload工程,運行程序,可能出現問題: 
這裏寫圖片描述 
原因:多個module使用了相同的包名

7)接下來的問題:在該類中找不到佈局文件 
這裏寫圖片描述 
原因:由於res有對應的佈局,所以應該是R文件的問題,上個問題中修改包名, 可能多修改了部分內容,此時應該檢查R文件的引用 
解決方案:修改R文件的引用

8)參考鏈接: 
http://blog.csdn.net/onlysnail/article/details/45115093

9)總結:出現的問題大部分是gradle相關的,主要集中在build.gradle中,需要對 gradle有較爲全面的理解

其他問題

AS自帶命令行空指針問題: 
描述:報空指針 
這裏寫圖片描述

原因:由於win10更新了命令行,導致AS無法調用,IDEA有同樣問題 
解決方案: 
打開系統命令行,右擊標題欄選擇“屬性”–>“選項”–>“使用舊版控制檯”,然後重啓系統即可

參考鏈接

Gradle基礎:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/ 
Gradle 修改 Maven 倉庫地址(一勞永逸):http://www.yrom.net/blog/2015/02/07/change-gradle-maven-repo-url/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章