安卓系统一个字都汽水没有了打一个字,只有图像

应用程序经编码和测试后必须准备一个包进行分发。 准备此包的第一个任务是生成供发布的应用程序其中主要涉及到设置应用程序的一些属性。

使用以下步骤生成供發布的应用:

  •  – 每个 Xamarin.Android 应用程序应指定一个应用程序图标 虽然在技术层面并不需要这么做;但是,某些应用商店(例如 Google Play)对此提出了要求
  •  – 此步骤涉及初始化或更新版本信息。 这对应用程序将来的更新以及确保用户知道安装的应用程序版本非常重要
  •  – 通过禁用调试、模糊处理托管代码、添加防调试和防篡改,并使用本机编译来阻止用户或攻击者对应用程序进行调试、篡改或反向工程
  •  – 打包属性控制 Android 应鼡程序包 (APK) 的创建。 此步骤会优化 APK保护其资产并根据需要模块化打包。
  • – 此步骤编译代码和资产以确认按发布模式生成。
  •  – 此步骤生成應用并将其放置在存档中以供签名和发布。

下面详细说明了上述各步骤

强烈建议每个 Xamarin.Android 应用程序都指定一个应用程序图标。 某些应用程序商城将不允许发布没有图标的 Android 应用程序

在 Visual Studio 2013 及更高版本中,可通过项目“属性”的“Android 清单”部分指定应用程序图标如以下屏幕截图所礻:

在 Visual Studio 2010 中,通过应用程序特性的图标属性指定应用程序图标如上所述。

对于 Android 应用程序维护和分发而言版本控制很重要。 如果没有版本控制则很难确定应用程序是否应更新或如何更新。 为了辅助版本控制Android 可识别两种不同类型的信息:

  • 版本号 – 表示应用程版本的整数值,供 Android 和应用程序内部使用 对大多数应用程序而言,此值的初始设置为 1之后随每个内部版本递增。 此值与版本名称属性(见下文)没有關系或关联 应用程序和发布服务不应向用户显示此值。

  • 版本名称 – 仅用于向用户传递应用程序(如安装在特定设备上)的版本相关信息嘚字符串 版本名称将向用户显示,或在 Google Play 中显示 此字符串不供 Android 内部使用。 版本名称可以是任何字符串值它能帮助用户了解其设备上安裝的版本。

在 Visual Studio 中可在项目“属性”的“Android 清单”部分设置这些值,如以下屏幕截图所示:

发布模式会关闭共享运行时并打开链接使应用程序只提供运行时需要的 Xamarin.Android 部分。 Xamarin.Android 中的链接器使用静态分析来确定 Xamarin.Android 应用程序所使用或引用的程序集、类型和类型成员 然后,链接器将放弃所有未使用(或引用)的程序集、类型和成员 这可显著减小包的大小。 例如 示例,其 APK 的最终大小减少了 83%:

通过项目“属性”的“Android”部汾设置链接器选项 若要访问链接器选项,请单击“链接器”选项卡如以下屏幕截图所示:

“链接”下拉菜单提供以下选项,用于控制鏈接器:

  •  – 这将关闭链接器;不会执行任何链接
  • 仅 SDK 程序集 – 这会仅链接  所需的程序集。 不会链接其他程序集
  • SDK 和用户程序集 – 这会链接应用程序所需的所有程序集,而不是仅链接 Xamarin.Android 所需的程序集

链接可能产生一些意外的副作用,因此必须在物理设备上的发布模式下重新測试应用程序

在具有多个库依赖关系的大型应用中使用 ProGuard 通常可实现更大幅度的大小缩减。

配置文件添加到项目中右键单击并选中该文件作为生成操作,如此示例中所示:

默认情况下禁用 ProGuard。 仅在项目设置为“发布”模式时才能使用“启用 ProGuard”选项 除非选中“启用 ProGuard”,否則会忽略所有 ProGuard 生成操作 Xamarin.Android ProGuard 配置不会模糊处理 APK,且不能启用模糊处理即使处理自定义配置文件也不例外。 如果想要模糊处理请参阅。

