
【Android开发API】Google提供的服务:设置许可机制 - Setting Up for Licensing.pdf
5页原文链接: 更新时间: 2012.08.06为应用程序添加许可证之前,需要建立Google Play的发布帐号,开发环境以及用来验证安装的测试帐号建立发布者帐户如果您还没有Google Play的发布者帐户,那么就需要使用Google帐户去注册⼀个,并同意Google Play发布者网站的服务条款: : 更多信息,请参考开始发布如果您已经有Google Play的发布者帐户,那么就可以使用现有的帐户来建立许可证拥有了Google Play的发布者帐号,您就可以: * 获取许可证的公开密钥 * 在发布应用程序之前,测试应用程序是否完成了许可证的安装 * 发布添加了许可证支持的应用程序许可证的管理设置在发布者网站上,用户可以管理多个Google Play的许可证管理操作可以在Licensing面板、Edit Profile页上进行,如下图1所示该管理功能可以实现: * 建立多个测试帐号,每个帐号由不同的邮件地址注册许可证服务器允许用户在模拟器或真机上登录测试帐号,发送许可证认证,接受静态测试反馈 * 获得对应帐户许可证的公开密钥当用户需要在应用程序中安装许可证的时候,就必须将该公开密钥拷到应用程序中。
* 用户使用发布者帐号或测试帐号登录,上传应用程序到发布者帐户,当服务器接收到该应用程序的许可证认证请求时,用户可以配置服务器发送的静态测试反馈信息文件:licensing_public_key.png图1. Licensing面板、Edit Profile页中用户的许可证管理设置更多关于如何使用测试帐号,以及静态测试反馈的信息,请参考下面的建立测试环境建立开发环境为许可证建立开发环境包括以下⼏个操作:1. 为开发建立运行时环境2. 下载LVL到SDK3. 建立许可证验证库4. 在应用程序中导⼊LVL库⼯程下面具体介绍了这些操作,当建立完成之后,就可以将许可证添加到应用程序首先,需要建立⼀个合适的运行时环境,可以运行、调试、测试应用程序许可证认证和执行建立运行时环境正如前文所述,应用程序许可证认证不是直接与许可证服务器连接,而是通过绑定Google Play程序提供的服务,然后初始化⼀个许可证认证的请求然后,Google Play服务就会与许可证服务器进行直接的交互,最终将结果反馈到用户的应用程序中要调试、测试应用程序的许可证,需要建立⼀个运行时环境,包括必要的Google Play服务,这样应用程序才能给许可证服务器发送认证请求。
可用的运行时环境有两种: * 安装Google Play应用程序的android设备 * 运行Google API附加组件,API level 8(第⼆版)或更高的android模拟器 在真机中运行使用android真机测试许可证,需要设备满足以下条件: * 运行android1.5以上(API level 3以上)的兼容版本 * 运行安装Google Play客户端程序的系统映像 如果系统映像中没有安装Google Play,那么应用程序将无法与许可证服务器交互关于如何建立开发android应用程序的设备的通用信息,请参考使用硬件设备在模拟器中运行如果用户没有android的真机,可以使用模拟器进行测试因为androidSDK提供的平台不包含Google Play,所以用户需要从SDK库中下载Google API附加组件平台(API level 8 以上)下载完成之后,需要使用该系统映像创建⼀个虚拟机Google API附加组件不包含完整的Google Play客户端但是,包含了以下内容:* Google Play后台服务,可以实现ILicensingService远程接⼝,从而允许应用程序通过网络向许可证服务器发送许可证认证请求。
* ⼀组基本的帐户服务,使用户可以在虚拟机种添加Google帐户,并使用发布者帐号或测试帐号登陆 发布者帐号或测试帐号登陆,可以让用户在不发布程序的情况下进行测试更多信息,请参考下面的授权帐号登陆通过SDK管理器可以或许多个版本的Google API附加组件,但是只有android2.2以上的版本包含必要的Google Play服务要建立⼀个测试添加许可证程序的模拟器,遵守以下步骤:1. 运行SDK管理器(在eclipse的Window菜单中或执行/tools/android sdk)2. 选择并下载需要的Google API(必须是android2.2以上)3. 下载完成之后,打开虚拟机管理器(在eclipse的Window菜单中或执行/tools/android avd)4. 点击New并设置新虚拟机的具体参数5. 在弹出的对话框中,给虚拟机取⼀个有描述意义的名字,在目标菜单中选择对应的Google API,作为运行新虚拟机的系统映像根据需要配置其它参数,然后点击 Create AVD ,完成虚拟机的创建SDK⼯具创建了新的虚拟机配置后,将会在可用的android虚拟机列表中显示出来。
如果您对android虚拟机及其使用还不熟悉,请参考管理虚拟机更新项目配置建立了上述要求的运行时环境以后(真机或模拟器),确保更新过应用程序⼯程或按需要创建了脚本,这样编译后的包含许可证的.apk文件才算配置到环境中了尤其如果在eclipse中配置,确保为运行/调试配置了合适的设备或模拟器如果⼯程是在android 1.5(API level 3)以上编译的,那么应用程序的编译配置不需要改变例如: 2/eoe 移动开发者社区库⼯程LVL是android的库⼯程,意味着可以在多个应用程序中使用LVL的代码和资源如果您对库⼯程及其使用还不熟悉,请参考[管理⼯程]( 如果应用程序时在android 1.5以上编译的,那么不需要对编译配置进行任何的修改,就可以支持许可证编译目标已经达到了许可证的最低要求,因此,用户可以继续使用该版本的android平台 * 类似地,如果是在android 1.5(API level3)的模拟器上运行Google API附加组件 API 8,将其作为应用程序的运行时环境,就不需要修改应用程序的编译配置了总的来说,为应用程序添加许可证应该对应用程序的编译配置没有什么影响。
下载LVL许可证验证库(LVL)是⼀组帮助类的集合,在为应用程序添加许可证的时候,能够⼤⼤简化⼯作在任何情况下,下载LVL,将其作为安装许可证的基础都是推荐的⼀种方式LVL包可以在android SDK中下载该包中包括: * 存储在android库⼯程内部的LVL资源 * ⼀个基于LVL库⼯程的、名为“sample”的实例程序 这个实例介绍了应用程序如何使用库中的帮助类对许可证进行认证和执行要下载LVL包到开发环境中,可以使用SDK管理器运行android SDK管理器,选择Google Market Licensing包,如下图2所示同意服务条款,点击 Install Selected 开始下载文件:licensing_package.png图2 包含LVL及其实例的许可证包下载完成之后,android SDK管理器将会把LVL库⼯程和实例程序安装在以下目录::/extras/google/market_licensing/library/ LVL库⼯程 :/extras/google/market_licensing/sample/ 实例程序 如果您仍然不熟悉如何下载包到SDK,请参考文档配置SDK建立许可证认证库下载了LVL之后,需要将其安装到开发环境中,可以使用android库⼯程,或者直接拷贝(导⼊)库资源到已有的程序包中。
总的来说,将LVL作为库⼯程来使用时比较推荐的⼀种方式,因为这样可以在不同的应用程序之间重复使用许可证代码,随着时间的推移,这样维护起来也方便不过,要注意的是LVL不是用来单独编译,或作为⼀个静态的jar包添加到应用程序中的 移动库资源的位置有时用户需要在⼀定程度上自定义LVL资源,因此需要将库资源(整个/market_licensing/library/目录)移动或复制到SDK以外的⼯作目录中然后使用新位置中的资源作为⼯作集如果用户正在使用源代码管理系统,添加、追踪⼯作目录下的资源,而不是SDK默认目录下的移动库资源很重要,因为将来更新许可证包的时候,SDK会将新文件安装在与原文件相同的位置上移动⼯作库文件是⼀种保险做法,确保用户的⼯作不会因为下载新版本的LVL被无意中覆盖掉 创建LVL的库⼯程使用LVL的推荐方式是新建⼀个android库⼯程库⼯程是⼀种包含android源代码和资源的开发⼯程其他android应用程序⼯程可以引用该库⼯程,而且,在编译的时候,会将编译的源代码放在.apk文件中放到授权这个例⼦中,就意味着只需要在库⼯程中⼀次性实现,然后再不同的应用程序⼯程中包含库的源代码即可。
使用这种方式,可以很方便地维护、并集中管理多个⼯程的许可证的统⼀实现LVL是⼀个已经配置好的库⼯程——只要下载下来了,就直接可以使用了如果使用安装ADT的eclipse,需要将LVL作为新的开发⼯程添加到⼯作空间,就像添加新的应用程序⼯程⼀样1. 使用新⼯程引导从已有资源创建新⼯程选择LVL的库⼯程目录(该目录包含库的AndroidMainifest.xml文件),作为⼯程的根目录2. 在创建库⼯程时,需要的话,可以选择应用程序的名字、包,以及其他属性3. 库的编译目标需要是android 1.5 (API level 3)以上创建完成之后,在project.properties文件中已经定义⼯程为库⼯程,因此不需要再进行额外的设置了更多关于如何创建应用程序⼯程或在eclipse中使用库⼯程的信息,请参考在装有ADT的eclipse中管理应用程序 复制LVL资源到应用程序除了添加LVL作为库⼯程之外,还可以直接将库资源拷贝到应用程序中要实现该功能,直接拷贝(或导⼊)LVL的src/目录即可 如果用户使用的是直接将库资源添加到引用程序中的方法,则可以跳过下⼀部分,开始为应用程序添加许可证中描述的库的研究。
为应用程序添加库⼯程资源如果要将LVL资源当作库⼯程来使用,就需要在应用程序的⼯程属性中添加LVL库⼯程的引用该引用使编译⼯具在编译的时候将LVL库⼯程资源添加到应用程序中这个添加引用的过程依赖于开发环境具体如下文所述使用安装ADT的eclipse开发,应该像上⼀部分描述的⼀样,已经添加库⼯程到⼯作空间了如果还没有添加,在继续之前先添加然后,打开应用程序的⼯程属性窗⼝,如下图所示选择"Android"属性组,点击添加,然后选择LVL库⼯程(com_android_vending_licensing),点击确认更多信息,请参考管理安装ADT的eclipse⼯程文件:licensing_add_library.png图3. 使用安装ADT的eclipse开发,可以通过应用程序的⼯程属性添加LVL库⼯程到应用程序如果使用SDK命令行⼯具开发,导航至包含应用程序⼯程的文件夹,打开android.library.reference.,以及库的路径例如:android.library.reference.1=path/to/library_project 或者,可以使用该命令更新⼯程属性,添加库⼯程的引用: androidupdate lib-project --target \ --path path/to/my/app_proje。












