【聲明】
歡迎轉載,但請保留文章原始出處→_→
生命壹號:http://www.cnblogs.com/smyhvae/
文章來源:http://www.cnblogs.com/smyhvae/p/4392611.html
【系列】
第一次使用Android Studio時你應該知道的一切配置
第一次使用Android Studio時你應該知道的一切配置(二):新建一個屬於自己的工程並安裝Genymotion模擬器
第一次使用Android Studio時你應該知道的一切配置(三):gradle項目構建
【正文】
都說了放假不休息,奏是這么任性!!!
【開發環境】
物理機版本:Win7旗艦版(64位)
Android Studio版本:1.1正式版
一、新建工程:
1、新建一個Project:
打開Android Studio,新建一個Project,界面如下:
上圖中,設置好工程名和路徑之后,接下來可以一路next:
二、Android Studio使用方法;
1、修改項目結構視圖:
Project新建完了以后,默認的結構如下:
上圖可以看到,AS的目錄結構和Eclipse中有很大區別,我們看下面的這張表格就一目了然了:
當然了,如果想切換成和Eclipse中類似的視圖,點擊左上角進行切換視圖就行了:
切換之后,視圖如下:
上圖中,箭頭處的app其實是一個module,關於module的概念,稍后會有解釋哦。
2、工具欄的常用功能:
在AS的工具欄有幾個常用的按鈕,分別是Gradle同步、AVD Manager、SDK Manager、DDMS,如下圖所示:
解釋如下:
- Gradle同步:在你項目運行或者更改Gradle配置的時候都要點擊下這個按鈕,會下載相應的依賴
- AVD Manager:模擬器管理
- SDK Manager:就是管理你的SDK版本
- DDMS:即 Dalvik Debug Monitor Service,Dalvik調試監控服務。
3、導入第三方jar包:
eclipse中導入jar包是先將jar包復制到工程文件中,然后add to build path,但是在Android studio中可不是這樣的。在Android studio中導入jar包的方法是:(以谷歌的gjson.jar為例)
將gson-2.3.jar文件拷貝到工程文件的libs目錄下:
導入之后,選中jar包,然后點擊下圖中箭頭處的按鈕:(synchronize:同步,可以理解為刷新)
搞定。
三、安裝genymotion模擬器:
1、Genymotion的安裝:
Genymotion無疑是目前最快最好用的模擬器。官網下載地址:https://www.genymotion.com/
先注冊,然后下載,安裝VirtualBox最簡單的方式就是下載包含VirtualBox的Genymotion包,如下圖紅框部分所示:
下載完成后,開始安裝。然后運行Genymotion軟件,會提示你需要創建虛擬設備,點擊yes按鈕開始創建虛擬設備:
使用之前注冊的賬號進行連接:
然后選擇其中一個版本的模擬器:
當然了,如果要在模擬器上運行程序,還要確保模擬器加載了Android SDK:
備注:如果啟動模擬器時出現下面的錯誤:
升級電腦顯卡驅動就行了。
這樣,我們的模擬器就建好了,並且可以啟動起來。接下來要將模擬器和Android Studio相關聯。
2、將模擬器Genymotion和Android Studio相關聯:
Genymotion官網提示有兩種方法(如下圖所示),一種是在線安裝,另一種是離線安裝。方法已經很清楚了,我就不截屏演示了哈。
插件安裝好之后,緊接着重啟軟件,讓新加載的插件生效。重啟軟件Android Studio后,選擇菜單欄“View--Toolbar”,讓工具欄顯示出來,可以看到工具欄多了個Genymotion Device Manager的圖標:
點擊這個圖標,彈出如下界面:
上圖中,加載我們之前安裝好的Genymotion文件夾即可。然后再點擊這個圖標,彈出如下界面:
大功告成。
緊接着,在模擬器上運行這個程序:
運行效果如下:
上圖中,可以看到,我編譯的版本是API 19,但模擬器的版本是API 16,但是程序依然可以運行,說明Android Studio在版本的兼容問題上做的很好。但是之前用IntelliJ IDEA,就必須要求編譯的版本和模擬器(真機)的版本要保持一致。
四、新建一個module形式的第三方library:(引入module的概念)
再來看一下這張表:
看完圖,應該知道module的概念了吧。細心的小伙伴可以發現,application的module的有一個手機圖標:
1、新建一個module作為library:(以StickyScrollViewItems這個Library為例)
注:StickyScrollViewItems的作用是:子控件可懸停的ScrollView(當子控件滾動到頁面頂端的時候固定在頂部)。
在AS中,我們可以新建一個module作為library來使用,操作如下:
上圖中,在當前的project中新建一個module,然后彈出如下界面:
上圖中,選擇module的類型為Android Library,然后繼續:
上圖中,既然這個module是一個libray,就不需要Activity了。
上圖中箭頭處的兩個module:第一個是application的module,第二個是lirary的module,可以看到,他們倆的icon圖標長得不一樣。
2、將GitHub上下載好的StickyScrollViewItems-master壓縮包中的部分文件拷貝到lirary的module中:
操作如下:
(1)將StickyScrollViewItems-master\StickyScrollViewItems-master\library\res\values目錄下的attrs.xml文件拷貝到lirary的module中的values目錄下。
(2)將StickyScrollViewItems-master\StickyScrollViewItems-master\library\src\com\emilsjolander\components\StickyScrollViewItems目錄下的StickyScrollView.java文件拷貝到lirary的module中的java目錄下。
最終效果如下:
總結:新建一個module形式的第三方library的通用做法是:
(1)新建一個library形式的module,刪掉這個module中src/main目錄里面的所有文件(包括刪掉java、res、AndroidManifest.xml)
(2)復制第三方庫的AndroidMainfest.xml、res、src文件(夾)到庫目錄的src/main目錄中
(3)將src/main目錄下的src目錄重命名(Shift+F6)為java
(4)刪除庫module中的build.gradle文件(注意不要修改錯了地方)中的dependencies和release模塊
3、將application的module依賴上library的module:
操作如下:
上圖中,右鍵選中app,選擇“Open Module Settings”,彈出如下界面:
按照上圖的步驟,在Dependencies標簽中,添加"Module dependency",彈出如下界面:
上圖中,將StickyScrollViewItems的module導入一下就行。
依賴成功,於是,我們在布局文件中是可以看到它的代碼提示的:
下面來測試一下。
4、測試library這個module的可用性:
將activity_main.xml修改為如下代碼:
1 <com.smyhvae.stickyscrollview.StickyScrollView 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:fadingEdge="none" 5 android:overScrollMode="never" 6 android:fillViewport="true" 7 xmlns:android="http://schemas.android.com/apk/res/android"> 8 9 <LinearLayout 10 android:layout_width="match_parent" 11 android:layout_height="wrap_content" 12 android:orientation="vertical"> 13 14 <View 15 android:layout_width="match_parent" 16 android:layout_height="200dp" 17 android:background="@color/blue"/> 18 19 <View 20 android:layout_width="match_parent" 21 android:layout_height="100dp" 22 android:background="@color/red" 23 android:tag="sticky"/> 24 25 <View 26 android:layout_width="match_parent" 27 android:layout_height="100dp" 28 android:background="@color/green"/> 29 <View 30 android:layout_width="match_parent" 31 android:layout_height="100dp" 32 android:background="@color/white"/> 33 34 <View 35 android:layout_width="match_parent" 36 android:layout_height="300dp" 37 android:background="@color/purple"/> 38 39 <View 40 android:layout_width="match_parent" 41 android:layout_height="100dp" 42 android:background="@color/yellow"/> 43 44 </LinearLayout> 45 </com.smyhvae.stickyscrollview.StickyScrollView>
上方代碼中,我們引入了StickyScrollView這個module作為library,核心代碼是第23行,我們為紅色的View添加了android:tag="sticky"這個標簽,於是它將具有懸停的屬性。然后直接運行程序就行了。
這一段的整個工程文件如下:(大家可以導入到自己的AS中運行看一下效果)
鏈接:http://pan.baidu.com/s/1eQ8epsY
密碼:k9i1
五、刪除某個module:
上圖中,如果我想刪掉StickyScrollView這個module,該怎么辦呢?辦法是:選中StickyScrollView這個module,並點擊右鍵,發現沒有delete選項,沒有關系,我們選擇上圖中紅框部分的"Open module Settings"選項,彈出如下界面:
上圖中,點擊箭頭處的減號,就可以刪掉了。同時我們要去掉app這個module對它的依賴:
然后會發現,StickyScrollView這個module的圖標消失了:
上圖中,現在右鍵它,就可以delete掉了,而且是從硬盤上直接delete掉:
六、刪除文件的小技巧:(安全刪除)
如果我們想刪掉某個文件,可以直接右鍵,然后delete,但是Android Studio有一個更人性化的體驗。比如我想刪掉布局文件時:
上圖中,點擊delete進行刪除, 彈出如下界面:
上圖中,如果將紅框部分打鈎,然后點擊OK,軟件則會提示你,有哪些地方用到了這個文件:
上圖顯示,有一個地方用到了這個文件,點擊上圖中的"View usages",就可以看到詳細的情況了:
如果你執意要刪除,單擊上圖中的箭頭位置即可,怎么樣?用戶體驗還不錯吧?
怎么?還不滿意啊?那我明天繼續戰斗,敬請期待~~~
備注:
本人的第四段中,通過新建一個module作為library,將StickyScrollViewItems這個Library引用進來了。整個工程文件在第四段的末尾也給出了下載鏈接,其中的gradle文件代碼如下:(gradle將在下一篇文章中講到)
application的build.gradle:
1 // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 3 buildscript { 4 repositories { 5 jcenter() 6 } 7 dependencies { 8 classpath 'com.android.tools.build:gradle:1.1.0' 9 10 // NOTE: Do not place your application dependencies here; they belong 11 // in the individual module build.gradle files 12 } 13 } 14 15 allprojects { 16 repositories { 17 jcenter() 18 } 19 }
app的build.gradle:
1 apply plugin: 'com.android.application' 2 3 android { 4 compileSdkVersion 19 5 buildToolsVersion "21.1.1" 6 7 defaultConfig { 8 applicationId "com.smyhvae.helloworld" 9 minSdkVersion 14 10 targetSdkVersion 19 11 versionCode 1 12 versionName "1.0" 13 } 14 buildTypes { 15 release { 16 minifyEnabled false 17 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 } 19 } 20 } 21 22 dependencies { 23 compile fileTree(dir: 'libs', include: ['*.jar']) 24 compile project(':stickyscrollview') 25 }
library這個module的build.gradle:
1 apply plugin: 'com.android.library' 2 3 android { 4 compileSdkVersion 19 5 buildToolsVersion "21.1.1" 6 7 defaultConfig { 8 minSdkVersion 14 9 targetSdkVersion 19 10 versionCode 1 11 versionName "1.0" 12 } 13 buildTypes { 14 release { 15 minifyEnabled false 16 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 17 } 18 } 19 } 20 21 dependencies { 22 compile fileTree(dir: 'libs', include: ['*.jar']) 23 }