在 Android 應用程序开发期间将使用 Java 调试线路协议 (JDWP) 执行调试。 这是一种技术它允许 adb 等工具出于调试目的与 JVM 通信。 默认对 Xamarin.Android 应用程序的调试版本启用 JDWP 虽然 JDWP 在开发过程中很重要,但它会对已发布的应用程序造成安全问题

始终禁用已发布应用程序中的调试状态,因为如果不禁用此状态则可能(通过 JDWP)获得 Java 进程的完全访问权限并在应用程序的上下文中执行任意代码。

 
注意调试版本会自动设置某些权限以简化调试(如 InternetReadExternalStorage)。 但是发布版本只使用显式配置的权限。 若发现切换到发布版本会导致应用失去可在调试版本中使用的权限请验证是否已在“所需权限”列表中显式启用了此权限,如中所述
 
即使,攻击者仍可能重新打包应用程序从而添加或删除配置选项或权限。 这可使他们对應用程序进行反向工程、调试或篡改 可用于模糊处理托管代码,并在生成时向 Xamarin.Android 应用插入运行时安全状态检测代码

将程序集捆绑到本机玳码

 
此选项启用时,程序集会捆绑到本机共享库中 此选项使代码保持安全;它通过在本机二进制文件中嵌入这些托管程序集来保护它们。
此选项需要 Enterprise 许可证仅当“使用快速部署”禁用时才可用。 “将程序集捆绑到本机代码”在默认情况下处于禁用状态
请注意,“捆绑箌本机代码”选项执行不意味着程序集会编译到本机代码中 无法使用 将程序集编译到本机代码中(当前只是试验性功能,不用于生产用途)
 

AOT 目前是一项。 不建议用于生产环境 AOT 和 LLVM 在

 
页上的AOT 编译选项支持预先编译程序集。 启用此选项后通过在运行时之前预编译程序集可將实时 (JIT) 启动开销降到最低。 生成的本机代码包括在 APK 以及未编译程序集中 这可缩短应用程序启动时间,但代价是 APK 大小会变得稍大
“AOT 编译”选项要求使用 Enterprise 或更高版本的许可证。 仅在项目配置为发布模式时才可使用“AOT 编译”,并且该选项默认处于禁用状态 有关 AOT 编译的详细信息,请参阅
 
LLVM 优化编译器会创建更小更快速的编译代码,并将 AOT 编译的程序集转换为本机代码但生成时间会变缓慢。 默认情况下LLVM 编译器处于禁用状态。 若要使用 LLVM 编译器必须首先启用“AOT 编译”选项(在页上)。

LLVM 优化编译器选项需要业务许可证

 
可在项目“属性”的“Android 选項”部分设置打包属性,如以下屏幕截图所示:

其中许多属性(例如“使用共享运行时”和“使用快速部署”)专用于调试模式 但是,茬发布模式下配置应用程序时还需要进行其他设置,这些设置用于确定如何、如何以及如何打包应用以支持不同的体系结构和大小限淛。
 
准备 Xamarin.Android 应用进行发布时必须指定支持的 CPU 体系结构。 单个 APK 可包含计算机代码以支持多个不同的体系结构。 请参阅 深入了解如何支持哆个 CPU 体系结构。

启用此选项后会为每个支持的 ABI(在“高级”选项卡上进行选择,如 中所述)分别创建一个 APK而不是为所有支持的 ABI 创建单個大型 APK。 仅在项目配置为用于发布模式时才可使用此选项,并且其默认处于禁用状态
 
如果启用“启用 Multi-Dex”选项,Android SDK 工具将用于绕过 .dex 文件格式的 65K 方法限制 65K 方法限制基于应用引用的 Java 方法数(包括应用依赖的任何库中的方法数)– 不基于源代码中写入的方法数。 如果应用程序只萣义了几个方法却使用了多个方法或大型库,则可能超出 65K 限制
应用可能未使用每个引用库中的每个方法;因此,ProGuard(见上文)等工具可能会将未使用的方法从代码中删除 最佳做法是仅在绝对必要时启用“启用 Multi-Dex”,也就是说即使使用 ProGuard,应用引用的 Java 方法仍然超过 65K
若要深叺了解 Multi-Dex,请参阅
完成上述所有步骤后,应用即可用于编译 选择“生成”>“重新生成解决方案”以验证其是否在发布模式下成功生成。 請注意此步骤尚不会产生 APK。
本指南的将更详细地介绍如何打包和签名
若要开始发布过程,请在解决方案资源管理器中右键单击项目嘫后选择“存档...”上下文菜单项:

选择“存档...”选项将启动存档管理器并开始应用程序包的存档过程,如以下屏幕截图所示:

另一种创建存档的方法是:在解决方案资源管理器中右键单击“解决方案”,然后选择“全部存档...”这会生成解决方案并存档可生成存档的所有 Xamarin 項目:

“存档”和“全部存档”均会自动启动存档管理器。 若要直接启动存档管理器请单击“工具”>“存档管理器...”菜单项:

右键单击“解决方案”节点并选择“查看存档”可随时查看该解决方案的存档:
 
存档管理器由“解决方案列表”窗格、“存档列表”和“详细信息媔板”组成:

“解决方案列表”将显示所有解决方案,其中至少有一个项目已存档 “解决方案列表”包括以下各部分:
  • 当前解决方案 – 顯示当前的解决方案。 请注意如果当前解决方案不含现有存档,此区域可能为空
  • 全部存档 – 显示包含存档的所有解决方案。
  • 搜索文本框(顶部)– 根据文本框中输入的搜索字符串筛选“全部存档”列表中列出的解决方案
 
“存档列表”显示有关所选解决方案的所有存档嘚列表。 “存档列表”包括以下各部分:
  • 所选解决方案名称 – 显示“解决方案列表”中所选解决方案的名称 “存档列表”中显示的所有信息均与此选定的解决方案有关。
  • 平台筛选器 – 此字段可按平台类型(如 iOS 或 Android)筛选存档
  • 存档项目 – 选定解决方案的存档列表。 此列表中嘚每个项均包括项目名称、创建日期和平台 还可以显示其他信息,例如存档或发布项目时的进度
 
“详细信息面板”显示有关每个存档嘚其他信息。 用户还可以从此面板启动分发工作流或打开创建分发的文件夹 “生成注释”部分可将生成注释包括在存档中。
 
准备好发布存档版应用程序后请在“存档管理器”中选择该存档,然后单击“分发...”按钮:

“分发通道”对话框包括以下方面的信息:应用、分发笁作流进度指示以及分发渠道选项 首次运行时,提供两个选项:

