快速提示:使用运行时资源叠加框架主题Android


mkdir MyOverlays && cd MyOverlays

touch AndroidManifest.xml



清单文件必须包含应用程序的包名称,以及要为其创建叠加层的应用程序的包名称。因为我们今天要更改快速设置托盘的外观,所以我们必须使用com.android.systemui 目标包名称。


`<?``xml` `version``=``"1.0"` `encoding``=``"utf-8"``?>`



`<``manifest`



`xmlns:android``=``"[http://schemas.android.com/apk/res/android]( )"`



`package``=``"com.tutsplus.myoverlays"``>`



`<``overlay` `android:targetPackage``=``"com.android.systemui"`



`android:priority``=``"1"``/>`



`</``manifest``>`



此时,我们已准备好开始使用快速设置托盘以及Android系统UI的任何其他组件。

2.创建主题


要覆盖目标应用程序的资源,您的应用程序必须具有同名的资源。例如,如果要更改目标应用程序的颜色,你通常必须覆盖其colors.xml 文件用自己的colors.xml 文件。

为了方便您,RRO框架不希望叠加层是全面的,并且能够处理原始资源中存在的所有细节。换句话说,您的叠加层只需要包含您想要更改的细节。

为了使事情更清楚,假设我们想要将快速设置托盘的背景颜色从默认的蓝灰色更改为深橙色。颜色的 在系统UI应用程序的res / values / colors.xml文件中指定。如果您对其内容感到好奇,可以查看 官方Android Git存储库中的文件

要更改颜色,您现在必须 在项目中创建res / values / colors.xml文件。


mkdir -p res/values

touch res/values/colors.xml



在colors.xml 文件中,要更改托盘的背景颜色,我们必须定位一个名为的颜色system_primary_color。因此,将以下XML添加到文件中:


<?xml version="1.0" encoding="utf-8"?>

<resources>

    <color name="system_primary_color">#FFBF360C</color> 

                                <!-- deep orange 900 -->

</resources>



值得注意的是,上述XML与使用Android Studio创建普通应用时使用的XML没有什么不同。

我们的简单主题准备就绪!如果需要,可以 向文件添加更多标签以更改系统UI的其他颜色。

3.生成APK

=========================================================================

我们现在将使用Android资产包装工具(aapt 简称Android SDK),将简单项目转换为Android平台可以使用的APK文件。

要生成APK,您只需指向aapt 清单文件,res 目录和目标平台的android.jar 文件即可。当然,您还必须指定要为APK文件指定的名称。


aapt package -M AndroidManifest.xml -S res/ \

    -I ~/Android/Sdk/platforms/android-23/android.jar \

    -F myoverlays.apk.u



在上面的命令中,您可以看到我已选择将APK文件命名为myoverlays.apk.u。那是因为我们的APK目前都是未签名且未对齐的。

要签名,您必须使用该jarsigner 工具。目前,我建议您使用默认的Android调试密钥库对其进行签名。


jarsigner -keystore ~/.android/debug.keystore \

        myoverlays.apk.u androiddebugkey



最后,您必须使用该zipalign 工具对齐并优化APK 。作为输入,该工具需要未对齐和对齐的APK的名称,以及指定对齐边界的数字。截至2017年,这个数字可能只是4。


zipalign 4 myoverlays.apk.u myoverlays.apk



4.安装APK

=============================================================================

要安装使用RRO框架的APK,您只需将其放在/ system / vendor / overlay 目录中即可。默认情况下,该目录属于只读文件系统,只能由root用户访问。如果您是自定义ROM开发人员,或者已植根Android设备,则安装APK时应该没有问题。

但是,在这个快速提示中,我将向您展示如何在模拟器上安装APK。这样,您可以在不危及手机的情况下测试叠加层。

首先使用emulator 命令行工具在可写文件系统模式下启动模拟器 。


emulator -avd Nexus_5X_API_23 -writable-system



您现在可以使用该adb 工具在模拟器上获得root权限(如果您还没有)。


adb root


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/2960524d3eaca1b4e8351a443a99b936.png)
![img](https://img-blog.csdnimg.cn/img_convert/3069ac0747b84ce8c938d2a6883dd67b.png)
![img](https://img-blog.csdnimg.cn/img_convert/5c35e866346fb90ee0df68e8791e702a.png)
![img](https://img-blog.csdnimg.cn/img_convert/d076aa49bbec1d10ba96e83389302dca.png)
![img](https://img-blog.csdnimg.cn/img_convert/881439b235f250627e9c2f2ece47d5b6.png)
![img](https://img-blog.csdnimg.cn/img_convert/16c4cf83858598a3efc6033473554e34.png)
![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)**
![img](https://img-blog.csdnimg.cn/img_convert/8071333805236ec36c5bf930f8e09b28.png)



## 结尾

**如何才能让我们在面试中对答如流呢?**

答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?为此我整理了一份Android学习资料路线:

![](https://img-blog.csdnimg.cn/img_convert/06fa20361fd5e97b1f810da99fa70050.webp?x-oss-process=image/format,png)

这里是一份BAT大厂面试资料专题包:

![](https://img-blog.csdnimg.cn/img_convert/e8e7ef99c9073aa47967b468e02c1635.webp?x-oss-process=image/format,png)

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。



:

[外链图片转存中...(img-5WwEYHTD-1712002482226)]

这里是一份BAT大厂面试资料专题包:

[外链图片转存中...(img-86Oyjw4I-1712002482226)]

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。



> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值