1. 程式人生 > >AndroidStudio專案匯入的那些事

AndroidStudio專案匯入的那些事

公司有一個老專案,曾經因為市場的原因擱置了,最近重新探究決定重啟該專案,當然開發任務就由我來主持負責。拿到老專案第一件事,不用說就是先將老專案匯入到開發環境中,然後看看具體架構和業務,該拋棄的拋棄該優化的優化。

工欲善其事,必先利其器

對於AndroidStudio的安裝和使用在這裡順便也重申一下,有些童鞋喜歡重灌這些開發環境,用以時常給自己沖沖血,一般不是大變化建議還是不用太頻繁安裝為好,畢竟開發才是首要任務。

第一次啟動AndroidStudio很慢

Android第一次啟動時在某種情況下會發現特別慢,這裡的某種情況是多重因素的結合:

  1. 沒有梯子。
  2. 寬頻不好。
  3. 電腦老舊。

因為AndroidStudio第一次啟動時要進行檢查SDK更新,所以上邊的第一個條件也算是致命點,程式設計師不會搬梯子有點說不過去,沒有梯子到後邊啟動專案時下載gradle也是個麻煩事。

當然沒有梯子可以採用禁止檢查SDK更新也能順利啟動,解決辦法:
在AndroidStudio安裝目錄的bin資料夾下找到idea.properties檔案,任意記事本工具開啟並在文末新增disable.android.first.run=true,然後儲存,隨後就能順利啟動AndroidStudio了。

idea.propertie檔案位置:
禁止檢查SDK圖0

idea.propertie檔案新增禁止SDK檢查更新:
禁止檢查SDK圖1

AndroidStudio執行卡、慢

這個問題有點牽強了,碰到老人機硬性條件怎麼處理,我想只能換電腦換硬碟擴記憶體了吧,這裡給的方案是在硬性條件的基礎上進一步提升軟性條件進而提升效能。

AndroidStudio每次更新從google出廠時,google在AndroidStudio記憶體開銷上會定義一些引數,他認為我們的機器都很棒,所以這些引數相應都不高,然後試試並非如此,哈哈。這些引數在哪兒設定呢?在AndroidStudio安裝目錄的bin檔案下(和上邊一樣)找到studio.exe.vmoptionsstudio64.exe.vmoptions這兩個檔案,前一個是針對32位PC的,後者是針對64位的,如果你的電腦是64位只需要將後者內容中的相關引數調大即可。

studio64.exe.vmoptions檔案的位置:
AndroidStudio解決卡頓圖0

studio64.exe.vmoptions檔案內容引數調整例項:
AndroidStudio解決卡頓圖1

AndroidStudio常用外掛

以下是個人總結的開發過程中常用的外掛:

  • GsonFormat
    快速將json字串轉換成一個Java Bean。
  • Android ButterKnife Zelezny
    配合ButterKnife實現註解,從此不用寫findViewById。
  • Android Parcelable code generator
    JavaBean序列化,快速實現Parcelable介面。
  • GenerateSerialVersionUID
    實現Serializable序列化bean中的serialVersionUID。
  • Lifecycle Sorter
    可以根據Activity或者fragment的生命週期對其生命週期方法位置進行先後排序,快捷鍵Ctrl + alt + K。
  • CodeGlance
    在右邊可以預覽程式碼,實現快速定位。
  • FindBugs-IDEA
    查詢bug的外掛,Android Studio也提供了程式碼審查的功能(Analyze-Inspect Code…)。
  • Material Theme UI
    新增Material主題到你的AS。
  • Markdown Navigator
    Markdown實時預覽外掛。
  • LayoutFormatter
    一鍵格式化你的XML檔案的Android Studio外掛。

AndroidStudio常用快捷鍵

以下是個人總結的開發過程中常用的快捷鍵:

ctrl + shift + 空格                    程式碼補全
ctrl + shift + enter                   語法結構匹配
ctrl +alt + 空格                       程式碼提示。
ctrl +shift +/                         段註釋
ctrl + shift + ?                       xml註釋
ctrl + /                               行註釋
ctrl + alt + L                         程式碼格式化
ctrl + alt + O                         格式化類庫
alt + enter                            引入庫
ctrl + j                               自動程式碼結構補全
Ctrl+P                                 方法引數提示
shift + F6                             本類或本類中屬性、方法重新命名
ctrl+shift+r                           全工程內部屬性、方法替換
ctrl + shift + u                       大小寫轉換。 (用於全域性或靜態變數設定)

/**************搜尋**************/
ctrl + f                               類中搜索
雙擊shift                              全域性搜尋檔案
ctrl + shift +f                        全域性任意搜尋(有些時候與搜狗輸入法衝突,可將輸入法相關快捷鍵給遮蔽掉)
ctrl + N                               搜尋類
ctrl + shift + N                       搜尋檔案
ctrl + shift +alt +N                   搜尋方法或變數

/**************程式碼定位***********/
ctrl + alt + 左方向(右方向)           程式碼檢視時返回上一處,回退下一處。
Alt+ left/right                        切換程式碼檢視
Alt+ Up/Down                           在方法間快速移動定位

/**************移動複製***********/
Ctrl+Shift+Up/Down                     整塊程式碼向上/下移動。(一行,或一個介面實現或一個方法)
ctrl + y                               刪除整行。
ctrl + D                               複製該行到下一行。
ctrl +c 、ctrl +v                      整行復制和貼上

專案匯入遇到的問題及解決方案

專案匯入過程常見的問題有以下幾個:

  • 老專案的支援的SDK編譯版本在新環境下要重新下載。
  • 相容包v4或v7在新環境下預設的與SDK編譯環境不一致。
  • gradle版本和gradle外掛版本不一致,甚至起初並沒有gradle環境需要全新支援(eclipse)。
  • 匯入過程中網路環境問題。
  • 老專案本身的程式碼問題,專案中的庫在新環境下的相容問題。

