android sdk开发文档怎么开发游戏sdk

在eclipse的android工程里引用android sdk之外的类和方法
在eclipse的android工程里引用android sdk之外的类和方法
&&& 我们经常会遇到这样的问题:&&& 我们想在eclipse里的android工程中使用存在于android开源代码中的某个类,但是这个类却不包含在android sdk中。&&& 怎么办呢?难道我们的开发就要限制于sdk公开的类中?答案肯定是否定的,聪明的鱼告诉你一个解决办法:&&& 1、首先准备好你要使用的类,例如:我使用想ServiceManager类。我做了以下准备工作:&&& a、make android 源码b、查找与ServiceManager有关的class文件 find -name ServiceManager*.classc、我找到了ServiceManager.class文件(这里要注意,和ServiceManager相关的内部类也要包括进来,由于ServiceManager没有内部类,因此就只有ServiceManager.class这一个文件)。&&& 2、找到你的android工程使用的sdk platform。&&& a、为什么要找呢?因为我们要找到android.jar这个文件,这个文件和你工程的编译相关,很多类都是在这个文件里找到的。&&& b、怎么找呢?查看你工程的属性-&Java Build Path-&Libraries,这里我看到的是Android 2.3.3,展开,就看到android.jar的路径了。这个文件实际上都是在“你的android sdk路径/platforms/你的工程所属的api level文件夹”下,很好找的。&&& 3、添加我们准备好的类到android.jar里面。&&& a、用WinRAR打开android.jar文件。相信这个软件很多人都有吧。&&& b、打开对应的目录,将你的类添加进去。我的ServiceManager应该添加到Android/os/文件夹下,于是我在WinRAR中打开这个文件夹,把ServiceManager.class文件托进去,此时弹出一个WinRAR压缩设置的对话框,这里要特别注意, 我们应该设置压缩方式为“存储”,然后点击确定,ServiceManager.class就添加进去了。&&& 做完以上工作以后,重启你的eclipse,然后就可以使用这个类了。祝你成功,有疑问可以给我留言。
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&16712人阅读
【Android开发记录】(87)
从零开始一步一步接入SDK& 本篇博客想总结一下笔者在接入手游渠道SDK的一些经验方法,为想接入手游渠道或者想学习如何接入SDK的童鞋们提供一个参考。本篇博客基于Android平台,关于IOS接入SDK的方法,笔者以后有机会也会整理。& 首先来给大家说明一下SDK,何为SDK?它的全称是,SoftWare Develop Kit,意思是软件开发工具包,它是可以辅助我们去开发某类软件的相关文档,范例和工具的集合。关于SDK,这里推荐一个服务商店,名叫Devstore(),它聚集了各种各类的服务提供商,并为每个渠道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下载地址:,下载我们所需的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社区 --&
android:name=&mplatform.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&
android:name=&mplatform.activity.SNSLoginActivity&
android:configChanges=&orientation|keyboardHidden|navigation|screenSize&
android:theme=&@android:style/Theme.NoTitleBar.Fullscreen&
android:windowBackground=&@null&
android:windowSoftInputMode=&adjustPan& /&
android:name=&mplatform.versionupdate.ND2VersionUpdateNotify&
android:exported=&false&
android:process=&android.intent.mplatform.versionupdate& /&
android:name=&mplatform.versionupdate.ND2VersionUpdateService&
android:exported=&false&
android:process=&android.intent.mplatform.versionupdate& /&
android:name=&mplatform.service.NdNewMessageNotification&
android:enabled=&true&
android:exported=&false& /&
android:name=&mplatform.activity.SNSAppPromotionActivity&
android:configChanges=&orientation|keyboardHidden|navigation&
android:launchMode=&singleTask&
android:theme=&@android:style/Theme.NoTitleBar&
android:windowBackground=&@null&
android:windowSoftInputMode=&adjustPan& /&
android:name=&mplatform.service.NdDownloadService&
android:enabled=&true&
android:exported=&false&
android:process=&:mplatform.download& /&
android:name=&mplatform.gc.activity.ForumActivity&
android:configChanges=&orientation|keyboardHidden|navigation|screenSize&
android:theme=&@android:style/Theme.NoTitleBar.Fullscreen&
android:windowSoftInputMode=&adjustPan& /&
&!-- 91社区 --&
android:name=&platform.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,有些渠道可能出现各种各样莫名奇妙的问题,有时候我们开发就需要去填这些坑,这就很考验开发者的灵活应对了,必要的时候需要找到对应渠道的技术支持,并向他们反映相关问题。以上是笔者作为渠道接入的开发人员的所总结的一些经验,可能有不尽完善的地方,如果有什么相关疑问可以给笔者留言,笔者可以在博客中继续补充相关内容。希望本篇博客能帮到大家,谢谢。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3544324次
积分:36005
积分:36005
排名:第86名
原创:639篇
转载:81篇
评论:2479条
文章:27篇
阅读:49812
阅读:74257
阅读:48051
文章:14篇
阅读:273404
文章:11篇
阅读:151206
文章:10篇
阅读:71070
文章:13篇
阅读:34153
文章:13篇
阅读:352804
微信公众号:wwjblog
微信号:whatswwj
移动开发者狂热群:注明入群理由,里面有一群热爱分享的开发者
高品质课堂推荐:
(3)(3)(2)(3)(5)(9)(3)(6)(2)(2)(2)(8)(5)(10)(3)(2)(3)(4)(12)(1)(5)(5)(6)(7)(2)(13)(11)(11)(8)(14)(10)(16)(8)(15)(23)(13)(12)(12)(11)(17)(28)(18)(20)(8)(11)(20)(13)(14)(10)(23)(18)(15)(36)(27)(47)(16)(3)(28)(33)(14)(13)
从入门到成长到成熟再到优秀,大多数程序员走了前面一段相似的道路,而有些人却走得更远一些!!!!单机接入流程商务或运营拉群-》接入SDK-》SDK接完后CP提交运营商获得商用包体-》CP将商用包体提交百度QA-》百度QA转百度运营发布单机后台下载SDK:后台:必接功能在SDK文档目录中注明。配置问题更新SDK需要将旧的SDK全部移除,包括AndroidManifest.xml中的配置全部删除后,CLEAR项目后再次按SDK文档要求重新引入SDK和配置XML。SDK界面错乱按“更新SDK”处理AndroidManifest.xml渠道号配置:meta-dataandroid:name=&dksdk_channel& android:value=&渠道号ID&百度手机助手13744,百度多酷12999,(91)14076,百度贴吧14146集成多个SDK造成jar包冲突的参照帖子中或SDK文档中关于删包的说明,自行解决。无法提交MM打入了品宣SDK的包无法提交MM,显示&未使用符合要求的SDK&解决方法:将品宣SDK目录下的libbdpush_v1_0.so及libdkunique.so文件删除即可广告插件问题CP在Eclipse或Adt引用Google三方库(Admob),Gogle会认为是Banner,从而检测出广告插件,如下图。CP可以删除Admob解决。出现PushMessageReceiver、PushServiceReceiver、RegistrationReceiver、PushService无法实例化,导致找不到对应类1)检查AndroidManifest.xml文件中是否注册了这些类,详情请参考demo。2)检查libs目录是否包含pushservice**.jar文件和SDK提供的armeabi/mips/x86文件夹。3)如果是在运行时报错,后台log出现上述问题,检查APK的assets目录下是否有frontia_plugin文件夹,此文件夹在pushservice**.jar中,可以解压得到。4)检查Application是否按照demo写。5)解压自己的apk,对照demo是否缺少so包。反编译单机SDK,libs/armeabi与mips文件下libbdpush_V1_0.so不同问题反编译单机SDK,libs/armeab与mips文件下libbdpush_V1_0.so是不相同的。没有armeabi-v7a文件夹,是因为armeabi里面的so包兼容了系统;如果有armeabi-v7a文件夹,则把armeabi里面的so包都复制到armeabi-v7a文件夹里。出现运行时异常抛资源找不到,或者XML中报很多错误检查AndroidManifest.xml文件中的minSdkVersion的值必须要大等于11,如果不是这个原因引起的可能真是SDK没引入正确造成的错误。SDK初始化调用说明应在主Activity的onCreate函数中调用SDK初始化API,游戏主Activity的界面显示代码应写在SDK初始化完成的回调中。SDK进行初始化时自动显示百度移动游戏闪屏。兼容适配SDK2.0.2由于使用的移动MM SDK不适配CPU为阿童木安卓手机,所以DEMO初始化时会崩溃。游戏可以参照SDK文档中删包说明选择接入或者优化。接口定义public void init Activity activity, boolean isLandScape,&&SdkMode sdkMode,DKCMMMData mmData,DKCMGBData&gbData,&IDKSDKCallBack callBacksdkMode:支付模式,只接品宣传Basic模式。DKCMMMData:移动MM初始化数据 只接品宣传null,无移动mm计费指令传null,具体参数及计费点请向我方运营咨询DKCMGBData: 移动基地初始化数据 只接品宣传null,无移动基地计费指令传null . 具体参数及计费点请向我方运营咨询初始化回调未生效应该是XML缺少了权限,需要检查XML中的配置是否齐全。异常显示为:java.lang.SecurityException: &network& location provider requires ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission.或 java.io.FileNotFoundException:... local_stat_cache....初始化崩溃,异常LOG中出现线程安全警告或异常检查是否有其他SDK在百度SDK初始化的时候一同被执行初始化了,应当先初始化百度SDK后再对其他SDK进行初始化。其他SDK初始化代码可参照下图摆放的位置多个ACTIVITY这样调用初始化主activity调用初始化,每个activity调用onResume调用bdgameInit,onPause调用stopSuspenstionService。品宣初始化调用说明开发者在进入游戏第一界面,初始化完成后,调用此接口。回调函数的调用,证明初始化处理完成。此接口关系悬浮窗是否显示,请务必调用。activity参数为游戏主界面activity对象如果游戏存在多个activity,或有销毁主activity的行为。调用方法改为在每个activity的onResume中调用此接口,在onPause中调用DKPlatform.getInstance.stopSuspenstionServicethis 接口,且必须配对出现。接口定义:public&&void bdgameInit&&Activity activity, callBack悬浮窗AndroidManifest.xml中APPID等信息必须填写正确,联网时才会显示。如果点击崩溃可能由于缺少资源文件,按“更新SDK”解决。APPID不影响悬浮窗,bdgameInit会显示悬浮窗,stopSuspenstionService可关闭悬浮窗。悬浮窗中出现“未知游戏”的,是百度服务器数据库中数据关联错误,需要反馈给SDK的产品处理,如下图:品宣广告触发情况:1)单机品宣初始化接入正常,游戏启动时,弹出。2)手动调用单机SDK暂停接口时,弹出。3)其他应用遮挡游戏时,再次进去游戏,弹出。暂停页开发者在游戏中触发暂停事件的时候,如点击暂停按钮、点击home键再回到游戏等暂停时间,必须调用此接口。回调函数的调用,证明暂停处理完成。如果没有暂停的触发事件可不接入,切勿在界面的onPause函数中调用此接口。未跳出暂停页的,可将appid换成4110测试。回调函数的调用,证明暂停处理完成,callBack不可传null,否则显示不出暂停页。接口定义:public&&void bdgamePause&&Activity activity, IDKSDKCallBack callBack退出页开发者在游戏退出的时候,调用此接口。需要实现IDKSDKCallBack接口,在接口方法里编写退出应用的操作。接口定义:public&&void bdgameExit&&Activity activity, IDKSDKCallBack callBack统计百度大数据统计接口。在每个activity界面的onResume函数和onPause函数中分别加入如下两个接口protected void onResume {& & DKPlatform.getInstance.resumeBaiduMobileS& &super.onR}protected void onPause {& & DKPlatform.getInstance.pauseBaiduMobileS& &super.onP}支付移动mm计费和MCP融合计费sdk的接入是互斥的。当使用某一个时需要将另一个的库文件删除掉和相应代码注释掉。移动mm相关:AndroidManifest.xml里有关于移动mm的声明DKSingleSDK_SDK_Project\libs\mmbilling.3.1.8.jarmcp融合计费相关:AndroidManifest.xml里有关于mcp的声明DKSingleSDK_SDK_Project\libs\MiniSmsPaySDK.jar只接入第三方支付(支付宝、微信支付、游戏卡、充值卡、银行卡)的这样:GamePropsInfo propsFirst = new GamePropsInfo&1063&, &1&, &少司命卡牌&,&&;propsFirst.setThirdPay&qpfangshua&;DKPlatform.getInstance.invokePayCenterActivityactivity, propsFirst, null,null, null,null,RechargeC接口:public void invokePayCenterActivityContext context, GamePropsInfo dkPlatformGameProps, DKCMMdoData mdoInfo,DKCMMMData mmInfo,DKCMGBDatagbData,DKCMYBKData ybkData,IDKSDKCallBack callBack参数名称类型意义注释:contextContext游戏项目的上下文环境dkPlatformGamePropsGamePropsInfo百度移动游戏计费数据具体说明如下mdoInfoDKCMMdoDataMDO计费数据没有计费指令传null具体说明如下mmInfoDKCMMMData移动MM计费数据没有计费指令传null具体说明如下gbDataDKCMGBData移动游戏基地计费数据没有计费指令传null具体说明如下ybkDataDKCMYBKDataMCP融合计费没有计费指令传null具体说明如下callBackIDKSDKCallBack以json数据返回的回调函数具体处理参见示例1.点击某些计费点时不出现短信计费a.由于移动、联通、电信支持的面值不同,如果选中的计费点面值非当前渠道支持的面值,则不显示短信计费。b.SDK会在支付金额为非整数或者大于30元时,调用第三方支付。CP在传入整数金额时(小于30元),不要含有小数点,否则不会出现短代支付界面。2. 使用联通支付时,出现“查询金额失败”的提示参考接入文档里的混淆模块部分,此情况可能由于没有加上SDK提供的混淆代码。3.&&测试支付显示计费点为0.1元CP在开发者后台配置多个计费点,测试任意计费点时只显示计费点为0.1元。原因:mm未审核前不存在计费文件,都是0.1元,但每个计费点测试成功才能在MM后台提交审核,只有百度自己的计费不用审核。4.&&其他支付渠道扣费金额正常,唯独联通短信支付提示支付成功,但是扣费金额不正确,如2元4元的道具实际只扣了1毛;或者发现扣费短信是乱码的是由于SDK对联通卡支付屏蔽造成,单机sdk联通屏蔽省份:北京,天津,山西,安徽,浙江,广东,广西,河南,湖北,四川,云南,这些省份的联通支付可使用CP自有支付方式,也可在群中与单机运营沟通。5.&&微信支付卡住了需要对比DEMO中的.SO文件是否都在,XML配置是否正确,如果一切正常,可以试试把libs/armeabi 中的文件拷贝到libs/armeabi-v7a文件夹。6. 游戏在联通电信卡测试正常,移动卡出现Crash问题游戏在联通电信卡测试正常,移动卡出现Crash,报错如图所示,解决办法 把&&armeabi 里面的so文件全部复制到&&armeabi-v7a&&文件里。7.微信支付会弹出缺少权限的提示,别的支付方式正常。1、确认手机里的有装官方的微信或者最新版本微信版本, 手机内置微信可能也不支持微信支付,2、查看下XML 的权限设置是不是少了这2个uses-permissionandroid:name=&android.webkit.permission.PLUGINuses-permissionandroid:name=&android.permission.CHANGE_NETWORK_STATE8.使用移动4G支付出现支付请求发送失败,用SDK的DEMO也一样的效果。这是由于基地还未通过审核,游戏包通过基地审核后就不会有这种情况。9.在移动MM,游戏基地的计费界面中出现问题。SDK无法控制,请用DEMO复现,可复现的请先忽略。10.运营可以通过后台关闭某个APPID的应用中的支付页面中某个支付方式。11.支付的时候返回&&BDG_RECHARGE_USRERDATA_ERROR& & 3015 是由于支付参数错误造成的,特别注意以下透传字段是否超过了11位。12.微信支付报错误号3011。此错误非SDK错误号,如有需求请自行咨询微信支付客服。13.支付列表为空。一般为SDK更新时,SDK或配置错误导致,请按“更新SDK”处理。14.部分类型的短代出不来。一般为使用测试金额导致,代码里请使用正式的道具金额,SDK是支持0.01的,但是某些短代只支持某些特定金额。查询订单开发者通过查询接口,查询订单是否真正扣费成功。订单状态会有延迟,具体根据各计费商返回我方数据的时间为准。若是查询充值卡,请在调用查询接口时务必传入渠道编号DKOrderPayChannelData.DK_ORDER_CHANNEL_YEEPAY.getValue否则不会返回真实的数据。接口:public void invokeQueryDKOrderStatus& && && &&&Context context,& && && &&&String orderId,& && && &&&int channel,& && && &&&IDKSDKCallBack callBack参数名称类型意义注释:contextContext游戏项目的上下文环境orderIdString订单IDchannelint订单支付渠道callBackIDKSDKCallBack查询回调补单接口可以在游戏初始化后调用,是针对上一次游戏,产生支付订单中有异常状态的整体查询。是将查询订单接口(1.2)按照队列的方式的逐一查询,回调函数根据异常订单数量会被多次回调public void invokeSupplementDKOrderStatus& && && && && && && && && & Context context,& && && && && && && && && & IDKSDKCallBack callBack参数名称类型意义注释:contextContext游戏项目的上下文环境callBackIDKSDKCallBack补单回调您所在的位置: &
Android SDK上手指南:下一步学习方向
Android SDK上手指南:下一步学习方向
核子可乐 译
到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行Android应用程序开发,但Android所提供的发挥空间还远不止这些、因此开发中的可能性也几乎没有穷尽。因此,我们需要为自己的下一步学习选择明确的方向。在今天的文章中,我们将把全部注意力集中在可资选择的未来学习对象上。
【51CTO专稿】在当中,我们已经学习了如何从零开始学习Android应用程序开发。通过之前的文章中,我们了解了各类开发工具、探索了应用程序项目中所包含的基本要素、学习用户界面设计、交互性、资源以及数据的使用机制,另外我们也全面追踪了应用程序运行的整个过程。到目前为止,我们已经介绍过的知识足以帮助大家从非常理想的起点开始进行Android应用程序开发,但Android所提供的发挥空间还远不止这些、因此开发中的可能性也几乎没有穷尽。因此,我们需要为自己的下一步学习选择明确的方向。在今天的文章中,我们将把全部注意力集中在可资选择的未来学习对象上。在本系列教程的下一篇文章&&也就是最后一篇文章里,我们将通过一项测验回顾曾经了解过的各项知识。
通过阅读本系列教程,大家应该已经在创建Android应用时拥有多种可以选择的潜在发展方向。当然,如果大家已经规划好了具体的开发项目,那么由此带来的实际需求已经足以指导各位明确未来的学习路线。不过Android平台所提供的元素极为丰富,而且其中很多应用元素都普遍适用于我们将要接触的大多数应用。在今天的文章中,我们将近距离观察一部分实用性最高的主题,并以此为起点建立体系完整的Android开发技能。
大家可以利用我们之前创建好的示例应用项目尝试下面将要介绍的各种Android开发技巧。请注意,我们原先是把数据保存在shared preferences当中,因此大家可以选择将数据保存在文件内。我们要做的是尝试让用户利用EditText视图以及功能按钮实现数据的提交与保存。将用户数据写入到一个文件当中,让应用程序在启动时读取其内容并把结果显示在TextView视图当中。通过这种方式,大家可以实现持久性数据的保存,从而在应用程序下一次运行时加以使用。
另一项重要技能在于从远程资源,例如Web服务,当中获取数据。为了实现这一目标,我们需要在Activity类当中添加一个内部AsyncTask类,并借此进行远程数据获取。在获取到数据之后,还需将其显示在应用程序当中。此外,如果应用程序获取到的是XML、JSON或者其它一些常见数据格式,大家可能还希望对其加以解析或者进行格式调整。参阅谷歌官方提供的&&部分的说明,其中提供的示例代码足以作为理想的起步素材。
另一种主要数据存储选项同样适用于很多应用程序的实际需求,这就是使用SQLite数据库。大家可以通过创建一个SQLiteOpenHelper类来尝试这种方式,在这里我们需要定义该斩架构,例如表和列。在应用程序的其它部分,我们可以要求SQLiteOpenHelper类将数据写入到数据库中并利用游标实现内容读取,从而将结果显示在应用程序的用户界面当中。再次提醒大家,我们可能需要将用户输入的数据保存在数据库当中,并在应用程序下一次启动时显示结果。除了向数据库中插入记录并对其进行查询之外,大家还可以尝试更新并删除记录。作为初次上手的起点,我们不妨先从阅读谷歌官方提供的&&说明开始。
2.&应用屏幕
在已经创建完成的应用程序当中,我们只在用户界面当中使用了一个操作屏幕。接下来,大家可以通过在应用中创建第二个activity类来增加屏幕数量,即顺序打开File、New、Class菜单选项。今天的任务是在第一个屏幕&&也就是主activity当中添加一个按钮,并在用户点触该按钮时启动第二个activity。举例来说,如果我们开发的是一款游戏应用,那么该按钮所显示的文本内容可以是&游戏说明&,而第二个activity的名称则可以被设为How.java。为第二个activity创建一个布局文件,其中包含一个将文本内容保存在res/values字符串XML文件中的TextView。如果我们使用的示例应用如上所述是一款游戏的话,那么第二个activity中应该包含关于游戏操作与进行方式的信息。应用程序中的大部分信息显示都可以遵循这种简单的处理方式。
在第一个activity的onClick处理程序中,大家可以利用intents启动&游戏说明&activity。一旦我们在应用程序中包含了第二个activity,则需要利用putExtra方法向其提交来自第一个activity的数据。大家也可以尝试反过来让第二个activity执行某些任务,并把获得的结果提供给第一个activity。后者需要通过onActivityResult方法来接收结果数据。请大家查看谷歌官方提供的&Activity类引用&说明以了解更多与此相关的知识。
作为下一个步骤,大家可以尝试在自己的activity当中包含多个不同用户界面视图。大家还会注意到,不同类型的视图需要通过不同的方式加以实现。在大家熟练掌握了不同视图类型的使用方法之后,接下来可以尝试使用fragment&&这样我们就能够在应用程序的不同部分中重复使用用户界面的各个组成元素了。
另一种实用性极高的用户界面组件要数list视图。在list视图中,屏幕会显示一份包含多种条目的列表。系统会利用adapter将来自数据源的信息填充到list视图当中,也就是实现由数据到视图的映射。大家可以利用ListActivity来取代标准的Activity类。在list activity当中,大家可以对方法集进行重写以响应用户与列表内条目的交互操作。作为学习list视图的开端,大家可以首先认真阅读谷歌官方提供的。
一般来说,应用程序在外观与使用体验上最好能够与Android系统本身保持一致。只要可能,大家应该尽量利用标准化Android用户界面元素而非创建自己的定制组件。从这一理由出发,大家可能希望了解更多关于的知识,并始终提醒自己在设计用户界面以及应用程序的导航模式时遵循上述结论。
大家可以在自己创建的Android应用程序当中使用多种媒体类型,例如音频与视频、动画以及通过设备摄像头所捕捉到的图片乃至视频等。Android系统提供一系列标准方法,大家可以借此访问设备资源(例如摄像头)并实现特定使用需求(例如进行视频记录)。请大家查看《Android开发者指南》中的&&一节以获取更多信息。
正如我们在本系列教程中所提到,大家可以在Android应用程序当中利用XML创建视觉元素、从而获得属于自己的可绘制组件。大家也可以利用XML来定义动画,并通过代码控制动画的播放效果。在Android平台上,我们可以利用动画为用户界面添加各种动态效果&&系统支持的效果数量繁多,其中包括淡入淡出、旋转、翻转以及其它各种过渡类型。大家点击此处参阅谷歌官方提供的&&说明。
4.&与其它应用程序交互
在Android平台上进行应用程序开发的优势之一在于,我们可以充满利用平台所提供的现有资源,其中包括其它应用程序。正如我在本系列教程的前几篇文章中所提到,大家可以在不同应用程序之间实现数据共享并在自己的应用中使用这些共享数据。大家还可以允许用户利用电子邮件、即时消息以及社交网络等方式在我们的应用当中共享内容。最简单也最可靠的数据共享途径就是利用send意图。当我们的应用程序启动一条send活动时,操作系统会为用户提供一份应用程序列表、其中罗列了用户可以将内容发送至哪些目标处。请大家在着手尝试之前认真阅读谷歌官方提供的&&说明,其中还包含几个示例。
除了使用send之外,我们还可以利用其它多种方式实现从应用程序内部启用Android资源,因此请大家在自己的项目多多进行尝试。举例来说,大家可以利用dial来拨出电话号码、利用view在浏览器中查看见面或者使用地图应用中的位置信息。大家还可以从设备的内置传感器处获取数据,从而使自己的应用程序能够捕捉并处理与位置及周边环境相关的数据。在多数情况下,我们可以通过在action启动结束时在应用程序与Android环境之间建立起对话,并向应用程序返回信息时触发其它action。利用这种方式,我们的应用程序就可以充分利用Android设备所提供的移动特性。
我们已经讨论了未来学习的几大主要潜在方向,但事实上大家所接触的仍然只是Android平台颇为表面化的浅层次知识。这套平台仍然在不断变化,而可行性名单也会变得越来越长。针对常见任务的推荐性技术也会定期变更,因此如果大家希望能一直开发出高品质的Android应用程序,请记住不断学习才是最重要的职业习惯。
下面我再为大家推荐一些实用性很高的学习资源:
访问来获取关于这套平台的最新及未来发展趋势。该博客还经常提供一些功能性代码示例,可以作为很好的学习素材。
是网络上现有的最具Android学习资源之一。Vogella网站通常会提供一些完整的技术示例项目,旨在对官方开发者指南当中所涉及的专业知识进行详细讲解。
经常发布大量公告与Android开发讨论话题,同样值得大家多加关注。
正如其它开发平台一样,大家会在学习Android的过程中发现更多无法确定的问题,其中大部分都需要通过网络搜索加以解决。正如大家所了解,很多常见问题都能在上找到答案&&如果各位还不是该网站的常客,请马上去逛逛吧。
在本系列教程当中,我的目标是帮助大家学习关于Android开发的基础知识。如果各位过去曾经学习过编程或者开发技能,肯定清楚本系列教程还远远不是探索的终点。如果大家有意继续为Android平台开发应用,则需要熟练运用本教程所介绍的知识并将其作为Android工具箱中的财富好好加以保管。作为本系列教程的结尾,我将在下一篇文章中提供一项测试、看看大家有没有真正掌握之前提到的内容&&请做好准备吧!【编辑推荐】【责任编辑: TEL:(010)】
关于&&的更多文章
本书旨在帮助开发人员解决实际开发中的问题,通过直观的例子告诉
讲师: 98人学习过讲师: 122人学习过讲师: 32人学习过
既然强大的Android Studio来了,有什么理由不去用呢?
手机游戏开发可以很简单,如Flappy Bird,一个人一杯
张小龙已经成为产品经理心中的神,无数人纷纷膜拜憧憬
国际消费类电子产品展览会(International Consumer E
本书描述了Solaris 10和OpenSolaris内核中所有主要子系统的算法和数据结构,对第1版进行了大幅修订,加入了很多新的内容。全书从
Windows Phone专家
Android开发专家
51CTO旗下网站}

我要回帖

更多关于 android sdk开发文档 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信