仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1821|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计在Android上受权Adobe AIR使用程序仓酷云

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
父类是NSObjectUIKit里最底层的库可以响应一些触摸事件设置焦点等功能UIView父类是UIResponder所有View的父类方法太多了大部分很有用这个不赘述了目次


  • 了解AdobeAIR中的Android受权
  • 了解Android受权原生扩大
  • 封装Android原生扩大和您的使用程序
  • 回护使用程序的技能
  • 扫除使用程序的妨碍
需求

准备常识

熟习Android上的AdobeAIR原生扩大、Java和Android受权考证库(LVL)
必要的第三方产物


  • Java开辟工具(JDT)
  • 包括LVL的GoogleAndroidSDK
用户程度

中级
必要的产物



  • FlashBuilder4.5Premium(下载试用版)
  • AdobeAIR
示例文件



  • AndroidLicensingUsage.zip
  • licensing.zip
注重:Adobe倡议利用下一版的FlashBuilder来开辟AdobeAIR的原生扩大。当即注册猎取FlashBuilder4.6的预刊行版。
本教程向您展现针对Android受权的原生扩大的利用和封装,包含回护使用程序的技能。
了解AdobeAIR中的Android受权

Android受权原生扩大为AIR使用程序开辟职员供应了会见AndroidMarket受权服务的才能。此服务可匡助您实行您经由过程AndroidMarket公布的付费使用程序的受权战略。当利用此服务时,您的使用程序可在运转时查询AndroidMarket来猎取以后用户的受权形态,然后同意或克制进一步利用。


  • AIR使用程序利用一个原生扩大来会见AndroidMarket受权服务。
  • 原生扩大利用受权考证库(LVL)与AndroidMarket受权服务器通讯,将了局传送回AIR使用程序。
  • 原生扩大库向LVL发送哀求,将向使用程序供应呼应。
  • 您能够修正在AIRSDK中供应的SWC的LVL和源代码。比方,假如您但愿为Android受权完成您本人的自界说战略,您大概但愿变动LVL代码。(默许情形下,LVL利用一种基于服务器的战略)。
利用Android受权原生扩大

入手下手之前:考证您的FlashBuilder正本是不是安装了Java开辟工具(JDT)。您必要JDT来在FlashBuilder中编纂Java代码。关于怎样安装JDT的具体信息,请参阅Jason在FlashBuilder中的Java开辟中的Flex博客文章中先容的步骤。
要利用针对Android受权的原生扩大,您必要创立:


  • 1个Java项目
  • 一个ActionScript基于
  • AIR使用程序
创立Java项目

要创立Java项目,实行以下步骤:

  • 启动FlashBuilder并选择Java透视图(拜见):
    <br>
    .在FlashBuilder当选择Java透视图。

  • 选择File>NewJavaProject。
  • 关于项目称号,输出AndroidLicensingJavaProject(拜见)。
    <br>
    .输出您的新Java项目标称号。

  • 单击Finish。
  • 要援用GoogleAndroidAPI,右键单击您的Java项目,然后选择Properties,然后选择左边面板中的JavaBuildPath,最初单击右边面板上的Libraries选项卡(拜见)。
    <br>
    .增加内部JAR文件。

  • 单击AddExternalJARs并将它指一直自您的AndroidSDK目次的android.jar文件:<AndroidSDKDIR>platformsandroid-11android.jar。注重:倡议利用最新的AndroidAPI级目次。

  • 创立来自AdobeAIRSDK的FlashRuntimeExtensions.jar的援用:<AIRSDKDIR>libandroidFlashRuntimeExtensions.jar。您如今必要将GoogleAndroidSDK中可用的LVL复制到您的Javasrc项目。

  • 转到<AndroidSDKDIR>extrasgooglemarket_licensinglibrarysrc,复制com文件夹,将它粘贴到您的Java项目标src文件夹中。
  • 链接到一切内部库以后,您如今必要我们的Java项目中的AIR原生扩大。转到AIRSDK,复制您的Java项目标src文件夹中的<air_sdk_dir>frameworksprojectsairLicensingAndroidAndroidLicensingJavaProjectsrc中的com文件夹。
    如今,您的Java项目应当相似于。

    <br>
    .FlashBuilder中您的Java项目标包资本办理器

  • 编译Java项目,应当没有编译毛病。
  • 右键单击您的Java项目并选择Export,然后在Java当选择Jar,最初将Jar文件重定名为SampleAndroidLicensing.jar
开辟ActionScript库

