API Demos 導(dǎo)入指南

前言

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ì)盡快更新。

上面是我能搜集到的所有版本熟空。初學(xué)者不需要下載所有版本的 API Demos 藤巢,只需要下載一個(gè)用于學(xué)習(xí)就可以啦。

導(dǎo)入到 Android Studio

首先解壓下載文件息罗。然后打開(kāi) Android Studio掂咒。

1.在菜單欄中選擇 File --- New ---Import Project…

菜單選項(xiàng).png

2.在彈出的 Select 窗口中,找到自己剛剛解壓的文件夾。API 18版本之前的绍刮,可以直接看到 ApiDemos 這個(gè)文件夾温圆。API 18版本后的在其中找到 legacy 文件夾,其中就可以看到 ApiDemos 這個(gè)項(xiàng)目啦孩革。

選擇文件.png

3.找到 ApiDemos 文件夾后岁歉,點(diǎn)擊界面上的 OK 。就會(huì)彈出來(lái)如下對(duì)話框膝蜈。

導(dǎo)入向?qū)?png

此時(shí)只需要選擇 NEXT 锅移。會(huì)出現(xiàn)如下界面,按照默認(rèn)選項(xiàng)饱搏,點(diǎn)擊 FINISH 非剃。就完成了導(dǎo)入過(guò)程。

導(dǎo)入完成.png

常見(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
must end with .xml.png

該錯(cuò)誤是因?yàn)槲募](méi)有以 .xml 結(jié)尾。我們雙擊這個(gè)錯(cuò)誤提示飞苇,就會(huì)跳轉(zhuǎn)到這個(gè)錯(cuò)誤出現(xiàn)的地方菌瘫,這時(shí)候右鍵點(diǎn)擊文件名字蜗顽,選擇 Rename File...

Rename File.png

在彈出的窗口中給文件添加上后綴 .xml布卡,點(diǎn)擊 Refactor 就可以啦。

Rename.png

此時(shí) Android Studio 的錯(cuò)誤提示窗口可能還存在雇盖,這時(shí)候點(diǎn)擊菜單欄中的 Build --- Rebuild Project

Rebuild.png

錯(cuò)誤提示就會(huì)消失了忿等。

  • Error:(23, 32) 錯(cuò)誤: 程序包android.support.v4.print不存在
缺少v4包.png

這個(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 狸相。

image.png

在彈出的窗口中薛匪,選擇 Dependencies 選項(xiàng)卡。

image.png

點(diǎn)擊右面的加號(hào)脓鹃,選擇 Library dependency 逸尖。


image.png

在彈出的窗口中選擇 support-v4 。點(diǎn)擊 OK。返回到剛才的窗口娇跟,再點(diǎn)擊 OK 岩齿。這個(gè)問(wèn)題就解決啦。

image.png
  • Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 4 declared in library
image.png

這個(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 澜驮,如圖所示陷揪。

Paste_Image.png

添加完后,報(bào)錯(cuò)信息不會(huì)立刻消失杂穷,這時(shí)需要按照上文中提到的 Rebuild 方法悍缠,對(duì)項(xiàng)目進(jìn)行 Rebuild Project 操作。

  • 錯(cuò)誤:程序包c(diǎn)om.google.android.mms不存在
Paste_Image.png

這個(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è)文件上的。直接全文注釋就好锐借。

Paste_Image.png

以上就是使用 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)擊如圖所示中的綠色箭頭布轿。

Paste_Image.png

在彈出來(lái)的窗口中選擇想要運(yùn)行的設(shè)備哮笆,然后點(diǎn)擊運(yùn)行俺亮。

Paste_Image.png

編譯結(jié)束后,運(yùn)行效果就是這樣啦疟呐。

Paste_Image.png

結(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爪幻。

Paste_Image.png
Paste_Image.png

這個(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ì)盡快更新讳苦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末带膜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸳谜,更是在濱河造成了極大的恐慌膝藕,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咐扭,死亡現(xiàn)場(chǎng)離奇詭異芭挽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蝗肪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)览绿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人穗慕,你說(shuō)我怎么就攤上這事饿敲。” “怎么了逛绵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵怀各,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我术浪,道長(zhǎng)瓢对,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任胰苏,我火速辦了婚禮硕蛹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘硕并。我一直安慰自己法焰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布倔毙。 她就那樣靜靜地躺著埃仪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陕赃。 梳的紋絲不亂的頭發(fā)上卵蛉,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天颁股,我揣著相機(jī)與錄音,去河邊找鬼傻丝。 笑死甘有,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的葡缰。 我是一名探鬼主播亏掀,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼运准!你這毒婦竟也來(lái)了幌氮?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胁澳,失蹤者是張志新(化名)和其女友劉穎该互,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體韭畸,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宇智,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胰丁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片随橘。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锦庸,靈堂內(nèi)的尸體忽然破棺而出机蔗,到底是詐尸還是另有隱情,我是刑警寧澤甘萧,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布萝嘁,位于F島的核電站,受9級(jí)特大地震影響扬卷,放射性物質(zhì)發(fā)生泄漏牙言。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一怪得、第九天 我趴在偏房一處隱蔽的房頂上張望咱枉。 院中可真熱鬧,春花似錦徒恋、人聲如沸蚕断。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)基括。三九已至,卻和暖如春财岔,著一層夾襖步出監(jiān)牢的瞬間风皿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工匠璧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桐款,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓夷恍,卻偏偏與公主長(zhǎng)得像魔眨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酿雪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,761評(píng)論 25 707
  • afinalAfinal是一個(gè)android的ioc遏暴,orm框架 https://github.com/yangf...
    passiontim閱讀 15,410評(píng)論 2 45
  • 據(jù)《福建歷史地理》記載:秦漢時(shí)期,福建對(duì)外陸路已有五條指黎,其中一條就是從福州經(jīng)連江朋凉、羅源、寧德醋安、霞浦杂彭、福鼎至浙...
    雷恒潤(rùn)閱讀 2,975評(píng)論 5 15
  • 上兩期我們已經(jīng)學(xué)習(xí)了關(guān)于視頻播放的基礎(chǔ)知識(shí),還有容器格式文件的結(jié)構(gòu)吓揪。那么今天終于可以開(kāi)始學(xué)習(xí)安卓平臺(tái)的視頻播放知識(shí)...
    qing的世界閱讀 9,214評(píng)論 29 55