Android教程-從零開始一步一步接入SDK
來源:程序員人生 發布時間:2014-09-14 19:37:00 閱讀次數:2382次
從零開始一步一步接入SDK
本篇博客想總結一下筆者在接入手游渠道SDK的一些經驗方法,為想接入手游渠道或者想學習如何接入SDK的童鞋們提供一個參考。本篇博客基于Android平臺,關于IOS接入SDK的方法,筆者以后有機會也會整理。
首先來給大家說明一下SDK,何為SDK?它的全稱是,SoftWare Develop Kit,意思是軟件開發工具包,它是可以輔助我們去開發某類軟件的相關文檔,范例和工具的集合。關于SDK,這里推薦一個服務商店,名叫Devstore(http://www.devstore.cn/),它聚集了各種各類的服務提供商,并為每個渠道SDK提供了專業且詳細的評測,筆者很榮幸成為Devstore的特約評測員這個榮譽,在Devstore也可以看到筆者對一些渠道所做的評測報告。
對SDK有了基本的概念之后就可以學習如何來從零開始一步一步接入SDK,每個渠道或者服務商面對開發者都會提供相應的SDK,里面就包含相應的開發文檔,開發Demo還有jar包或者項目所需的資源。
這里筆者提供一個范例來說明如何去接入SDK,大綱如下:
1.到渠道服務官網獲取我們所需的SDK
2.解壓縮SDK包,獲得開發文檔、Demo、jar包
3.查看開發文檔,導入Demo到Eclipse中
4.新建項目,參考Demo集成SDK
5.運行測試目標項目
一、到渠道官網獲取我們所需的SDK
筆者這里以91移動開放平臺為例,我們渠道官網SDK下載地址:http://dev.91.com/DocumentCenter/SdkDownload,下載我們所需的SDK,這里筆者下載的是Android版本的SDK。

點擊下載完畢之后,會看到這樣一個壓縮包:

二、解壓縮SDK包,獲得開發文檔、Demo、jar包
91開放平臺也算是一個受眾比較多的一個渠道了,它的SDK提供的內容也是比較完備的:

我們可以看到,91SDK很清晰的為我們分好不同的文件夾,從開發文檔、客戶端接口范例到運營規范都提供了完備的資料。我們接入其他渠道的時候也許需要了解SDK為我們提供了什么東西,哪些是我們開發需要的。
這里,我們最主要看01、02、04這三個,這是我們接入SDK需要使用到的
接入流程文檔:

范例和開發文檔:

配置說明和開發包

三、查看開發文檔、導入Demo到Eclipse中
我們開發者自然想快速的接入SDK,并且不想浪費太多時間,最快的辦法就是先瀏覽一遍SDK提供的開發文檔,然后測試它提供的范例,弄懂整個集成流程之后,我們就會明白如何來配置相關文件,但具體的API使用還是需要詳細查看開發文檔和范例的使用。
如果查看過91接入文檔就會發現它寫的非常詳細,并不需要筆者多說,你自己試一遍也可以集成SDK。
查看文檔:

導入Demo和開發包到Eclipse


到這里筆者要好好提一下,關于集成SDK的兩種方式,91這種是通過引入庫項目文件的形式來集成的,另一種方式是以jar包形式集成的,但可能還需要復制相應的assert資源到目標項目中去,主要還是要看渠道的SDK是否有提供。
四、新建項目,參考Demo集成SDK
我們可以從Demo中得到很多信息,一個是項目的配置,一個是API接口使用方法,我們只要通過查看Demo就可以弄清楚整個渠道的接入流程。那么怎么來看Demo,筆者總結了下面的經驗:
查看AndroidManifest.xml文件,了解項目必須的配置,比如權限配置,Activity、Service或者meta-data的配置。
比如91就需要這些權限:
<!-- 91社區 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<!-- 91社區 -->
需要配置的組件:
<!-- 91社區 -->
<activity
android:name="com.nd.commplatform.activity.SNSControlCenterActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:launchMode="singleTask"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowBackground="@null"
android:windowSoftInputMode="adjustPan" >
</activity>
<activity
android:name="com.nd.commplatform.activity.SNSLoginActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowBackground="@null"
android:windowSoftInputMode="adjustPan" />
<receiver
android:name="com.nd.commplatform.versionupdate.ND2VersionUpdateNotify"
android:exported="false"
android:process="android.intent.nd.sns.commplatform.versionupdate" />
<service
android:name="com.nd.commplatform.versionupdate.ND2VersionUpdateService"
android:exported="false"
android:process="android.intent.nd.sns.commplatform.versionupdate" />
<service
android:name="com.nd.commplatform.service.NdNewMessageNotification"
android:enabled="true"
android:exported="false" />
<activity
android:name="com.nd.commplatform.activity.SNSAppPromotionActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:launchMode="singleTask"
android:theme="@android:style/Theme.NoTitleBar"
android:windowBackground="@null"
android:windowSoftInputMode="adjustPan" />
<service
android:name="com.nd.commplatform.service.NdDownloadService"
android:enabled="true"
android:exported="false"
android:process=":com.nd.commplatform.download" />
<activity
android:name="com.nd.commplatform.gc.activity.ForumActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="adjustPan" />
<!-- 91社區 -->
<activity
android:name="com.nd.complatform.stardemo.StartActivity"
android:configChanges="orientation|navigation|screenSize"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
配置完之后,我們就可以根據功能點,找到對應的API調用的方法,我們就可以知道如何傳參和回調API的方法。
五、運行測試項目
我們集成完SDK之后,就可以運行測試項目看看效果了,測試我們想要測試的功能,比如登錄、支付、懸浮框等功能。



這里只是給大家演示91渠道SDK的接入,這個是測試Demo所呈現的效果,具體的展示效果由開發自行開發實現。
關于SDK的接入,筆者就介紹到這里,SDK的接入并不是什么技術含量很高的事情,只要有相應編程基礎和相關平臺的開發經驗就能很快熟悉SDK的接入。但這里并不意味著能渠道好好玩耍了,接入渠道有很多坑,并不是所有渠道都像91有完善的開發文檔和封裝的比較好的API,有些渠道可能出現各種各樣莫名奇妙的問題,有時候我們開發就需要去填這些坑,這就很考驗開發者的靈活應對了,必要的時候需要找到對應渠道的技術支持,并向他們反映相關問題。
以上是筆者作為渠道接入的開發人員的所總結的一些經驗,可能有不盡完善的地方,如果有什么相關疑問可以給筆者留言,筆者可以在博客中繼續補充相關內容。希望本篇博客能幫到大家,謝謝。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