针对原生扩大设置您的Java项目以后,您必要创立一个ActionScript库,它撑持在Java代码与您的AIR使用程序在运转时通讯。
在今后,您将在AIR使用程序中援用此ActionScript库。

  • 要开辟ActionScript项目,在FlashBuilder当选择Flash透视图。在持续之前,确保您在FlashBuilder中改写了最新的AIRSDK。
  • 选择File>New>FlexLibraryProject。
  • 关于项目称号,键进AndroidLicensingLib(拜见)。
    <br>
    .为您的新Flex库项目键进一个称号。

  • 确保您选择了复选框IncludeAdobeAIRlibraries,不然Flash.external.ExternalContextAPI将不成用于您的ActionScript库。
  • 单击Finish。
  • 转到AIRSDK,将Flex库代码从frameworksprojectsairLicensingAndroidAndroidLicensingJavaProjectsrc复制到您的Flex库项目标src文件夹。
  • 您还必要在Flex库项目中设置您的开辟职员公钥,您的AIR使用程序与AndroidMarket服务器之间的通讯必要它。登录您的GoogleAndroidMarket流派,复制公钥并将它设置为LicenseChecker.as文件中的BASE64_PUBLIC_KEY变量:
    1. //AddthePublickeyobtainedfromAndroidMarkethereprivatestaticconstBASE64_PUBLIC_KEY:String="";
    复制代码
  • 编译您的Flex库项目,您应当在项目标bin文件夹中看到AndroidLicensingLib.swc文件。如今,您的项目资本办理器应当相似于。
    <br>
    .FlashBuilder项目资本办理器显现Java和Flex项目。

开辟示例AIR使用程序