認清幾個概念

1.主Module(Module和model不一樣,前者指模組,後者指模型,後者主要用於放一些實體類bean)中的build.gradle,先放一張圖:
主module下的build.gradle

  • compileSdkVersion
    編譯所用的Android SDK Platfom的大版本號,假如此版本號比較低,則編寫應用時某些新的方法(Api)不能使用,推薦最新的,時刻遮蔽掉官方準備淘汰的一些API。
  • buildToolsVersion
    專案構建的版本號,即Android SDK Build-Tools的版本號,其大版本號要>=compileSdkVersion,否則不允許構建,推薦在大版本號和compileSdkVersion保持一致同時選擇Revision最高的。
  • minSdkVersion
    允許安裝此應用的手機系統最低版本號。
  • targetSdkVersion
    目標系統的版本號,假如說設定為Android4.4的版本號(ApiLevel為19),則在Android6.0的系統上安裝此應用則不能使用執行時許可權。此處結合實際情況設定,推薦採用和compileSdkVersion保持一致的版本號。
  • appcompat-v7
    Android Support支援庫,也叫Android相容包,主要作用能在低版本的Android系統中執行高版本SDK所帶來的新特效(特定框架元件、UI元素),目的是全平臺檢視效果保持一致。末尾大版本號和compileSdkVersion保持一致,保證能夠採相容到全平臺,小版本號可參閱官方文件:https://developer.android.com/topic/libraries/support-library/revisions?hl=zh-CN

    Android Support支援庫常見是v4和v7(依賴於 v4 支援庫),還有v8、v13、v14、v17等。v4庫專案引入預設支援,v7最常用,其他的根據實際情況自行新增。注意:Support庫的大版本號要與compileSdkVersion的大版本號相同,且所有的庫的版本號要相同。

    各類支援庫的區別:
    v4:最低支援android1.6,包含ViewPager、Fragment等。
    v7:最低支援android2.3,v7依賴於v4,包含ActionBar、receyclerview等設計支援庫(Material Design):提供了一些符合設計風格的控制元件,比如懸浮操作按鈕。
    其他支援庫參考:https://developer.android.com/topic/libraries/support-library/features?hl=zh-CN

2.專案中gradle配置:

  • gradle版本
    gradel是androidstudio預設的構建工具,主要用於專案的構建、依賴、打包、釋出等,每次androidstudio版本更新時順帶會把gradle版本也進行更新。
  • gradle構建外掛版本
    gradle是在maven、ant等前輩構建工具的基礎上補齊他們的短板,所運用的平臺也不僅僅是android,所以為了更好的服務於android開發,官方根據gradle特定版本範圍單獨開發一個用於構建android專案的gradle外掛。

gradle版本設定:
gradle版本設定

gradle構建外掛版本設定:
gradle構建外掛版本設定

gradle和gradle構建外掛版本對應關係:
gradle和gradle構建外掛版本對應關係

3.SDK Manager中相關:

  • Android SDK Platfom
    Android開發API支援平臺,AndroidStudio初次安裝時預設會提示下載最新的SDK,強烈推薦下載安裝穩定版最新的版本。compileSdkVersion所對應的就是這裡已經下載安裝過的某個版本號,一般選擇的是穩定版最新的。
  • Android SDK Build-Tools
    Android SDK構建工具,包含:aapt工具,aidl工具等。推薦下載安裝最新的。buildToolsVersion所對應的就是Android SDK Build-Tools的版本號,一般大版本號和compileSdkVersion保持一致同時選擇Revision最高的。
  • Android SDK Platform-Tools
    針對pc端和移動端進行互動的一些工具:比如adb工具(通過該工具pc端獲取移動端log資訊),sqlite3工具(通過該工具查詢移動端資料庫資訊)。結合實際情況更新。
  • Android SDK Tools
    針對pc平臺下使用的工具:比如模擬器,.9patch工具,效能追蹤視覺化工具traceview。結合實際情況更新。

解決方案

通過對以上概念的認識,匯入老專案也就是分分鐘的事了,通常做三件事即可:

  • 備好梯子,沒有梯子那就做搬運工吧。
  • 主Module中的build.gradle,buildToolsVersion、targetSdkVersion、appcompat-v7大版本號依據compileSdkVersion設定,小版本通過下載選擇最新的或者依賴官方最新的(結合情況來),minSdkVersion自己看情況設定。
  • gradle構建外掛版本設定結合與gradle版本的關係設定,gradle的版本選擇當前市面較新的(結合當前AndroidStudio的版本)。

通過上邊的三步一般都能夠解決了,其實還有更簡單的方法就是新建一個應用,將老專案中的這些引數全部改成和新專案中的一樣,哈哈。然後Sync,必要時Clean、Rebuild一下,當然還有程式碼上的問題還需要慢慢除錯解決。

有些時候網路慢的原因也可能是google在作怪,可進入settings>Plugins將google analytic upload外掛對勾去除,重啟androidstudio.

修改包名便捷方法

有些時候針對老專案包名並不適合,我們需要進行調整,如果單純想修改專案某個目錄的話可以直接重名專案中的某個Package,如果想調整專案應用的包名,除了修改專案整個包名,還要修改專案的applicationId與包名保持一致,這樣打包的應用才能算一個全新的應用。

兩步走:
1.AndroidManifest修改專案包名
修改包名

2.主Module中的build.gradle中修改applicationId,並Sync。
修改applicationId

以上是針對專案匯入過程的一些總結,後邊若再有其他問題再來補充吧,至此告一段落,打完收工。