詳解Eclipse轉(zhuǎn)Android Studio

AS出來一年多了,最近才從Eclipse轉(zhuǎn)到AS逢艘,但我并不覺得使用Eclipse有多落后,它們都只是一個工具而已骤菠,哪個順手就用哪個它改,用得好都能提高生產(chǎn)力,不會合理利用商乎,再好的工具也是惘然央拖。很多使用Eclipse的Android程序員不知道代碼重構(gòu)的快捷鍵、如何在運行時調(diào)試鹉戚、一個Workspace一大堆工程......鲜戒,我想即使轉(zhuǎn)到Android Studio也并不見得比Eclipse順手。

下面將自己在Eclipse轉(zhuǎn)AS過程中遇到的一些問題以及對各個問題的理解列出來崩瓤,方便后續(xù)查閱袍啡。

1、問:Eclipse的工程如何導(dǎo)入到AS却桶?

答:我的處理方式是在AS中新建工程境输,然后將Eclipse中對應(yīng)工程的文件拷貝過來蔗牡;當(dāng)然也可以通過Eclipse將project導(dǎo)成gradle版本的,然后在AS中導(dǎo)入該工程嗅剖。

2辩越、問:對于本地代碼,是如何處理的信粮,在AS上如何編譯JNI的代碼黔攒?

答:AS上同樣可以開發(fā)JNI,只不過配置腳本的過程比較麻煩强缘,各個gradle版本督惰,配置的方式有些不一樣;我的處理方式是AS上只做java開發(fā)旅掂,JNI還是在Eclipse中開發(fā)赏胚,方便編譯和調(diào)試;

3商虐、問:在AS上開發(fā)會和Eclipse一樣觉阅,卡嗎?

答:會秘车,卡不卡和你整個工作空間的復(fù)雜度有關(guān)典勇,如果Eclipse的一個工作空間工程比較少,是不會卡的叮趴;AS也一樣割笙,如果AS的一個工作空間有太多工程,同樣會很卡疫向,特別是編譯的時候咳蔚;

4、問:AS存在啟動慢的問題嗎搔驼,有沒有Eclipse那種初始化進(jìn)度一直在0%的狀態(tài)谈火?

答:目前為止我還沒有遇到過,即使一個工作空間有上十個工程舌涨。

5糯耍、問:AS編譯比Eclipse或者ant編譯快嗎?

答:不一定囊嘉,這也跟你項目的復(fù)雜度有關(guān)温技,如果你的工程依賴關(guān)系簡單,用gradle編譯會很快扭粱,當(dāng)然用Eclipse和ant編譯也一樣舵鳞;如果你的工程依賴關(guān)系復(fù)雜,用gradle編譯比用Eclipse琢蛤、ant還慢蜓堕。我的建議是:主工程不要依賴太多的libproject抛虏,否則會編譯很慢,可以把這些libproject打包成aar套才,這樣同樣復(fù)雜的項目用gradle編譯會比用Eclipse和ant編譯塊不少迂猴;

6、gradle與ant相比背伴,有什么優(yōu)點沸毁?

答:優(yōu)點比較多,主要的優(yōu)點是配置簡單傻寂,特別是在持續(xù)集成的時候息尺,如果是gradle,一條命令就行了疾掰,如果是ant掷倔,還得自己寫編譯腳本。

7个绍、問:AS中如何配置工程的依賴關(guān)系?

答:在Eclipse中浪汪,會存在幾種依賴:

一種是jar包巴柿,直接放在libs文件夾即可(早先的Eclipse版本需要設(shè)置buildpath依賴關(guān)系才算配置OK);

另外一種是libproject死遭,這需要右鍵主工程—properties—Android—點擊Add添加依賴項广恢,配置完成后依賴關(guān)系會更新到工程根目錄下的“project.properties”文件。

在AS中會很簡單呀潭,右鍵主工程—Open Module Setting — 選中某一個工程钉迷,點擊右邊的Dependencies選項,點擊“+”钠署,分別添加Library/File/Module dependency糠聪,Library dependency和File dependency主要是添加jar包(File dependency的jar包是放在工程的libs文件夾下),Module dependency是添加libproject谐鼎,so放在工程的"libs/架構(gòu)文件夾"下舰蟆,不需要配置依賴關(guān)系。AS的依賴關(guān)系配置完成后狸棍,可以在工程的"build.gradle"文件中查看身害。依賴關(guān)系配置完成后,記得在build.gralde文件的android標(biāo)簽下增加下面這句話草戈,依賴關(guān)系才生效:

