【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸.pdf_第1页
【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸.pdf_第2页
【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸.pdf_第3页
【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸.pdf_第4页
【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸.pdf_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

eoe 移动开发者社区 原文链接 在我们利用多重的 APKs 在 Google Play 中开发 android 应用时 很重要的一点就是在一开 始就要采取好的方法 以避免在进一步开发过程中遇到不必要的麻烦 这节课将会告诉你如 何在你的涵盖不同类别的屏幕尺寸的应用中创建多重的 APKs 你也将会获得一些工具 这 些工具能让你更容易的维护多重的 APK 代码库 确认你需要多重的确认你需要多重的 APKsAPKs 当你试图创建一个能够在多个不同尺寸的 android 设备上运行的应用程序时 当然 你希望 你的应用程序既能够充分利用较大屏幕尺寸设备的所有空间 又不至于在较小屏幕尺寸设备 上牺牲兼容性和易用性 从一开始看来多重的 APK 支持就是最好的解决方案 但情况往往不 是这样 多重 APK 开发者指南的 Using Single APK Instead 部分包含了一些有用信息 关 于如何用单个的 APK 做到这一点 包括利用我们的支持文库 你也可以阅读本指南以实现多 屏幕支持 你甚至可以用 android SDK 下载我们的支持文库 它可以让你使用蜂窝设备的片 段 使单一 APK 支持多屏幕尺寸更容易 如果你能够做的好 那么仅包含一个单一的 APK 的应用程序会有以下几个优点 出版和测试更容易 只需要维持一个代码库 应用程序可以适应设备配置的变化 跨设备的应用程序恢复工作 无需担心市场的偏好 APK 的 升级 行为 以及 APK 在何种类别的设备上运行 假设你现在已经研究了这一节课的主题 而且还相当好学的吸收掌握了链接中的资源素材 并确定多重的 APKs 是你的应用程序的正确选择 把你的需求列成图表把你的需求列成图表 开始你需要创建一个图表以快速的确定你需要多少的 APK 以及每一个 APK 所囊括的屏幕尺 寸 这种图表能够很容易快速 轻松的绘制出你要的需求 并在以后作为你的参考 我们可 以以代表 Android 平台上可供选择的不同屏幕尺寸的一行单元格作为开始 eoe 移动开发者社区 现在你可以给这个图表涂上色 每一种颜色代表一个 APK 下面的这个例子是关于你怎么把 每一个 APK 适用在一个确定的屏幕尺寸范围内 无论你有什么需求 你都需要两个 APKs 适用于小屏幕尺寸的和适用于所有屏幕尺寸的 或者是 适用于特别大型屏幕尺寸的和适用于所有屏幕尺寸的 给图表的着色 也使得团 队内部沟通更容易 现在 你可以简便的指出每个 APK 为 蓝色 绿色 或 红色 不管它需要涵盖了多少种类型的屏幕尺寸 把所有的公共代码和资源文件放在库工程中把所有的公共代码和资源文件放在库工程中 无论你是修改现有的 Android 应用程序或新建一个工程 你应该做的第一件事就是建立代码 库 这是最重要的 进入该库项目的所有资源 都只需要更新一次 编码语言的本地化的字 符串 颜色文件 固定在共享代码的错误 从而提高你的开发效率 并且能减少一些能够 避免的可能性错误 注意 注意 如何创建库项目及库项目本身的实施细节已经超出了本节课的范围 你可以从下面的 链接去了解它 用 Eclipse 建立一个库项目 用命令行建立一个库项目 如果你将现有的应用程序转换成用多个 APK 支持的项目 整理你的代码中的每一个本地话的 字符串文件 列表的值 颜色资源 菜单图表和布局 使他们在多个 APK 之间不受影响 并 把它们全放进库项目中 那些不会发生太大变化的代码也应放入库项目中 你可能会发现自 己可以在两个 APK 之间扩展这些类来增加一个或多个方法 另一方面 如果你要从头开始 创建应用程序 尝试尽可能的先编写库项目中的代码 如果需要的话 只要把它移动到一个 单独的 APK 中 这比你在多个 APK 中添加它 甚至在数月后试图找出这一团糟似的代码是否 可被移动到库项目部分从长远看来更容易管理 创建一个新的创建一个新的 APKAPK 项目项目 首先你要有个供每个 APK 释放的单独的 Android 项目 为了便于组织 得把库项目和所有相 关的 APK 项目放在相同的父文件夹下 要记住每个 APK 需要有相同的包名 虽然他们并不一 定需要与库共享包名 按照前面描述的方案 如果你有三个应用程序 你的根目录可能看起 来要像这样 1 span alexlucas code multi apks root ls eoe 移动开发者社区 2 span foo blue 3 span foo green 4 span foo lib 5 span foo red 一旦项目被创建了后 就要添加库项目作为每个 APK 项目的参考 如果可能的话 在库项目 中定义你的启动 Activity 并在你的 APK 项目中扩展这个 Activity 一个在库项目中的被 定义的启动 Activity 能把你所有的应用程序在一个地方初始化 这样一来 每个单独的 APK 就不需要重新实现 通用的 任务 如初始化 Analytic 分析 运行许可检查 以及在两 个 APK 之间不会发生太大变化的初始化程序 调整调整 ManifestsManifests 文件文件 当用户从 Google Play 下载一个使用多重 APK 的应用程序时 用下面两个简单的规则可判别 用哪个 APK 是正确的 从 Manifest 中可看出 比较特殊的 APK 是合格的 在合格的 APK 中 我们选择高版本的 APK 举例 我们把前面描述的多重 APK 放入一组 并假设每个 APK 已被设置为支持所有的屏幕尺 寸均大于它的 目标 的屏幕尺寸 个别的说 在可能的范围内的每个 APK 是像这样的 但是 通过使用 选择高版本号 的规则 如果我们给每个 APK 设置 versionCode 属性 如 红 蓝 用下面的图表可能更有效果 现在 我们进一步假设代表红色的 APK 有一些需求 而其它两个没有 开发者指南中的 Fil ters on Google Play 页面对这个问题有一个完整的列表 为了便于举例 我们假设现在红 色的 APK 需要一个前置摄像头 实际上 红色 APK 是为了用前置摄像头在屏幕剩余的可用空 间上做一些有趣的事情 但是 令人诧异的是 事实证明并不是所有的大型设备都有前置摄 像头 幸运的是 如果用户从一台这样的设备浏览 Goole Play Google Play 会查看 Manif est 文件中红色 APK 列出的关于前置摄像头的需求 在确定红色 APK 并不适用该设备后 会 悄悄忽略这个需求 这时候我们会发现绿色 APK 不仅可以与特大屏幕型设备兼容 而且它也 并不会关心该设备是否有一个前置摄像头 尽管有前置摄像头这个意外 用户仍可从 Googl e Play 上面下载应用程序 因为会有一个 APK 支持特定的屏幕尺寸 你要有一个良好的版 本代码计划 以使你所有的应用程序在不同的 轨道 你可以在开发者指南的 Version C eoe 移动开发者社区 odes 区找到一个推荐的版本代码计划 由于设置的 APKs 只能处理三种可能的外形尺寸 我 们个可以把每一个 APK 分隔 1000 并且从起始开始递增 这样也足够处理 就像下面这样 蓝色 1001 1002 1003 1004 绿色 2001 2002 2003 2004 红色 3001 3002 3003 3005 把所有这些放在一起 你的 Android 程序的 Manifests 看起来将会像这样 蓝色 1 3 7 绿色 1 3 7 红色 1 3 7 eoe 移动开发者社区 请注意 请注意 从技术上来说 多重的 APKs 将会与多屏幕支持的标签或者多屏幕兼容的标签一起 处理问题 多屏幕支持通常是首选 但是如果要在一个相同的 Manifest 中使用这两个标签 通常会是一个糟糕的想法 这样做会使事情变得不必要的复杂 并且会增加错误发生的几率 另外还要注意 不要默认屏幕尺寸的值 小的屏幕和正常的屏幕尺寸的默认值总是 true Manifests 要显示的设置每个屏幕大小的值 如果你不这样做的话 你会为它的上下行头疼 举例来说 因为 xlarge 屏幕尺寸不存在 Manifest 和小于 9 的目标 SDK 会自动把 xlarge 屏幕尺寸设置为 false 所以要明确的显示出来 审核登录前的表单审核登录前的表单 在把 APK 上传到 Google Play 前 再仔细检查一下几项 切记 这几点是专门为多重 APKs 准备的 并不能代表所有将要上传到 Google Play 的应用程序的一个完整检查列表 所有的 APKs 都必须要有相同的包名 所有的 APKs 都必须签署相同的证书 在 Manifest 中把你的 APK 想要支持的屏幕尺寸设置为 true 把不支持的屏幕 尺寸设置为 false 仔细检查你的 Manifest 文件有没有相互冲突的矛盾信息 在 xlarge 的屏幕尺寸上仅支持 cupcake 的 APK 是不可见的 每个 APK 的 Manifest 文件必须是唯一的 至少要有一个支持的屏幕尺寸 OpenGL 纹理 或 者是平台版本 至少在一个移动设备上测试每一个 APK 除此之外 在你的开发机之中还有一个能够自定义 的设备 那就是模拟器 现在 开始行动吧 另外 在把应用程序推广以前你还要检查编译 APK 以确保把你的应用程序放到 Google Pl ay 后不会出现任何问题 实际上 使用 AAPT 工具会让这些变的相当简单 AAPT Andro id 的资源打包工具 是创建和打包您的 Android 应用程序的构建过程的一部分 也是一个 非常有用的检查工具 1 span aapt dump badging 2 3 span style com example hello versionCode 1 0 4 5 span sdkVersion 11 6 7 span uses permission android permission SEND SMS eoe 移动开发者社区 8 9 span application icon 120 res drawable ldpi icon png span 10 span application icon 160 res drawable mdpi icon png span 11 span application icon 240 res drawable hdpi icon png span 12 span style Hello icon res drawable mdpi icon png 13 span style com example hello HelloActivity label 14 span uses feature android hardware telephony 15 16 s uses feature android hardware touchscreen 17 span main 18 span supports screens xlarge 19 span supports any density true 20 span locales 21 span densities 120 160 240 在你检查 AAPT 输出时 一定要确保在多屏幕支持与多屏幕兼容中没有相互冲突的值 这样 就不会有你没在 Manifest 文件中设置的 uses feature 值出现 上面的例子在一部分设 备中 APK 的一大部分是不可见的 为什么会这样呢 因为通过添加所需的 SEND SMS 权限 android hardware telephony功能会 隐式添加 由于大多数 如果不是全部 的 xlarge 设备是没有电话硬件的平板电脑 Goog le Play 会过滤掉这种情况下的 APK 直到有电话硬件的 xlarge 设备出现 我们可以通过添加以下代码到 Manifest 文件中来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论