【Android开发Wiki】进阶篇包含多个APK(二):创建多个APKs为不同的屏幕尺寸

更新时间:2023-05-12 23:40:45 阅读: 评论:0

原文链接:
/training/multipleapks/screensize.html
在我们利用多重的APKs在Google Play中开发android应用时,很重要的一点就是在一开始就要采取好的方法,以避免在进一步开发过程中遇到不必要的麻烦。这节课将会告诉你如何在你的涵盖不同类别的屏幕尺寸的应用中创建多重的APKs。你也将会获得一些工具,这些工具能让你更容易的维护多重的APK代码库。
确认你需要多重的APKs
当你试图创建一个能够在多个不同尺寸的android设备上运行的应用程序时,当然,你希望你的应用程序既能够充分利用较大屏幕尺寸设备的所有空间,又不至于在较小屏幕尺寸设备上牺牲兼容性和易用性。从一开始看来多重的APK支持就是最好的解决方案,但情况往往不是这样。多重APK开发者指南的Using Single APK Instead部分包含了一些有用信息,关于如何用单个的APK做到这一点,包括利用我们的支持文库。你也可以阅读本指南以实现多屏幕支持,你甚至可以用android SDK下载我们的支持文库,它可以让你使用蜂窝设备的片段(使单一APK支持多屏幕尺寸更容易)。
如果你能够做的好,那么仅包含一个单一的APK的应用程序会有以下几个优点:
∙出版和测试更容易
∙只需要维持一个代码库
∙应用程序可以适应设备配置的变化
∙跨设备的应用程序恢复工作盖公章
∙无需担心市场的偏好,APK的“升级”行为,以及APK在何种类别的设备上运行假设你现在已经研究了这一节课的主题,而且还相当好学的吸收掌握了链接中的资源素材,并确定多重的APKs是你的应用程序的正确选择。
把你的需求列成图表
开始你需要创建一个图表以快速的确定你需要多少的APK,以及每一个APK所囊括的屏幕尺寸。这种图表能够很容易快速、轻松的绘制出你要的需求,并在以后作为你的参考。我们可以以代表Android平台上可供选择的不同屏幕尺寸的一行单元格作为开始。
现在你可以给这个图表涂上色,每一种颜色代表一个APK。下面的这个例子是关于你怎么把每一个APK适用在一个确定的屏幕尺寸范围内。
无论你有什么需求,你都需要两个APKs,“适用于小屏幕尺寸的和适用于所有屏幕尺寸的”
或者是“适用于特别大型屏幕尺寸的和适用于所有屏幕尺寸的”。给图表的着色,也使得团队内部沟通更容易,现在,你可以简便的指出每个APK为“蓝色”,“绿色”或“红色”,不管它需要涵盖了多少种类型的屏幕尺寸。
把所有的公共代码和资源文件放在库工程中
无论你是修改现有的Android应用程序或新建一个工程,你应该做的第一件事就是建立代码库,这是最重要的。进入该库项目的所有资源,都只需要更新一次(编码语言的本地化的字符串,颜色文件,固定在共享代码的错误),从而提高你的开发效率,并且能减少一些能够避免的可能性错误。
作家收入注意:如何创建库项目及库项目本身的实施细节已经超出了本节课的范围,你可以从下面的链接去了解它_
∙用Eclip建立一个库项目肘子的做法大全
∙用命令行建立一个库项目
如果你将现有的应用程序转换成用多个APK支持的项目,整理你的代码中的每一个本地话的字符串文件,列表的值,颜色资源,菜单图表和布局,使他们在多个APK之间不受影响,并把它们全放进库项目中。那些不会发生太大变化的代码也应放入库项目中。你可能会发现自己可以在两个APK之间扩展这些类来增加一个或多个方法。另一方面,如果你要从头开始创建应用程序,尝试尽可能的先编写库项目中的代码,如果需要的话,只要把它移动到一个单独的APK中。这比你在多个APK中添加它,甚至在数月后试图找出这一团糟似的代码是否可被移动到库项目部分从长远看来更容易管理。
创建一个新的APK项目开业对联
首先你要有个供每个APK释放的单独的Android项目。为了便于组织,得把库项目和所有相关的APK项目放在相同的父文件夹下。要记住每个APK需要有相同的包名,虽然他们并不一定需要与库共享包名。按照前面描述的方案,如果你有三个应用程序,你的根目录可能看起来要像这样:
纪翔
一旦项目被创建了后,就要添加库项目作为每个APK项目的参考。如果可能的话,在库项目中定义你的启动Activity,并在你的APK项目中扩展这个Activity。一个在库项目中的被定义的启动Activity能把你所有的应用程序在一个地方初始化,这样一来,每个单独的APK 就不需要重新实现“通用的”任务,如初始化Analytic(分析),运行许可检查,以及在两个APK之间不会发生太大变化的初始化程序。
调整Manifests文件
当用户从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
odes区找到一个推荐的版本代码计划。由于设置的APKs只能处理三种可能的外形尺寸,我们个可以
布和纸怕什么把每一个APK分隔1000,并且从起始开始递增,这样也足够处理。就像下面这样:蓝色:1001,1002, 绿色:2001,2002, 红色:3001,3002,3003,
把所有这些放在一起,你的Android程序的Manifests看起来将会像这样:
蓝色:
画画教程
绿色:
红色:
请注意,从技术上来说,多重的APKs将会与多屏幕支持的标签或者多屏幕兼容的标签一起处理问题。多屏幕支持通常是首选,但是如果要在一个相同的Manifest中使用这两个标签通常会是一个糟糕的想法。这样做会使事情变得不必要的复杂,并且会增加错误发生的几率。
另外还要注意,不要默认屏幕尺寸的值(小的屏幕和正常的屏幕尺寸的默认值总是true),Manifests要显示的设置每个屏幕大小的值。如果你不这样做的话,你会为它的上下行头疼。
举例来说,因为xlarge屏幕尺寸不存在,Manifest和小于9的目标SDK会自动把xlarge 屏幕尺寸设置为fal。所以要明确的显示出来!
审核登录前的表单
在把APK上传到Google Play前,再仔细检查一下几项。切记,这几点是专门为多重APKs 准备的,并不能代表所有将要上传到Google Play的应用程序的一个完整检查列表
∙所有的APKs都必须要有相同的包名
苏轼的千古名句∙所有的APKs都必须签署相同的证书
∙在Manifest中把你的APK想要支持的屏幕尺寸设置为true,把不支持的屏幕尺寸设置为fal
∙仔细检查你的Manifest文件有没有相互冲突的矛盾信息(在xlarge的屏幕尺寸上仅支持cupcake的APK是不可见的)
∙每个APK的Manifest文件必须是唯一的,至少要有一个支持的屏幕尺寸、OpenGL纹理、或者是平台版本
∙至少在一个移动设备上测试每一个APK。除此之外,在你的开发机之中还有一个能够自定义的设备,那就是模拟器。现在,开始行动吧!
另外,在把应用程序推广以前你还要检查编译APK,以确保把你的应用程序放到Google Pl ay后不会出现任何问题。实际上,使用“AAPT”工具会让这些变的相当简单。AAPT(Andro id的资源打包工具)是创建和打包您的Android应用程序的构建过程的一部分,也是一个非常有用的检查工具。

本文发布于:2023-05-12 23:40:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/605973.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:屏幕   尺寸   项目   设备   应用程序
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图