前言
API Demos 是什么呢?
API Demos 是 Google 為了 Android 開(kāi)發(fā)者所提供的一個(gè) Android API 合集倔约,其中包含了很多的 API 范例浊仆,同時(shí)遵循了良好的代碼規(guī)范蚁孔,是一個(gè)值得開(kāi)發(fā)者研究和學(xué)習(xí)的典型幻林。
但是瑞你,對(duì)于剛剛接觸 Android 開(kāi)發(fā)的人來(lái)說(shuō)烛愧,導(dǎo)入 API Demos 可是一個(gè)讓人頭疼的活油宜。因?yàn)榘姹镜牟粩嗌?jí),曾經(jīng)的各種辦法都已經(jīng)隨著時(shí)間失效了怜姿,所以就有了這篇指南來(lái)指導(dǎo)大家一步一步的導(dǎo)入 API Demos慎冤。
本文使用的 Android Studio 版本:2.1.2
導(dǎo)入過(guò)程
下載 API Demos
經(jīng)過(guò)版本升級(jí),發(fā)現(xiàn)現(xiàn)在已經(jīng)無(wú)法通過(guò) SDK Manager 直接下載和配置 API Demos 了沧卢。
所以就需要通過(guò)自己手動(dòng)下載蚁堤,這里提供百度網(wǎng)盤(pán)的下載鏈接,如果失效可以去http://www.androiddevtools.cn/找 SDK Samples 列表但狭,或者通過(guò)留言通知我披诗,我發(fā)現(xiàn)后會(huì)盡快更新。
- Android 6.0 (API 23) : http://pan.baidu.com/s/1c10Ig1a
- Android 5.1 (API 22) : http://pan.baidu.com/s/1dFJTkzB
- Android 5.0 (API 21) : http://pan.baidu.com/s/1dDD19XB
- Android L : http://pan.baidu.com/s/1gdpEan5
- Android 4.4W (API 20) : http://pan.baidu.com/s/1ntLVN9B
- Android 4.4.2 (API 19) : http://pan.baidu.com/s/1dDeSKt7
- Android 4.3 (API 18) : http://pan.baidu.com/s/1pJHicjx
- Android 4.2.2 (API 17) : http://pan.baidu.com/s/1hqGavMc
- Android 4.1.2 (API 16) : http://pan.baidu.com/s/1eYPL8
- Android 4.0.3 (API 15) : http://pan.baidu.com/s/1i3mScXv
- Android 4.0 (API 14) : http://pan.baidu.com/s/1kTiKqZP
- Android 3.2 (API 13) : http://pan.baidu.com/s/1eQpafgI
- Android 3.1 (API 12) : http://pan.baidu.com/s/1haIPw
- Android 3.0 (API 11) : http://pan.baidu.com/s/1ntx9qFR
- Android 2.3.3 (API 10) : http://pan.baidu.com/s/1hqiQw1Q
- Android 2.2 (API 9) : http://pan.baidu.com/s/1ntv7wut
上面是我能搜集到的所有版本熟空。初學(xué)者不需要下載所有版本的 API Demos 藤巢,只需要下載一個(gè)用于學(xué)習(xí)就可以啦。
導(dǎo)入到 Android Studio
首先解壓下載文件息罗。然后打開(kāi) Android Studio掂咒。
1.在菜單欄中選擇 File --- New ---Import Project…
2.在彈出的 Select 窗口中,找到自己剛剛解壓的文件夾。API 18版本之前的绍刮,可以直接看到 ApiDemos 這個(gè)文件夾温圆。API 18版本后的在其中找到 legacy 文件夾,其中就可以看到 ApiDemos 這個(gè)項(xiàng)目啦孩革。
3.找到 ApiDemos 文件夾后岁歉,點(diǎn)擊界面上的 OK 。就會(huì)彈出來(lái)如下對(duì)話框膝蜈。
此時(shí)只需要選擇 NEXT 锅移。會(huì)出現(xiàn)如下界面,按照默認(rèn)選項(xiàng)饱搏,點(diǎn)擊 FINISH 非剃。就完成了導(dǎo)入過(guò)程。
常見(jiàn)問(wèn)題修復(fù)##
有人可能會(huì)奇怪推沸,不都已經(jīng)導(dǎo)入完成了么备绽,為什么還不能運(yùn)行。那是因?yàn)槭謩?dòng)下載下來(lái)的 API Demos 是存在一些小問(wèn)題的鬓催。這些小問(wèn)題每個(gè)人都會(huì)遇到肺素,所以不需要小題大做,覺(jué)得自己下載錯(cuò)了或者自己電腦出了什么問(wèn)題宇驾。只要繼續(xù)按照文章解決下去就好啦倍靡。
- Error:Error: The file name must end with .xml
該錯(cuò)誤是因?yàn)槲募](méi)有以 .xml 結(jié)尾。我們雙擊這個(gè)錯(cuò)誤提示飞苇,就會(huì)跳轉(zhuǎn)到這個(gè)錯(cuò)誤出現(xiàn)的地方菌瘫,這時(shí)候右鍵點(diǎn)擊文件名字蜗顽,選擇 Rename File...
在彈出的窗口中給文件添加上后綴 .xml布卡,點(diǎn)擊 Refactor 就可以啦。
此時(shí) Android Studio 的錯(cuò)誤提示窗口可能還存在雇盖,這時(shí)候點(diǎn)擊菜單欄中的 Build --- Rebuild Project
錯(cuò)誤提示就會(huì)消失了忿等。
- Error:(23, 32) 錯(cuò)誤: 程序包android.support.v4.print不存在
這個(gè)錯(cuò)誤會(huì)出現(xiàn)在 API 19 以后的 API Demos 中,是因?yàn)闆](méi)有 v4 依賴(lài)包崔挖。
首先右擊左側(cè)項(xiàng)目管理器贸街,點(diǎn)擊 Open Module Settings 選項(xiàng),或者直接按 F4 狸相。
在彈出的窗口中薛匪,選擇 Dependencies 選項(xiàng)卡。
點(diǎn)擊右面的加號(hào)脓鹃,選擇 Library dependency 逸尖。
在彈出的窗口中選擇 support-v4 。點(diǎn)擊 OK。返回到剛才的窗口娇跟,再點(diǎn)擊 OK 岩齿。這個(gè)問(wèn)題就解決啦。
- Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 4 declared in library
這個(gè)報(bào)錯(cuò)的原因是是在gradle在構(gòu)建項(xiàng)目的時(shí)候苞俘,沒(méi)有自動(dòng)生成minSdkVersion節(jié)點(diǎn)盹沈,所以默認(rèn)的minSdkVersion就為了1了,但是v4包只能在api 版本4及以上才可以用吃谣,在gradle的配置文件加上minSdkVersion節(jié)點(diǎn)并且為4以上就可以了乞封。
在項(xiàng)目管理器中,展開(kāi) Gradle Scripts 岗憋,打開(kāi) build.gradle 下圖中左側(cè)紅色框選的文件歌亲。在其中的 defaultConfig 節(jié)點(diǎn)下,添加結(jié)點(diǎn) minSdkVersion 4 澜驮,如圖所示陷揪。
添加完后,報(bào)錯(cuò)信息不會(huì)立刻消失杂穷,這時(shí)需要按照上文中提到的 Rebuild 方法悍缠,對(duì)項(xiàng)目進(jìn)行 Rebuild Project 操作。
- 錯(cuò)誤:程序包c(diǎn)om.google.android.mms不存在
這個(gè)問(wèn)題是因?yàn)镸msMessagingDemo用到Mms包下東西耐量,但是系統(tǒng)的@hide的api飞蚓,根本沒(méi)辦法導(dǎo)入,解決辦法就是編譯一份mms包的源碼廊蜒,把@hide給開(kāi)放了就好了趴拧,如果不需要這部分的演示,我建議把這部分出錯(cuò)代碼直接注釋掉山叮。
雙擊錯(cuò)誤提示跳到出錯(cuò)的文件著榴,然后全選所有內(nèi)容,使用快捷鍵 Ctrl+/ 就可以注釋掉所有內(nèi)容屁倔。根據(jù)我的實(shí)驗(yàn)脑又,這類(lèi)錯(cuò)誤是出現(xiàn)在圖上演示的 MmsMessagingDemo.java 和 MmsWapPushReceiver.java 這兩個(gè)文件上的。直接全文注釋就好锐借。
以上就是使用 Android Studio 導(dǎo)入 API Demos 會(huì)出現(xiàn)的所有問(wèn)題问麸。
解決完上面的所有問(wèn)題,
運(yùn)行 API Demos#
這部分就非常簡(jiǎn)單啦钞翔,運(yùn)行方式也多種多樣严卖,這里說(shuō)一個(gè)典型的。
首先點(diǎn)擊如圖所示中的綠色箭頭布轿。
在彈出來(lái)的窗口中選擇想要運(yùn)行的設(shè)備哮笆,然后點(diǎn)擊運(yùn)行俺亮。
編譯結(jié)束后,運(yùn)行效果就是這樣啦疟呐。
結(jié)語(yǔ)#
導(dǎo)入程序脚曾,是程序員需要掌握的一個(gè)基礎(chǔ)技能,而導(dǎo)入中會(huì)遇到各種各樣的問(wèn)題启具,這其實(shí)是導(dǎo)入程序的常態(tài)本讥。并不是程序存在問(wèn)題,而是從一個(gè)環(huán)境到另一個(gè)環(huán)境的時(shí)候鲁冯,中間會(huì)經(jīng)歷很多過(guò)程拷沸,出現(xiàn)錯(cuò)誤在所難免。這時(shí)候需要人必須耐心薯演,細(xì)心撞芍。作為一個(gè)初學(xué)者,這尤為重要跨扮。
曾經(jīng)導(dǎo)入 API Demos 序无,只需要在 Android Studio 的 SDK Manager 中,勾選上 Sample For SDK 衡创,然后就配置好了帝嗡,在點(diǎn)擊導(dǎo)入,一路非常簡(jiǎn)單璃氢。但是不知道為什么哟玷,在新版本的 Android Studio 中,沒(méi)了這個(gè)選項(xiàng)一也,我排除了國(guó)內(nèi)國(guó)外網(wǎng)絡(luò)差異巢寡,肯定了在新版本中就是移除了 API Demos 。而且截止現(xiàn)在 API Leave 是 24 椰苟,但是我只能找到 API 23 的 Sample For SDK抑月。 新版本根本沒(méi)了 API Demos 。
我認(rèn)為根本原因是 Android Studio 2.0 推出之后尊剔。界面上出現(xiàn)了新的功能
Import an Android code sample爪幻。
這個(gè)列表上可以找到一些 API Demos 中的影子,但還是代替不了 API Demos 中對(duì)大量 API 的學(xué)習(xí)须误。當(dāng)然這是一個(gè)猜測(cè)。國(guó)外論壇上仇轻,也有人問(wèn)為什么找不到 API Demos 京痢,但是沒(méi)有人給出回答。所以至今也沒(méi)有找到移除的原因篷店。如果有人知道祭椰,請(qǐng)留言告訴我臭家。
不過(guò)這不影響我們使用 API Demos 來(lái)研究和學(xué)習(xí),而且我找到了 Google 在 GitHub 上的開(kāi)源代碼方淤,仍然保留著 API Demos 钉赁。
https://github.com/android/platform_development/tree/master/samples/ApiDemos
有興趣的同學(xué)可以嘗試從 GitHub 上導(dǎo)入。
如果發(fā)現(xiàn)本文有問(wèn)題携茂,或者有疑惑你踩,可以在本文下留言,我會(huì)盡快更新讳苦。