接上去创立一个AIR使用程序,它将经由过程您方才创立的原生扩大利用Android受权。

  • 选择File>New>FlexMobileProject。
  • 输出一个项目称号,我利用AndroidLicensingUsage(拜见)。确保没有利用不异的项目称号,由于此ID已在GoogleAndroidMarket中利用。

    <br>
    .键进Flex挪动AIR项目标称号。

  • 单击Next,然后单击Finish。
  • 接上去您必要增加下面开辟的ActionScript库的援用。右键单击此项目,选择Properties,然后在左边面板上选择FlexBuildPath。单击AddSWC并指向AndroidLicensingLib项目标AndroidLicensingLib.swc(拜见)。
    <br>
    .援用您的Flex挪动项目标SWC。

  • 将SWC的链接范例变动为External,双击LinkType并从弹出菜单当选择External,单击Ok(拜见)。
    <br>
    .将链接范例设置为External。

  • 要向您的项目增加UI组件,切换到计划视图并增加一个按钮,将它标志为CheckforLicense,为该标签供应一个idlbl。
  • 切换回源代码视图,在监听器函数中向该按钮增加一个处置函数:
    1. varlc:LicenseChecker=newLicenseChecker();lc.addEventListener(ErrorEvent.ERROR,errorHandler);lc.addEventListener(LicenseStatusEvent.STATUS,licenseResult);lc.checkLicense();
    复制代码
  • 确保利用以下语句导进了ActionScript库类:importcom.adobe.air.sampleextensions.android.licensing.*;

  • 接上去编写checkLicense办法挪用的一个呼应处置函数。增加以下函数:
    1. protectedfunctionlicenseResult(event:LicenseStatusEvent):void{lbl.text="status:"+event.status+"statusReason:+"+event.statusReason;if(event.status==LicenseStatus.LICENSED){//Applicationislicensed,allowtheusertoproceed.}elseif(event.status==LicenseStatus.NOT_LICENSED){//Applicationisnotlicensed,dontallowtousertoproceed.switch(event.statusReason){caseLicenseStatusReason.CHECK_IN_PROGRESS://Thereisalreadyalicensecheckinprogress.break;caseLicenseStatusReason.INVALID_PACKAGE_NAME://PackageNameoftheapplicationisnotvalid.break;caseLicenseStatusReason.INVALID_PUBLIC_KEY://Publickeyspecifiedisincorrect.break;caseLicenseStatusReason.MISSING_PERMISSION://LicenseCheckpermissioninAppdescriptorismissing.break;caseLicenseStatusReason.NON_MATCHING_UID://UIDoftheapplicationisnotmatching.break;caseLicenseStatusReason.NOT_MARKET_MANAGED://Theapplicationisnotmarketmanaged.break;default://Applicationisnotlicensed.}}}
    复制代码
  • 在编写利用Android受权原生扩大的AIR使用程序时,必要在使用程序形貌符中举行以下变动。在application标志以后增加一个扩大ID标志:
    1. <extensions><extensionID>com.adobe.air.sampleextensions.android.licensing</extensionID></extensions>
    复制代码
    一切实行允许证反省的使用程序必要一个Android权限,您必要将它增加到<manifest>标志下:
    1. <uses-permissionandroid:name="com.android.vending.CHECK_LICENSE"/>
    复制代码
    别的,确保使用程序形貌符定名空间设置为3.0:
    1. <applicationxmlns="http://ns.adobe.com/air/application/3.0">
    复制代码
  • 编译使用程序。这将在输入(bin-debug)文件夹中天生一个SWF/XML。注重:这里天生的SWF是一个调试SWF。在FlashBuilder中完成此义务的一种体例(不管是AIR项目仍是Web项目,大概不管是不是能够导出)是向编译器选项增加一个参数。为此,转到Project>Properties>FlexCompiler,然后向Additional编译器参数增加“-debug=false”。

最初,在单击按钮时,此使用程序将实行一次允许证反省,并在标签文本中打印呼应。
封装Android原生扩大和您的使用程序

关于您本人的项目,请确保浏览了下一节,个中供应了回护您的使用程序的倡议。
要封装您的使用程序,您必要以下文件:


  • JAR文件,从Java项陌生成(这里为SampleAndroidLicensing.jar)
  • SWC文件,从ActionScript库项陌生成(这里为AndroidLicensingLib.swc)
  • AIR使用程序的SWF/XML文件,从您的Flex挪动项陌生成(这里为AndroidLicensingUsage.swf和AndroidLicensingUsage-app.xml)
  • extenson.xml(一个示例文件,您能够在AIRSDK中的frameworksprojectsairLicensingAndroidAndroidLicensingLibsrc中找到)
创立一个名为PackageAL的事情文件夹,将一切这些文件复制到此文件夹,然后利用ADT工具(可在AIRSDK中找到)封装使用程序
天生ANE文件


  • 在命令提醒符大将目次变动为指向您刚创立的事情文件夹,在这里创立一个名为Android-ARM的文件夹。
  • 将SampleAndroidLicensing.jar文件复制到Android-ARM目次。
  • 经由过程解压提掏出AndroidLicensingLib.swc,将文件library.swf复制到Android-ARM目次,然后删除catalog.xml,不要删除AndroidLicesingLib.swc。
  • 利用以下ADT命令封装ANE文件。
在Windows上
  1. <FullPathtoadt.bat>-package-storetypePKCS12-keystore<pathtoCertificateforNativeExtension>-storepass<password>-targetanecom.adobe.air.sampleextensions.android.licensing.aneextension.xml-swcAndroidLicensingLib.swc-platformAndroid-ARM-C.Android-ARM.
复制代码
在MacOSX上
  1. <FullPathtoadt>-package-storetypePKCS12-keystore<pathtoCertificateforNativeExtension>-storepass<password>-targetanecom.adobe.air.sampleextensions.android.licensing.aneextension.xml-swcAndroidLicensingLib.swc-platformAndroid-ARM-C./Android-ARM/.
复制代码
天生APK文件

有了ANE文件以后,利用以下命令封装APK文件:
在Windows上:
  1. <FullPathtoadt.bat>-package-targetapk-storetypePKCS12-keystore<pathtoCertificateforAIRapplication>-storepass<password>AndroidLicensingUsage.apkAndroidLicensingUsage-app.xmlAndroidLicensingUsage.swf&ndash;extdir.
复制代码
在MacOSX上:
  1. <FullPathtoadt>-package-targetapk-storetypePKCS12-keystore<pathtoCertificateforAIRapplication>-storepass<password>AndroidLicensingUsage.apkAndroidLicensingUsage-app.xmlAndroidLicensingUsage.swf&ndash;extdir.
复制代码
注重:假如您但愿在设备logcat中检察轨迹,请将方针变动为apk-debug。
当将您的使用程序公布到市场,而且您使用程序的用户已从GoogleAndroidMarket购置了该使用程序,他们将收到呼应“Licensed”。
回护使用程序的技能

参考以下技能,使您的使用程序加倍平安:


  • 不要与任何人共享AndroidMarket流派公钥。
  • 将LicenseChecker.as中以下行中的函数称号“checkLicenseNative”变动为其他某个称号:
    1. varlc:LicenseChecker=newLicenseChecker();lc.addEventListener(ErrorEvent.ERROR,errorHandler);lc.addEventListener(LicenseStatusEvent.STATUS,licenseResult);lc.checkLicense();0
    复制代码
  • 修正AndroidLicensingExtensionContext.java中的以下行以与新函数称号婚配:
    1. varlc:LicenseChecker=newLicenseChecker();lc.addEventListener(ErrorEvent.ERROR,errorHandler);lc.addEventListener(LicenseStatusEvent.STATUS,licenseResult);lc.checkLicense();1
    复制代码
  • 依据必要改善AndroidLicensing.java中的SALT变量。
  • 在天生SampleAndroidLicensing.jar文件以后,含混化它,然后封装ANE。JAR文件可以使用ProGuard工具含混化。您可使用本教程附带的设置文件(licensing.pro)来含混化JAR文件:
    1. varlc:LicenseChecker=newLicenseChecker();lc.addEventListener(ErrorEvent.ERROR,errorHandler);lc.addEventListener(LicenseStatusEvent.STATUS,licenseResult);lc.checkLicense();2
    复制代码
    SampleAndroidLicensing_o.jar重定名为SampleAndroidLicensing.jar并利用它封装ANE。

  • 含混化ActionScript代码。
扫除使用程序的妨碍

下表先容了一些大概的毛病动静息争决它们的技能:毛病动静
怎样办理
有效的密钥标准毛病(来自logcat中的LVL)
确保您供应了您的GoogleAndroidMarket流派中可用的完整不异的密钥。
missingPermission(statusReason)
反省您是不是在使用程序形貌符中供应了AndroidPermissionforCheckLicense。
notMarketManaged(statusReason)
ID没法被GoogleAndroidMarket使用程序辨认,由于从未将具有此ID的使用程序上传到GoogleAndroidMarket。上传符合的使用程序。
接洽受权服务器时堕落(来自logcat中的LVL)
确保您登录过您的Android德律风的市场使用程序。另请确保您的设备具有无效的互联网毗连。

延长浏览

在这个示例中,您进修了怎样利用AIR原生扩大受权您的Android使用程序。要懂得关于ANE的更多信息,请会见AIR开辟职员中央中的AdobeAIR原生扩大。

<br>+
<br>
此作品根据CreativeCommonsAttribution-Noncommercial-ShareAlike3.0UnportedLicense受权。超越本允许证局限,与本作品中包括的代码示例相干的权限可在Adobe上找到。
检察原文:LicensingAdobeAIRapplicationsonAndroid

如果同时支持iOS5和iOS4用宏判断下就可以当然也可以直接用assign)还有一点开始学习的时候肯定很疑惑内存管理是基于函数名称的比如带alloccopy的函数用了之后返回的对象一定要release
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-20 09:54:43 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-20 13:50:53 | 只看该作者
其次学习方法和学习心态很重要,在学习当中应该保持一颗良好的心态。应该借鉴别人好的学习方法,大家互相帮助,取长补短。
不帅 该用户已被删除
地板
发表于 2015-1-28 05:08:12 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
活着的死人 该用户已被删除
5#
发表于 2015-2-1 09:38:04 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
因胸联盟 该用户已被删除
6#
发表于 2015-2-7 02:04:29 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
若天明 该用户已被删除
7#
发表于 2015-2-9 09:33:31 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
兰色精灵 该用户已被删除
8#
发表于 2015-2-10 12:08:59 | 只看该作者
特别是在校的学生,都存在一个小小的尴尬——虽然学习iOS开发的热情高涨,但由于没有多余的银子购买昂贵的Mac电脑而踟蹰不前。其实,针对初学者,如果想进入iOS开发的天地
爱飞 该用户已被删除
9#
发表于 2015-2-12 16:32:29 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
若相依 该用户已被删除
10#
发表于 2015-2-19 05:40:03 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
老尸 该用户已被删除
11#
发表于 2015-3-7 10:26:31 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
莫相离 该用户已被删除
12#
发表于 2015-3-11 09:56:14 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
简单生活 该用户已被删除
13#
发表于 2015-3-17 23:59:07 | 只看该作者
down下code4app网站的每个分类的代码挨着看
小妖女 该用户已被删除
14#
发表于 2015-3-23 18:15:44 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
蒙在股里 该用户已被删除
15#
发表于 2015-3-23 23:32:23 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
山那边是海 该用户已被删除
16#
发表于 2015-4-3 06:08:12 | 只看该作者
边吃零食边看Stanford的视频教程
分手快乐 该用户已被删除
17#
发表于 2015-4-4 04:15:52 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
只想知道 该用户已被删除
18#
发表于 2015-4-6 07:00:56 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
透明 该用户已被删除
19#
发表于 2015-4-10 09:29:08 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
admin 该用户已被删除
20#
发表于 2015-4-14 03:11:37 | 只看该作者
在百度搜索你想要了解的类名(苹果的cocoa和cocoatouch框架的类名很有特点很容易搜到,前缀都是NS or UI),看别人写的博客详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表