Android教程-从零开始一步一步接入SDK

来源:互联网 发布:js中的深拷贝和浅拷贝 编辑:程序博客网 时间:2024/05/21 03:57
 

Android教程-从零开始一步一步接入SDK

分类: 【Android开发记录】 4864人阅读 评论(12) 收藏 举报
android平台android渠道

目录(?)[+]

从零开始一步一步接入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就需要这些权限:

[html] view plaincopy
  1.   <!-- 91社区 -->  
  2.    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
  3.    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  4.    <uses-permission android:name="android.permission.READ_PHONE_STATE" />  
  5.    <uses-permission android:name="android.permission.SEND_SMS" />  
  6.    <uses-permission android:name="android.permission.INTERNET" />  
  7.    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
  8.    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />  
  9.    <uses-permission android:name="android.permission.CALL_PHONE" />  
  10.    <uses-permission android:name="android.permission.GET_TASKS" />  
  11.    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />  
  12.      
  13.      
  14. <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />    
  15. <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />   
  16.    <!-- 91社区 -->  

需要配置的组件:

[html] view plaincopy
  1. <!-- 91社区 -->  
  2. <activity  
  3.     android:name="com.nd.commplatform.activity.SNSControlCenterActivity"  
  4.     android:configChanges="orientation|keyboardHidden|navigation|screenSize"  
  5.     android:launchMode="singleTask"  
  6.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
  7.     android:windowBackground="@null"  
  8.     android:windowSoftInputMode="adjustPan" >  
  9. </activity>  
  10. <activity  
  11.     android:name="com.nd.commplatform.activity.SNSLoginActivity"  
  12.     android:configChanges="orientation|keyboardHidden|navigation|screenSize"  
  13.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
  14.     android:windowBackground="@null"  
  15.     android:windowSoftInputMode="adjustPan" />  
  16.   
  17. <receiver  
  18.     android:name="com.nd.commplatform.versionupdate.ND2VersionUpdateNotify"  
  19.     android:exported="false"  
  20.     android:process="android.intent.nd.sns.commplatform.versionupdate" />  
  21.   
  22. <service  
  23.     android:name="com.nd.commplatform.versionupdate.ND2VersionUpdateService"  
  24.     android:exported="false"  
  25.     android:process="android.intent.nd.sns.commplatform.versionupdate" />  
  26. <service  
  27.     android:name="com.nd.commplatform.service.NdNewMessageNotification"  
  28.     android:enabled="true"  
  29.     android:exported="false" />  
  30.   
  31. <activity  
  32.     android:name="com.nd.commplatform.activity.SNSAppPromotionActivity"  
  33.     android:configChanges="orientation|keyboardHidden|navigation"  
  34.     android:launchMode="singleTask"  
  35.     android:theme="@android:style/Theme.NoTitleBar"  
  36.     android:windowBackground="@null"  
  37.     android:windowSoftInputMode="adjustPan" />  
  38.   
  39. <service  
  40.     android:name="com.nd.commplatform.service.NdDownloadService"  
  41.     android:enabled="true"  
  42.     android:exported="false"  
  43.     android:process=":com.nd.commplatform.download" />  
  44.   
  45. <activity  
  46.     android:name="com.nd.commplatform.gc.activity.ForumActivity"  
  47.     android:configChanges="orientation|keyboardHidden|navigation|screenSize"  
  48.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  
  49.     android:windowSoftInputMode="adjustPan" />  
  50. <!-- 91社区 -->  
  51. <activity  
  52.     android:name="com.nd.complatform.stardemo.StartActivity"  
  53.     android:configChanges="orientation|navigation|screenSize"  
  54.     android:label="@string/app_name"  
  55.     android:screenOrientation="landscape"  
  56.     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >  
  57.     <intent-filter>  
  58.         <action android:name="android.intent.action.MAIN" />  
  59.   
  60.         <category android:name="android.intent.category.LAUNCHER" />  
  61.     </intent-filter>  
  62. </activity>  

配置完之后,我们就可以根据功能点,找到对应的API调用的方法,我们就可以知道如何传参和回调API的方法。


五、运行测试项目

我们集成完SDK之后,就可以运行测试项目看看效果了,测试我们想要测试的功能,比如登录、支付、悬浮框等功能。




这里只是给大家演示91渠道SDK的接入,这个是测试Demo所呈现的效果,具体的展示效果由开发自行开发实现。

关于SDK的接入,笔者就介绍到这里,SDK的接入并不是什么技术含量很高的事情,只要有相应编程基础和相关平台的开发经验就能很快熟悉SDK的接入。但这里并不意味着能渠道好好玩耍了,接入渠道有很多坑,并不是所有渠道都像91有完善的开发文档和封装的比较好的API,有些渠道可能出现各种各样莫名奇妙的问题,有时候我们开发就需要去填这些坑,这就很考验开发者的灵活应对了,必要的时候需要找到对应渠道的技术支持,并向他们反映相关问题。



以上是笔者作为渠道接入的开发人员的所总结的一些经验,可能有不尽完善的地方,如果有什么相关疑问可以给笔者留言,笔者可以在博客中继续补充相关内容。希望本篇博客能帮到大家,谢谢。


0 0
原创粉丝点击