sourceSets{main{jniLibs.srcDirs=['libs']}}

8塌鸯、問:Eclipse和AS中主工程對其它工程的依賴有什么異同?

答:

相同點:Eclipse和AS都可以依賴so唐片、jar包和libproject丙猬;組織結(jié)構(gòu)也一樣涨颜,so和jar包放在libs文件夾,libproject是一個獨立的工程淮悼,需要手動配置依賴關(guān)系咐低。

不同點:AS還可以依賴aar,并且AS除了可以依賴本地的庫袜腥,還可以依賴服務(wù)器上的庫见擦,但Eclipse只能依賴本地庫。

9羹令、問:jar包和aar有啥區(qū)別鲤屡?

答:jar包不能將so和資源文件打包進(jìn)去,但aar可以福侈,看得到的就是這點區(qū)別酒来。

10、問:有哪些功能在Eclipse中用的特別順手肪凛,但在AS中用得不順手的堰汉?

答:

在同一個類中用快捷鍵查找同一個字串(Eclipse的快捷鍵是CTRL+K),AS中可以用F3實現(xiàn)類似功能伟墙,但用著特別不方便翘鸭,因為它會彈一個下拉列表讓你選;

程序運行的過程中調(diào)試代碼(Eclipse中只需要在DDMS選中當(dāng)前進(jìn)程戳葵,點擊調(diào)試按鈕就可以了就乓,但AS中沒發(fā)現(xiàn)有這個功能,可能是我AS的版本問題吧)拱烁。

11生蚁、問:AS使用過程遇到過哪些問題,是怎么解決的戏自?

答:

assets文件的存放目錄在”src/main/”目錄下邦投,和java、res文件夾平級浦妄;

aidl文件需要單獨在”src/main/”目錄下新建一個文件夾尼摹,然后創(chuàng)建對應(yīng)的包名,將aidl文件放在包名對應(yīng)的包下剂娄。

引用libs文件夾中的so蠢涝,需要在對應(yīng)module下的build.gradle文件的android標(biāo)簽下加上如下屬性:

android {

sourceSets {

main {

jniLibs.srcDirs = ['libs']

}

}

}

android studio的編譯時屏蔽掉lint檢查,可以避免由于編譯條件太過嚴(yán)格而編譯不過的問題:

lintOptions {

abortOnError false

}

如果遇到多個jar包中的某個文件沖突阅懦,可以在對應(yīng)module下的build.gradle文件的android標(biāo)簽下加上如下屬性:

packagingOptions {

exclude 'META-INF/NOTICE.txt'// 這里是具體的沖突文件全路徑

exclude 'META-INF/LICENSE.txt'

}

調(diào)整logcat文件顯示的顏色:File→Setting→Editor→Colors&Fonts→Android

Logcat→在界面的右側(cè)調(diào)節(jié)logcat每個級別日志的顏色和二;

顯示行號:File→Setting→Editor→General→Appearance→勾選“Show line numbers”;

Logcat的console中耳胎,顯示”no debuggable

applications”的問題:Tools→Android→Enable ADB Integration惯吕;

如果依賴工程和主工程中有同名同類型的資源文件惕它,需要修改依賴工程中的資源名稱編譯時才不會報錯,如果依賴工程中的這個資源文件是整個工程都不需要用到的废登,可以直接刪掉淹魄;

Android

Studio中一個主工程依賴多個library的模式編譯時很慢(clean和rebuild時,之前Eclipse中是這種模式)堡距,因為這種工程框架是主工程和每個依賴工程中都有一個build.gradle甲锡,編譯起來會消耗比較長的時間,可以將沒有資源文件和so的依賴工程打包成jar包羽戒,有資源文件和so的打包成aar文件缤沦,然后在主工程中引用,這樣編譯會很快易稠;

Android

Studio對九圖的要求很嚴(yán)格缸废,如果文件以”.9.png”結(jié)尾但是圖片不是9圖,編譯的時候會報錯驶社,解決方案是直接在AS中打開這張圖片企量,通過9圖編輯工具編輯成9圖即可;

修改Module之間的依賴關(guān)系有兩種方式:(1)直接修改每個module的build.gradle文件中的dependencies亡电;(2)右鍵project→Open

