(1 條消息)Android studio的坑你踩了多少個了?
一個是近幾天被Android studio快坑死了,另外也過來看看是Android studio的鍋還是只是我不會。
第一,build的速度,聽說2.0快了很多,然而,個人體驗依舊很慢,依舊是hard day,還不包括由於牆導致的無法build問題(這個也是坑了好多次後才會的)第二,模擬器的速度,Google號稱提速50倍,但是實際體驗感覺依舊被genymotion完爆,是比以前的好了,但是用的時候現在會卡頓不知道是咋回事,genymotion以前就都不會,是不是又該裝回genymotion了。第三,logcat顯示問號。經常logcat的包名顯示是問號,有啥困擾的就不說了,按照網上的什麼enable adb那個的,但是有時可以有時不行,不行的時候真心想砸電腦(好像不關電腦啥事)第三,代碼沒反應,有時候,修改了代碼,但是執行了還是原來的。剛開始也是被坑的不行,以為自己代碼錯了,後來通過toast和logcat才了解是之前的代碼,(吐槽下,用chrome也會,但是那是緩存,清除下就行了),雖然我可以clean就行,但是,每次都clean的話,有點過分了吧,更何況build還那麼慢。而且,我最糟糕的一次是clean還不行,還rebuild,也不行(當然,前提是關閉了程序的了)然後裝我新手機上了,還不行,最終在模擬器,把原來的卸載,加上之前的clean rebuild才行。如果是緩存,請告訴我在哪,咋設置。第四,還是logcat,顯示長度受限。「多虧」了後台伺服器太過「勤快」,我就申請一條詳情數據,拋給我幾千長度的json字元串,一般json都是放小工具格式化下,才好分析的,所以,我暫時的處理是拆成兩段輸出。個人感覺是可以設置的,求告知。
第四,模擬器,剛被坑的,已經被坑得不行不行的了,程序強退,然後,習慣性的看logcat,然而,並沒毛輸出,我以為看錯了,繼續運行,繼續沒輸出。我以為是某個比較奇葩的錯誤才不會拋出的。能想像我在漫天的代碼一步一步調試,然後在內部代碼里的一句int nend=end;//此處end為14,然後到這一步,跳不下去了,直接跳到其他地方去了,直接傻眼了。最後,通過一句設置view為空,然後調用他的方法,發現沒拋出異常才確認是logcat掛了,然後,到底是Android studio的問題或者其他依舊不知道,重啟了n遍電腦,差點沒重裝電腦,重裝studio的時候,常識性的裝在真機,才發現logcat可以了,然後,我把之前的模擬器關了,開其他模擬器,問題解決。第五,提示你資源重複,其實有時候並沒有,有時候要clean,rebuild挺多遍的才好,不過這點相對好點,至少你知道有問題。補充:回去換回genymotion,感覺,這個話題可以改成android自帶模擬器的坑了。換回genymotion,build基本就很快了,幾百ms正常,logcat顯示問題,最後應該可以確定是在紅米note2上(還會無緣無故多好多的調試信息),代碼沒反應的,genymotion好像還真沒遇到過,顯示長度受限的,雖然沒解決,但是速度快了,每次打斷點,debug一下,要殺信息沒有的,而且還更多,都不用log信息了。(發誓再也不用android 自帶的模擬器了。。T_T)
關於第一點。
主要是gradle的問題,掛代-理就快了,而且Android studio的代-理(可以影響到內置的git)和gradle的代-理是獨立的哦,gradle代-理需要在gradle.properties裡面單獨設置。(最穩妥的辦法)
那麼可不可以不用代-理呢?也是可以的:
1、gradle-wrapper.properties裡面將路徑指向本地已經下載好的gradle的zip,比如windows下distributionUrl=file:///C:/Users/xxx/gradle-3.5-all.zip
2、在Android studio設置裡面把gradle的路徑設置死
3、在build.gradle中,將jcenter()替換成maven { url http://maven.aliyun.com/nexus/content/groups/public/ } ,使用阿里的源。
這樣你的每次的編譯速度就會很快了,而且在C:Usersxxx.gradlewrapperdists下面也不會有隨機名字的文件夾出現了。
不要用Offline work哦,新的gradle插件會無法下載的。
關於第二點。
需要用到intel haxm,需要bios裡面開啟支持,而且要在sdk manager裡面下載安裝
和每個Android版本的x86鏡像。不過,還是真機好用(手動滑稽)
補充一點
關於sdk manager,在設置裡面將代-理設置成http://g.cn:80,下載速度飛起哦,比其他的國內開源鏡像不知道高到哪裡去了。
補充一點2
發現gradle編譯卡住了,我想修改gradle設置怎麼辦?Android studio裡面停止build的叉叉好像點了沒反應,那麼怎麼強制停止build呢?
打開任務管理器,按佔用內存排序,前幾名應該有一到多個java進程,將它強行結束,Android studio的build就停止了,然後就可以重新修改gradle設置,然後重新編譯了。
有時候,clean 或者重啟一下,比什麼都好使。
首先,build不是Android Studio負責而是gradle負責。
然後我補充一個,project structure改依賴時,Kotlin對應的那三行每次都會被搞成一行,然後立即build fail。Fuck Android Studio本文羅列出了Android Studio有用的提示、技巧、快捷方式和參考資源,提高整體效率和操作性能。
顯然,還有很多優化、快捷方式,但為了保持這篇文章的簡短,限制為50個。
本文以MacOS X操作Android Studio為例,與Windows / Linux不一致的地方已經標註。
一、可視化
1、Android
Logcat的材料顏色主題(Material Colors theme)
要更改Android Studio Logcat,您需要依次點擊:Preferences → Editor → Colors
Fonts → Android Logcat,然後更改每種類型日誌的前景顏色。
注意,此處Perferences在Windows / Linux 是Settings。
2、防止Android Studio Logcat崩潰,應清除當前應用程序的日誌。
要做到這一點,您需要到Android Monitor面板在右側下拉列表中選擇Edit filter configuration。
3、將您的IDE(IntelliJ / Android Studio)應用正確的代碼樣式。
依次點擊Preferences → Code Style → Java,在Scheme下拉列表中選擇您的代碼樣式(或設置一個新的代碼樣式)。
有2款風格特別值得一提:
Square Java Code Styles with Android
Google Java Code Style
4. 使用分屏可提高效率。
要打開此功能,需要在主屏幕的選項卡上單擊滑鼠右鍵,然後選擇Split Vertically / Horizontally 。
但為了儘可能高效,我們需要設置一個自定義鍵盤的快捷方式。要做到這一點,依次點擊Preferences → Keymap 並找到Split Vertically。然後打開上下文菜單並單擊 Add Keyboard Shortcut。
5、無干擾模式(Distraction Free Mode)
可以依次點擊: View → Enter Distraction Free Mode來開啟無干擾模式。
在無干擾模式下,編輯器佔用整個IntelliJ IDEA框架,而沒有任何編輯器選項卡和工具按鈕,代碼按中心對齊。[IntelliJ
Idea查看模式]
6. 使用活動模板
可以使用快捷方式:cmd + j(Windows / Linux:ctrl + j)。
可以使用許多已定義的模板,像Toasts 或if條件。
可以使用自己的自定義模板。
還可以參考IntelliJ IDEA文檔。
二、快捷方式和有用的命令
1.最好的、最有用的命令是Search for command:
cmd + shift + a (Windows / Linux:ctrl +
shift + a)。
當你想關閉當前選項卡,不知道該怎麼辦時,只需鍵入:close你會得到一個正確的快捷方式/命令。
2.從最近的複製/粘貼中選擇(管理剪貼簿):
cmd + shift + v(Windows / Linux:ctrl + shift
+ v)。
默認情況下,最後有5個複製/粘貼項目。
剪貼板堆棧的深度在「設置」對話框的「編輯器」頁面的「限制」部分中配置。超過指定的數量時,將從列表中刪除最早的條目。 [在IntelliJ IDEA中剪切,複製和粘貼]
3.啟用多游標(multicursor)功能:
control + g(Windows / Linux:alt + j)。
有關此功能的詳細文章由Bartek Lipinski在Medium網站提供。強烈推薦!
4.Open a class:
cmd + o (Windows / Linux:ctrl + n)。
5.Open any file:
cmd + shift + o (Windows / Linux:ctrl +
shift + n)。
6.Open symbol :
cmd + option + o (Windows / Linux:alt +
shift + n)。
7.Go to implementation:
cmd + option + b (Windows / Linux:ctrl + alt
+ b)。
假設有一個界面,通過單擊介面的名稱,然後單擊Go to implementation的快捷方式,將被重定向到實現該介面的類。
8.Go to declaration:
cmd + b (Windows / Linux:ctrl + b)。
它允許快速檢查並轉到類、方法或變數的聲明。
9.Go to type declaration:
control + shift + b(Windows / Linux:ctrl +
shift + b)。
假設如此定義:
Employee employee = new Employee(「Michal」);
當你插入符號employee並單擊快捷方式時,將會被重定向到Employee類。
10.Go to super:
cmd + u(Windows / Linux:ctrl + u)。
例如,重寫一些方法。當你在方法名稱插入符號,並單擊轉到Go to super快捷方式,將被重定向到父方法。
11.Move between tabs:
cmd + shift + [ 或 cmd + shift + ] (Windows /
Linux:alt + ← / →)。
12.Move between Design /
Text tabs in layout』s view:
control + shift + ← / →(Windows / Linux:alt + shift + ← / →)。
13.Close a current tab:
cmd + w(Windows / Linux:ctrl + shift + a)。
14.Hide all windows:
cmd + shift + F12 (Windows /
Linux:ctrl + shift + F12)。
15.Minimize Android Studio
instance:
cmd + m(Windows / Linux:ctrl + m)。
16.Format your code:
cmd + option + l (Windows / Linux:ctrl + alt
+ l)。
17.Auto-indent lines:
control + option + i (Windows / Linux:ctrl +
alt + i)。
18.Implement methods:
control + i (Windows / Linux:ctrl + i)。
假設實現了一個介面,然後只需單擊此快捷方式,即可快速導入該界面提供的所有方法。
19.Smart code completion(按期望類型過濾方法和變數的列表):
control + shift + space (Windows / Linux:ctrl
+ shift + space)。
20.Find:
cmd + f(Windows / Linux: ctrl + f)。
21.Find and replace:
cmd + r(Windows / Linux: ctrl + r)。
22.Move hardcoded strings
to resources:
option + return (Windows / Linux: alt +
enter)。
當在文本上使用插入符號時,必須使用快捷方式。
如果在全局使用該快捷方式,IDE將執行Project快速修復(Project
quick fix)(顯示意圖操作和快速修復)。
23.Build and run:
control + r (Windows / Linux: shift + F10)。
三、插件
Key promoter——幫助您更頻繁地使用鍵盤的插件。
String Manipulation——一個為文本操作提供操作的插件(例如,切換樣式,如camelCase、連字元-小寫等、大寫文本等還有很多)。
Android Material Design
Icon Generator——此插件可幫助您將Material Design圖標設置為Android項目。安裝後,您可以使用快捷方式:cmd + shift + m以生成圖標(默認)。
ButterKnifeZelezny——一個簡單的插件,允許一鍵點擊創建Butterknife視圖注入。
IntelliJ/Android Studio
Plugin for Android Parcelable boilerplate code generation——一個基於類中的欄位生成Android Parcelable實現的插件。
ADB Idea——一個幫助和自動執行adb命令的插件:卸載、殺死、啟動、重新啟動、清除應用程序和清除應用程序數據並重新啟動它。
Genymotion plugin——此插件允許您從Android
Studio創建和啟動Genymotion虛擬設備。
Android Methods Count——一個解析您的Android庫所依賴的插件,並顯示方法計數作為方便的提示。
Git Flow Integration——一個用於引入Git
Flow分支模型的插件。
Builder plugin——一個插件(從Square)生成一個類的靜態嵌套Builder。
四、資源
Philippe Breault:
《當代Android Studio秘訣》
《鍵盤快捷方式參考》
Reto Meier:
《在Android Studio中你可能不知道能做的十件事》
Hadi Hariri:
《無滑鼠驅策開發》
Philippe Breault:
《像老闆一樣的Android Studio》
《Android Studio 專家 (Android 開發峰會 2015)》
Michael Evans:
《Android Studio 秘訣和技巧》
《遇見Android Studio》
Donn Felker:
《Android Studio——秘訣和技巧》
《用Android Studio調試你的App》
________________________________
以上內容參考開源中國社區(http://oschina.net):
Android 開發人員必知的50個秘訣、技巧和資源
另,最近開源中國旗下碼雲團隊招聘開始啦。
如果你是銷售精英,年薪點開下面鏈接看,小開怎麼會在知乎談錢【傲嬌臉】。
詳情打開:恆拓開源北京總部_職位搜索_智聯招聘
1.確實快了。有了部分編譯機制,改動小的時候秒開。2.模擬器你沒有配置好,但是還是建議用真機測試。3.你寫了兩個第三,我都沒遇到過。4.四和五都沒遇到過,也沒法想像你說的意思。
Cannot resolve R symbol
geny時常黑屏abd.exe會佔用5037埠還有Unfotunately,xxx has stopped?╰ひ╯
5037埠會被genymotion佔用。但是abd.exe也需要這個埠。所以在先打開genymotion條件下,經常報錯abd停止工作。後來學會先開studio,再開genymotion。完美解決。
1、如果你一次構建的速度有嚴重問題,那應該學習增量構建。2、用模擬器開發,極少數吧?
目前就我使用的情況來看,模擬器卡頓是因為內存爆掉,一般不會出現logcat沒有輸出,即使不用instant run也差不多10秒內編譯好,版本2.3.3,最後我想說你可以升級到3.0試試。
全都是坑,最大的坑就是版本同別人項目沒法用,二就是長城那個逼死人補償命的牆,渣一般的網,三就是個人原因,電腦快捷鍵衝突,至今沒完全解決,四就是日誌,感覺比以前更難看了。來不來就是下東西。心酸史你懂的。
logcat沒有輸出我也經常遇到,求解
你寫的兩個 第三我也遇到了,AS 2.0 求解決方案。
推薦閱讀:
※這種ui誰能給點思路?
※如何優雅地使用Android Studio?
※Android Studio如何有步驟地解決衝突問題?
※okhttp,retrofit,android-async-http,volley應該選擇哪一個?
TAG:Android工程師 | AndroidStudio |