过去几年以来,安卓主题已经非常成熟,zip-moding APKs已经被更优雅的解决方案所取代,比如RRO Layers和新推出的Substratum。虽然后者是新的,还处于早期阶段,但RRO Layers的受欢迎程度和适应性已经飙升,社区为覆盖池做出了积极贡献。
什么是RRO层?
由于安卓棒棒糖的主题功能有限,Runtime Resource Overlay是索尼内部针对Xperia主题的功能和快速原型开发的解决方案。鉴于其巨大的潜力,社区中的一些开发人员在索尼的基础上进行了开发,提出了RRO层框架,可以很容易地与大多数定制和稍加修改的rom一起使用。
作为其“RRO”前缀的适当声明,Layers框架在运行时替代了应用程序的资源,让开发人员可以将它们绑定到主题,并将各种对象作为主题使用,例如应用程序使用的颜色字符串、大小、整数值,甚至绘制对象,让高级用户可以轻松精细地控制手机上的主题应用程序。
初级课程
由于RRO框架易于操作,因此在运行时交换资源和构建Layers主题是一项简单明了的任务。唯一的先决条件是基本的标记知识和颜色串的一般概念。这样,还是有一些工具的,这样就可以造出漂亮的东西。我们开始吧-
步骤1:设置构建环境
图层工具
构建覆盖图的实际过程需要一套工具,这些工具完全免费,几分钟就可以设置好。该清单包括:
安卓开发环境
java开发工具包
文本编辑器,如升华文本或记事本
APK工具
图层项目生成器
第二步:生成基本项目
图层生成器
图层项目构建器是一个方便的工具,这使得构建覆盖图层中最复杂的部分(配置新项目)变得不那么重要。仅限Windows,这个小软件只包含目标应用的包名、作者名、项目名、包图标等一堆参数,生成支持Gradle的Android Studio包,可以直接进入实际的主题流程。
第三步:将项目导入安卓工作室
图层导入
启动安卓工作室如果这是您的第一次,您必须设置它并单击“打开现有的安卓工作室项目”选项。选择生成的文件夹,该文件夹通常与生成器位于同一位置,然后继续并导入它。
步骤4:完成项目设置
分层结构
现在,您应该会在左窗格中看到带有文件列表的安卓工作室项目窗口。默认视图对我们来说效果不好,所以请从下拉菜单中选择项目视图。安卓首选的构建系统Gradle现在可以随时启动,开始最终的配置和处理步骤。完成后,转到“生成”菜单并重新生成项目以确保安全,忽略可能显示的任何梯度警告。
第五步:获取资源
图层apktool
要为应用程序的资源设置主题,您需要手动使用其资源标识符,该标识符是在原始APK的资源文件中定义的。你问如何得到那些。当然,APKTool。强大的工具允许对应用程序文件进行逆向工程,并提供反编译的项目作为输出,而Java代码仍然保留了其精美的smali格式,资源的副本与编译前项目中显示的完全相同。对APK进行反编译后,其所需的资源文件将被复制到项目中的相同位置,例如colors.xml,以更改应用程序的配色方案。
第六步:主题,主题,主题
图层主题
现在你可以开始覆盖主题了。有了应用程序的资源文件之后,这个过程就很简单了,大部分的工作就是寻找合适的资源。例如,如果您想要更改应用程序的原色和强调色,您需要找到colorPrimary和colorAccent资源并更改它们的十六进制值。完成后,您只需点击工具栏上的绿色运行按钮,通过adb连接设备,然后在设备上安装覆盖层。然后,您可以在图层管理器应用程序中启用它,并查看实际工作。小学,不是吗?
笔记
主题化过程本身非常容易,但是你可能会在这个过程中遇到一些陷阱,你可能会措手不及。其中一些应该注意-
十六进制颜色字符串
如果您不熟悉十六进制配色方案,可以在网上使用大量工具,这些工具允许您从调色板中选择颜色并生成相应的十六进制代码,例如HexColorTool和Adobe Kuler,如果您正在寻找颜色强调值,甚至可以生成补色。简而言之,十六进制配色方案以#RRGGBB或#RGB的格式定义颜色,值范围从00到ff,这三种原色组合在一起形成某些颜色。有时,您可能会遇到八个字符的十六进制字符串,但不要担心,因为这两个额外的字符是方案的一部分,用于
表示 字母,它是颜色的透明度值,格式为#AARRGGBB或#ARGB。尺寸单位
为了支持多种屏幕尺寸,Android使用称为dp或dip的度量单位,这是与密度无关的像素的缩写 。这些值由框架在运行时转换为实际像素值,并且大约是设备密度桶的数量,设备密度桶为此值分配了适当的乘数。
可绘制的更改
更改可绘制对象是一个看似简单的过程,唯一需要的是具有相同名称和相同大小的图像。但是,必须牢记Android的可绘制密度系统,例如Android Asset Studio等工具会通过预定义的可绘制集和图像调整大小选项来简化此过程。
样式编辑
有时,某些属性可能未在其各自的文件中找到,一些开发人员选择直接在应用程序的主题中输入诸如原色和强调色的值。这些属性通常可以在AppTheme 组下的styles.xml文件中 找到 。