編輯:關於Android編程
Android Studio,自Google2013年發布以來,就倍受Android開發者的喜愛,我們本書,就是基於Android Studio來進行案例演示的,大家都知道,Android Studio的前身是基於IntelliJ IDEA,而在此之前,我們開發Android一直以來都是以Eclipse用ADT插件的形式來開發了,可能也是Android的不斷壯大,Google決定像蘋果的Xcode或者微軟的Visual Studio一樣,也給自家的產品開發一套定制工具,所以Android Studio應運而生,現階段,Android Studio正式版已經更新到2.X版本了,各方面的性能已經很穩定了,這就是我們用它來開發的理由
既然要使用Android Studio,所以我還是建議先看一下官方的介紹,這樣,我們在後面講一些使用方法的時候,就可以輕車熟路了
Android Studio 的核心是一個智能代碼編輯器,可進行高級代碼完成、重構和代碼分析。
這款功能強大的代碼編輯器可幫助您成為更高產的 Android 應用開發者。
新項目向導讓開始一個新項目變得前所未有的簡單。
可使用適用於不同模式(如抽屜式導航欄和視圖分頁器)的模板代碼開始項目,甚至可以從 GitHub 導入 Google 代碼示例。
構建適用於 Android 手機、平板電腦、Android Wear、Android TV、Android Auto 以及 Google Glass 的應用。
Android Studio 內全新的 Android 項目視圖和模塊支持讓應用項目和資源管理變得更加輕松。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxoMyBpZD0="114-用於模擬所有形狀和尺寸的虛擬設備">1.1.4 用於模擬所有形狀和尺寸的虛擬設備
Android Studio 預先配置了經過優化的模擬器映像。
經過更新和精簡的虛擬設備管理器可為常見 Android 設備提供預定義設備配置文件。
1.1.5 Android 版本借助 Gradle 演進
使用同一項目為您的 Android 應用創建多個具有不同功能的 APK。
使用 Maven 管理應用依賴項。
使用 Android Studio 或命令行構建 APK。
1.1.6 總結
這款由 JetBrains 推出並廣受歡迎的 Java IDE 以 IntelliJ IDEA Community Edition 為基礎構建 基於 Gradle 的靈活構建系統 構建變體和多 APK 生成 為 Google 服務和各種設備類型提供擴展模板支持 支持主題編輯的富布局編輯器 可捕捉性能、可用性、版本兼容性以及其他問題的 Lint 工具 ProGuard 和應用簽名功能 內置對 Google 雲平台的支持,可輕松集成 Google Cloud Messaging 和應用引擎1.2 下載安裝
Android Studio的下載還是很簡單的,不光官方可以下載,還有很多國內的資源網站都是可以下載的
官方地址:http://developer.android.com/sdk/index.html
但是這裡還是要注意一下下載的版本
Android Studio安裝包集成了SDK Android Studio安裝包 Android Studio包解壓就能用這裡MAC和Linux平台都是只有一個下載,但是Windows,卻有三個,這裡要說明一下這三個的區別了
前兩個分別是一個帶有SDK,一個沒有,第三個,他不需要安裝,下載下來解壓,就可以使用了,而且他有兩個啟動器,一個32位的,一個64位的
我們以集成了SDK的安裝包為例,來演示一下怎麼安裝,其實也不難,只要你雙擊打開安裝包,一直點下一步,中途會提示你是否導入項目,選擇SDK的路徑,下載一些需要的SDK支持包,就可以了,然後,我們的Android Studio就安裝完成了
1.3 配置設置
一款好的IDE,強大的前提下,還得符合自己的編碼風格,所以,我們要對她進行一些設置,這樣,才能體驗到他的強大性
1.3.1 主題
Android Studio的黑色主題還是非常的符合程序員的風格的,所以很多人也會選擇這個風格,我們進入設置(工具類上扳手圖標),這裡Theme默認是Default我們這裡選擇Darcula,然後點擊Apply就可以應用這個黑色主題了
1.3.2 編碼風格
字體大小我們在編寫代碼的時候,一些字體顏色大小之類的都是要值得注意的地方,包括代碼顯示行數也能幫助我們調試bug
我們進入Settings-Editor-Colors & Fonts-Font下,默認的兩種主題我們是沒辦法修改的,我們需要自定義一個主題然後就可以修改了,操作如下: 我們點擊Save As,提示你命名,你隨便寫個名字,就可以看到如圖1.3.2所示
這裡的Primary font是字體,你可以選擇自己喜歡的字體,Size為字體大小,Line Spacing是行距
當然,你也可以在Colors & Fonts目錄下看到很多的設置,比如Consale Font控制台字體大小什麼的,這個這裡就不多贅述了
自動導包
XML手動導包還是有點麻煩的,我們本著能省就省的原則,設置一下自動導包的功能,路徑為:Settings-Editor-General-Auto Import選項下,勾上以下幾個選項
show import popup JAVA
insert imports on paste選擇none show import popup optimize imports on the fly add unambiguous imports on the fly C/C++
show import popup顯示代碼行數
這個功能也是很重要的,我們可以勾選Settings-Editor-General-Appearance-show line numbers就可以了
1.3.3 智能化
這裡我們可以來設置Android Studio的智能化來設置快捷鍵,自動代碼提示,自動代碼補全等功能
快捷鍵
Android Studio快捷鍵相較於Eclipse還是做了一些改動的,但是,Google做的很靈活,他提供了快捷鍵的選擇,我們進入Setting-keymap裡選擇Eclipse,熟悉的快捷鍵就回來了
代碼自動提示
代碼自動提示設置起來也很方便,Eclipse上,你鼠標懸浮在代碼上會彈出提示框,但是再Android Studio默認是沒有的,因為如果電腦配置不是很高的話,這樣會讓界面很卡,如果你想打開這個功能我們可以進Settings-Editor-General,把show quick doc on mouse move勾上就可以了
不區分大小寫
Android Studio在默認是區分大小寫的,也就是你輸入代碼的時候如果你輸入小寫,可能代碼不會提示,當然,我們也是可以設置不區分的,在Settings-Editor-General-Code Completion中,Case sensitive completion選擇none就可以了
取消載入
這個功能我覺得特別棒,比如我正在做A的項目,然後關掉Android Studio,等下次進來的時候打開Android Studio他會自動載入這個A項目,但是我其實想去做B項目的,所以我們取消這個功能,讓他每次都進入主頁供我們項目選擇,也很簡單,進入Systems-System Settings下,把Reopen last project startup的勾去掉即可
1.3.4 Log
VERBOSE bfb9b9 DEBUG 0374c0 INFO 4bc332 WARN c6c61e ERROR FF0006 ASSERT a00308在開發中,Log是必不可少的一個環節,他可以反饋很多程序中的信息來幫助我們開發以及調試bug,所以現在網上也是有很多log的框架和工具類,在Android Studio中默認的Log其實不算是很清晰,我們可以自己給Log設置一些顏色來改變他的反饋交互,我們進入Settings-Editor-Colors & Fonts-Android Log下,我們可以看到各個等級的Log,只要我們把Use Inberited attributes的勾去掉,就可以更換顏色了,這裡,提供一套我的配色方案供大家參考
1.3.5 導出/導入Settings
Import Settings 導入設置 Export Settings 導出設置Android Studio每次安裝都要設置這麼多配置,著實讓人頭疼,這就又引出Android Studio的一個人性化的設計了,他可以把設置到處成jar包的形式保存起來,你要是新安裝的Android Studio,可以直接導入這個jar,就不用這麼浪費時間的去配置了,方法很簡單,我們菜單欄-File
1.3.6 插件
Android Studio的插件還是非常方便我們進行開發的,不得不在一次感歎Android Studio的強大,比如Gsonformat,butterknife等,我們這裡稍微介紹一下安裝插件的幾種方式,我們進入Settings-Plugins
install letBrains plugin… 官方插件 Browse repositories… 第三方插件 install plugin from disk… 本地插件這裡顯示的是你安裝的插件列表,下面三個按鈕分別是
官方/第三方安裝
我們點擊install letBrains plugin/Browse repositories,這裡是一個搜索頁面,我們以Gsonformat為例,搜索Gsonformat。然後點擊install,安裝完成之後,我們就可以在列表中看到Gsonformat的身影了,第三方插件方法是一樣的
本地插件安裝
安裝本地插件其實就是導入,插件以jar或者zip的形式存在,我們只要點擊install plugin from disk,我們選中插件即可
1.4 Gradle
Gradle是什麼?Gradle是Android Studio項目的構建系統,是以 Groovy 語言為基礎,面向Java應用為主,基於DSL(領域特定語言)語法的自動化構建工具,所以這就出現了Android Studio的項目結構和Eclipse的不一樣了,我們具體來看一下,我們在項目的Gradle Scripts文件下可以看到
圖1.4.1
build.gradle 構建文件 build.gradle 模塊構建文件 gradle-wrapper.properties Gradle相關配置文件 proguard-rules.pro 混淆文件 gradle.propertles 配置文件 setting.gradle 設置配置文件 local.propertles sdk,ndk配置文件這些就是我們項目構建之後的一些Gradle配置清單,我們來具體的了解一下這些文件夾是干什麼的
而我們所要了解的也不是說全部,只要了解一下構建文件和模塊構建文件就可以,我們會看一下構建文件裡面都有些什麼
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
jcenter() 存儲庫 可以更換 classpath 依賴的Gradle版本 repositories 所有項目的存儲庫這裡面,就是一個標准的Gradle構建系統的代碼,我們來看
我們再來看一下模塊構建系統
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.lgl.helloandroid" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' }
apply plugin :聲明一個工程的類型 compileSdkVersion : 最高API buildToolsVersion : 編譯工具版本 applicationId : 包名 minSdkVersion : 最小API targetSdkVersion : 編譯版本 versionCode : 版本號 versionName: 版本號(細分) buildTypes: 構建類型 minifyEnabled : 是否壓縮apk proguardFiles getDefaultProguardFile: 混淆配置文件 dependencies : 依賴配置 compile fileTree:依賴二進制文件 compile : 遠程二進制依賴這裡,我們就要多關注一下了
1.5 多渠道打包
國內的Android市場那麼多,為了統計每個渠道的下載及其它數據統計,就需要我們針對每個渠道單獨打包,如果讓你打幾十個市場的包豈不累死了,不過我們上節看了Gradle,這就不算什麼事情了,這裡也就衍生出一個新詞匯——多渠道打包,顧名思義,就是一鍵打包多個渠道,關於多渠道打包使用的平台和工具網上也是有比較多的,貌似用的比較多的是友盟,詳情大家自己去友盟的官網上看看吧!
AndroidManifest.xml中修改以下值:
meta-data修改以下的樣子:
其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定義配置的值。
build.gradle文件就利用productFlavors這樣寫:
productFlavors { wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } c360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "c360"] } uc { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "uc"] } }
其中[UMENG_CHANNEL_VALUE: “wandoujia”]就是對應${UMENG_CHANNEL_VALUE}的值。
其實上面的代碼還是有點多余,我們可以縮減
productFlavors { wandoujia {} baidu {} c360 {} uc {} productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } }
1.5.1 傳統打包方式
我們來熟悉一下傳統的打包方式,用過Eclipse的同學應該知道,在Eclipse裡,我們只要Export Android就可以打包一個項目,其實Android Studio的方式也是類似,菜單欄——Build——Generate Signed APK
這裡要填寫的其實和Eclipse差不多的,首先是Key Store的路徑,我們沒有,所有點Create new來創建
我們把路徑,密碼什麼的填好之後,按OK,現在他會幫我們自動填充了,如果沒有,你就自己輸,然後next,然後finish就可以了
我們可以到app目錄下找到我們打包的apk,同時也可以在我們指定的位置找到我們的簽名文件xxx.jks
前段時間一直在看有關Binder的知識,最近剛好有時間,總結一些一些知識,希望和大家交流學習。說起Binder我相信大家學android開發的多多少少都對binder有些
近來項目有個需求,要做個和QQ空間類似的菜單欄透明度漸變和下拉刷新帶有阻尼回彈的效果。於是花點時間動手試了試,基本上達到了QQ空間的效果,截圖如下:通過觀察QQ空間的運行
RxAndroid是RxJava的擴展, 可以優雅地處理異步請求. 以前的文章講述過一些, 這次再補充些內容, 熟悉RxAndroid的使用方法.本文源碼的GitHub下
在目前的軟硬件環境下,Native App與Web App在用戶體驗上有著明顯的優勢,但在實際項目中有些會因為業務的頻繁變更而頻繁的升級客戶端,造成較差的用戶體驗,而這也