Module

Settings→在彈出面板的左側(cè)Modules一欄中選中要修改依賴關(guān)系的Module梁钾,點擊右側(cè)的Depencencies標(biāo)簽修改即可;

Android Studio自動導(dǎo)包:File→Settings→Editor→General→Auto

Import→Java→切換“Insert imports on paste”為“All”→勾選“Add unambigious

imports on the fly”逊抡;

代碼格式化快捷鍵:CTRL+ALT+L;

重命名文件夾或者文件的快捷鍵:ALT+SHIFT+R零酪;

鼠標(biāo)懸浮在某個方法上時冒嫡,顯示該方法的信息:Preferences→Editor→Show doc on mouse move;

刪除一個Module四苇,直接在IDE中選中Module后按Delete是刪不掉的孝凌,需要先右鍵project→Open Module

Settings→在彈出面板的左側(cè)Modules一欄中選中要刪除的Module→點擊面板左上角的“-”符號→點擊OK后回到IDE,然后選中要刪掉的Module月腋,按Delte快捷鍵刪掉即可蟀架;

Android Studio中執(zhí)行Lint等工具對代碼的檢測,Analyze→Inspect Code榆骚;

導(dǎo)入aar:將aar拷貝到libs文件夾片拍,在module的build.gradle文件增加下面這段話:

repositories {

flatDir() {

dirs 'libs'

}

}

然后在build.gradle的dependencies標(biāo)簽中按照如下格式引用aar文件即可:

compile(name:'aar包名不帶擴(kuò)展名', ext:'aar')

12、問:AS相比于Eclipse妓肢,有哪些新的工具或者更方便的功能捌省?

答:

查看APP的內(nèi)存占用、內(nèi)存變化情況的工具碉钠;

查看APP運行過程中網(wǎng)絡(luò)使用情況的工具纲缓;

查看CPU卷拘、GPU使用情況的工具;

代碼清理(Analyze—Code cleanup....)祝高、代碼靜態(tài)檢查工具(增強(qiáng)的ling檢查工具栗弟,Analyze—Inspect

code....);

可以直接使用DOS窗口工闺;

給打碼加書簽的功能(Eclipse也有乍赫,只是之前沒用過);

IDE內(nèi)9圖編輯功能斤寂;

快捷鍵

......很多很多一些小的功能耿焊,用熟了特別方便。

13遍搞、問:在使用AS的過程中罗侯,有什么忠告?

答:就像在使用Eclipse的時候不要輕易更新ADT一樣溪猿,在使用AS的過程中不要輕易更新gradle和AS钩杰,每個版本會有一些差別,會有很多坑诊县,還是等新版本出來一段時間讲弄,比較穩(wěn)定后再用,畢竟IDE是提高生產(chǎn)力的工具依痊,如果需要花大把時間去學(xué)習(xí)如何使用和解決使用過程中的問題就太沒意思了避除。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市胸嘁,隨后出現(xiàn)的幾起案子瓶摆,更是在濱河造成了極大的恐慌,老刑警劉巖性宏,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件群井,死亡現(xiàn)場離奇詭異,居然都是意外死亡毫胜,警方通過查閱死者的電腦和手機(jī)书斜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酵使,“玉大人荐吉,你說我怎么就攤上這事】谟妫” “怎么了稍坯?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我瞧哟,道長混巧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任勤揩,我火速辦了婚禮咧党,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陨亡。我一直安慰自己傍衡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布负蠕。 她就那樣靜靜地躺著蛙埂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遮糖。 梳的紋絲不亂的頭發(fā)上绣的,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音欲账,去河邊找鬼屡江。 笑死,一個胖子當(dāng)著我的面吹牛赛不,可吹牛的內(nèi)容都是我干的惩嘉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼踢故,長吁一口氣:“原來是場噩夢啊……” “哼文黎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起殿较,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤臊诊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后斜脂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡触机,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年帚戳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儡首。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡片任,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔬胯,到底是詐尸還是另有隱情对供,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站产场,受9級特大地震影響鹅髓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜京景,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一窿冯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧确徙,春花似錦醒串、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伴逸,卻和暖如春缠沈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背违柏。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工博烂, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漱竖。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓禽篱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親馍惹。 傳聞我的和親對象是個殘疾皇子躺率,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容