BAT裡面一般用什麼工具做Android開發?
一般設計到大的項目一般在SVN上提交代碼,不知BAT是怎樣的一個開發流程
不是BAT,但是也算互聯網公司。Facebook用的環境是:
Git (mercurial) + Phabricator + Android Studio (IntelliJ) .
注意:很久很久之前,大概2010-2011年之前我們都還在用Eclipse。道理很簡單,Eclipse當時還是Java和Google主推的默認IDE。後來我們Android的Tech Lead(一個從Google過來的很牛的Senior Staff Engineer)過來給我們說 eclipse 已經不適應時代,極力勸大家轉型 IntelliJ。還專門寫了長長的一篇Wiki Page,描述IntelliJ 的好處,反正就是說eclipse沒法比。果然過了一年,Google自己也轉入到intellij的陣營了。開始我們公司還有些守舊派,比如我,我06年底就開始用eclipse,熟悉他們的ui,配置,熟悉了他們的快捷鍵,我當然不想轉呀。但是沒辦法畢竟有 tech lead的淫威在,最後只能慢慢去適應,痛苦地學習所有的快捷鍵。逼自己用了一個月後,我深刻的感受到了它的強大於是再也回不去Eclipse,反而更有體會eclipse的過時地方太多(還有卡頓,工程配置bug,crash; you guys name it!)。那一剎那,我才感受到一個人的惰性是多麼嚴重地阻礙一個人的進步。當好幾個人特別是資深人士他們的惰性加在一起,形成一股勢力時,他們便成為一顆毒瘤,嚴重阻礙了整個團隊或者整個公司的進步。國內更加嚴重,我見過無數的團隊還在用特別老的代碼管理,特別老的工具,以及讓人特別恐怖的代碼開發的觀念。所以,請今天走出這第一步,轉入android studio + gradle 的陣營。
關於代碼管理:從進入fb第一天,就只接觸過git,那時一直用這玩意,沒想到還真有很多人現在還在用svn,甚至只會用svn。後來,fb的codebase越來越大,就換到了mercurial,為了解決性能問題。對於小的創業公司,git無疑還是首選。
關於vim,這個爭論過很久。我一直認為最牛逼的程序員,本來就不介意用什麼編輯器,所以反過來講道理就是 所有隻推崇用vim或者強迫用vim的都是菜鳥。我仔細觀察過這些菜鳥,他們大部分人都只會用vim這一個editor,既沒好好用過emacs,也沒花時間研究過editor新貴sublime。簡而言之,他們之所以「喜歡」vim或者推薦vim,只是因為vim是他們在terminal和coding里學會的第一個編輯器,甚至是唯一一個花了點時間去掌握的編輯器。他們將自己僅學會的一點vim知識,作為護城河,像一個深井裡的青蛙一樣,去鄙視很多新入職的非vim員工。推而廣之,所有對某一領域過於痴狂進而貶低其他平台的技術人員都是菜鳥。比如用vim的鄙視用原版eclipse或者intellij的editor的;用iPhone的鄙視用安卓;用mac的鄙視用windows的等等。
不好意思,睡不著,說得有點多。大家不要罵我,因為我祝所有看這個答案的人端午節安康,不久到來的國慶節也快樂!
----- 更新 -----另外現在大部分公司使用 Genymotion,推薦使用。理由是「It is HIGHLY recommended to use Genymotion instead of Android Emulator, the performance are much better and you"ll save a lot of time (and it"s easier to setup)」說說小米的吧
電腦:DELL台式機 8核 i7 + 16G內存 + 一橫一豎雙顯示屏系統:Ubuntu開發工具:三年前剛進來用Eclipse,去年開始轉為Android Studio代碼管理:Git代碼review: gerritbug和需求管理:JIRA
公共文檔:wiki平時看源碼用Sublime、vim謝邀。
只說我自己:
NDK:Eclipse
主工程:Intellij IDEA預研:Android Studio PreviewIDE不應該成為障礙,哪個適合就用那個。
看到題主自問自答:這讓我想起了RFX的一個回答:
在知乎提問是不是都可以得到較專業、準確的答案? - RednaxelaFX 的回答這是R神回答中最後的一段話:工作了以後大家都很忙,更沒有人有義務回答的你問題。看題主資料上寫的是UESTC,每年學校進BAT的都有一堆,我們組連我在內就有3個。即使在知乎上沒有人回答你的問題,河畔提問或者找一下師兄師姐,朋友們都能得到答案,希望UESTC的教育能使你多一點耐心,多一些思考,我相信這對你今後的發展大有好處。最容易澆滅回答熱情的就是催稿。回答這些冷門問題純粹靠熱情,不像有些類別的問題或許多回答一些還能靠它賺點錢。想回答得專業、準確、全面就得花時間;講解原理,給出例子,引用資料,這些都需要時間。但「在線等」的人們似乎從來不關心這點。
IDE:eclipse夾雜idea 不同部門不一樣,用eclipse一般歷史原因或者ndk文本編輯器:sublimevim...個人喜好不同版本控制:svngit 不同部門不一樣bug管理:bugzilla
文本diff:beyond compare
源碼查看:在線source in sightsvngit客戶端:烏龜or sourcetree終端:cmderxshellmac測試機:五花八門應有盡有待補充。一句話 用了Android Studio (jetbrains系列)你可能不會再用別的了
公司用的是git+Android Studio開發工具,我們自己有建一個中央倉庫,模擬器用Genymotion+本身模擬器,操作系統用ubuntu和WIN XP虛擬機,對多渠道打包和項目依賴的支持,不要太Happy ^_^.
Android Studio + vim plugin
BAT中某家, 自己Android開發用Android Studio,構建當然是使用gradle了。公司裡面也用eclipse+maven。同時由於構建環境maven支持的更好,不少Android studio黨也選擇本地AndroidStudio+gradle,構建用maven的方式。
個人觀點,公司裡面用什麼工具不應該影響個人選擇,目標都應該是選擇當前環境下最高效的工具。這個高效也是需要考慮穩定性的。比如atom很好用很新,之前一次升級很多必須的插件(jsformat+emacs鍵位)不兼容不能用了,給作者提issue也短期內不一定更新,結果只能束諸高閣。
如果公司用的工具和個人的工具之間存在著較大的效率差異,那麼你的機會來了,說明你可以已你的經驗去推動公司的相關工具的更新了。
Android開發目前最好的IDE是Android Studio無疑,即時有時公司的項目上比較大,無法很快遷過來,自己也應該在個人項目中使用起來。如果一個人執著於某一種工具而不追逐最有效率的工具的話,很快會被淘汰的;如果一個公司沒有人做轉變,都以各種理由守著過時的工具,那麼這個公司肯定也會失去活力。
比如大部分的支持都是基於maven的,那麼maven能做的事情gradle肯定也能做。簡單的可以通過shell來組合兩者的輸出產物,也可以通過自己寫gradle插件來實現和目前流程的兼容,而不是說因為之前的項目都依賴在maven上,就一直不換了。經歷過幾次發現其實變化之後並不會預想的那麼糟糕。
做構建插件從ant到maven, 在到gradle。從寫xml寫到吐到最終能爽朗的寫groovy,效率提升了不知道多少倍。
對! 說的就是svn,早就可以遷git了, git-svn都是好多年前的事了。非bat。ide的話,如果是工作上,就是組裡大家用什麼,你也跟著用,否則交流起來,總有不便利的地方。對於其他的ide,就是業餘時間靠個人興趣和愛好,鼓弄著玩了我剛開始寫程序時候,也下了4,5個ide,聽人介紹,這個什麼什麼好,那個什麼什麼好。
其實自己哪個順手,哪個最好。
不同部門有所區別,我們是Eclipse+Maven+Git
intellij idea
ps:說用vi開發Android的,你們真的這麼搞嗎?系統:ubuntu或者mac osX開發環境:Android Studio版本管理:git代碼review: gerritbug和需求管理:JIRA文檔管理,分享:wiki
自動編譯:jenkins
打包:之前是python腳本編譯,現在改成了gradle我覺得我這種只用得好eclipse的簡直丟了bat的臉啊
Intellij IDEA
和facebook類似,在linkedin也是git和intellij
開發大部分人都切到Android Studio,還有少部分人使用Eclipse,個人覺得AS比Eclipse好用的不要太多,大家都知道Google也停止了對Eclipse ide的維護了。代碼控制工具是GitLab,Git比SVN多了一個本地倉庫。編譯工具目前用的是Maven,目前也在向Gradle轉移了測試一般用的是真機,電腦上面也安裝了GenyMotion
eclipse比IDEA真的差很多
android studio + svn
都只是工具而已,習慣就好,技術不行,什麼工具都是白搭,工具論者,菜鳥!
AS + gerrit
推薦閱讀:
※為什麼Android 的APP 沒有iOS 的APP 有創意?
※對Android App來說,功能重要還是性能重要?
※為什麼安卓國行比水貨貴那麼多?
※一個資深的Android開發者需要掌握哪些技能?
※一般軟體都是優先開發安卓和ios的,為什麼詞焙沒有安卓版?
TAG:互聯網 | Android開發 | Android | BAT百度、阿里巴巴、騰訊 |