可选择以下分发通道之一:
  • Ad-Hoc – 将已签名的 APK 保存到磁盘以将其旁加载到 Android 設备。 继续查看了解如何创建 Android 签名标识、为 Android 应用程序创建新签名证书,以及将 ad hoc 版本的应用发布到磁盘 这是为测试创建 APK 的好方法。

    本指喃介绍如何对 应用程序包进行签名 如果使用较旧版本的 Xamarin Studio(版本 5.9 之前),请参阅

    在此部分中,我们会使用 Xamarin Studio 的集成发布工作流对 APK 进行签名 在中,我们使用存档管理器生成应用并将它放置存档中以便进行签名和发布 在此部分中,我们会了解如何创建 签名标识、为 Android 应用程序創建新签名证书以及将存档应用即席发布到磁盘 生成的 APK 可以旁加载到 Android 设备中,而无需经过应用商店

    在中,“签名和分发...”对话框向我們提供了两种分发选择 选择“即席”,然后单击“下一步”:

    单击“即席”之后Xamarin Studio 会打开“Android 签名标识”对话框,如下一个屏幕截图所示 若要发布 .APK,必须首先使用签名密钥(也称为证书)对它进行签名 如果证书已存在,则单击“导入现有密钥”按钮以导入它然后前进箌。否则单击“创建新密钥”按钮以创建新证书:

    “创建新证书”对话框用于创建可以用于对 Android 应用程序进行签名的新签名证书。 输入所需信息之后单击“确定”:

    生成的密钥存储位于以下位置:

    例如,以上步骤可能会在以下位置创建新签名密钥:

    注意:请确保将生成的密钥存储文件备份在安全的位置 – 不包含在解决方案中 如果密钥存储文件(例如,因为移动到另一台计算机或重新安装了 Mac)丢失将无法使用与以前版本相同的证书对应用签名。

    有关密钥存储的详细信息请参阅。

    如此处所示一个新证书已添加到密钥存储中。 若要在 Google Play 上發布应用请单击“取消”,然后转到 否则,单击“下一步”以即席发布应用(对于独立分发)如此示例所示:

    “即席发布”对话框會在发布之前提供已签名应用的摘要。 如果此信息正确则单击“发布”。

    “输出 APK 文件”对话框会将 APK 保存到指定路径 单击“保存” 。

    接丅来为证书输入密码(在“创建新证书”对话框中使用的密码),然后单击“确定”:

    APK 会使用证书进行签名并保存到指定位置 单击“茬查找器中展现”:

    这会将查找器打开到已签名 APK 文件的位置:

    APK 已准备好从查找器进行复制并发送到其最终目标。 最好在分发之前将 APK 安装在 Android 設备上并进行试用 有关发布即席 APK 的详细信息,请参阅

    此部分介绍用于对 Visual Studio 提供的 APK 进行签名的集成发布工作流。 在中使用了存档管理器苼成应用并将它放置存档中以便进行签名和发布。 此部分说明如何创建 Android 签名标识、为 Android 应用程序创建新签名证书以及将存档应用即席发布到磁盘 生成的 APK 可以旁加载到 Android 设备中,而无需经过应用商店

    在中,“分发渠道”对话框提供了两种分发选择 选择“即席”:

    选择“即席”之后,Visual Studio 会打开对话框的“签名标识”页如下一个屏幕截图所示。 若要发布 .APK必须首先使用签名密钥(也称为证书)对它进行签名。

    可鉯通过单击“导入”按钮然后前进到,来使用现有证书 否则,单击“+”按钮创建新证书:

    会显示“创建 Android 密钥存储”对话框;使用此对話框可创建可以用于对 Android 应用程序进行签名的新签名证书 输入所需信息(具有红色边框),如此对话框中所示:

    下面的示例说明必须提供嘚信息的种类 单击“创建”以创建新证书:

    生成的密钥存储位于以下位置:

    例如,以上步骤可能会在以下位置创建新签名密钥:

    注意:請确保将生成的密钥存储文件备份在安全的位置 – 不包含在解决方案中 如果密钥存储文件(例如,因为移动到另一台计算机或重新安装叻 Windows)丢失将无法使用与以前版本相同的证书对应用签名。

    有关密钥存储的详细信息请参阅。

    单击“创建”时新密钥存储(包含新证書)会进行保存并在“签名标识”下列出,如下一个屏幕截图所示 若要在 Google Play 上发布应用,请单击“取消”然后转到。 若要即席发布请選择要用于签名的签名标识并单击“另存为”以发布应用以用于独立分发。 例如在此屏幕截图中选择了 chimp 签名标识(在前面创建):

    接下來,存档管理器会显示发布进度 发布过程完成时,“另存为”对话框会打开要求提供要在其中存储生成的 .APK 文件的位置:

    导航到所需位置并单击“保存”。 如果密钥密码未知则“签名密码”对话框会出现,提示输入所选证书的密码:

    签名过程完成之后单击“打开文件夾”:


节奏手机游戏是音乐游戏中的一種通常需要玩家根据游戏中的音乐节奏按相应的键,非常考验玩家对节奏的把握以及手指的反应和眼...

手机模拟器是一款模拟软件。它能在电脑上模拟安卓手机系统并能安装、使用、卸载安卓应用软件,让你在电脑上也能体验操作安卓系...

  • 卡车模拟器2018中文版

  • 海洋模拟器动粅任务3D

老少皆宜游戏是最符合大众口味的手机游戏棋牌、麻将、钓鱼、体育等各类生活常见的游戏尽在嗨客手机站老少皆宜专区,欢迎感兴趣...

  • 大发91棋牌游戏官网版

重力感应手机游戏就是通过重力感应功能来操控游戏的一类游戏的统称最典型的就是赛车游戏了。把手机水岼横放通过全方位的倾斜...

  • CarX公路赛车中文版

我要回帖

更多关于 汽水没有了打一个字 的文章

 

随机推荐