as工程放到源码编译_在AS中开发SystemUI(2):导入SystemUI源码

1、前言

拿到了系统源码,搭建好了系统环境,你就掌握了这个系统,只要你够牛逼,怎么玩就是你说了算。我们以 SystemUI 为例,来讲解如何在 AS 中流畅的开发系统 App。

首先需要拿到 SystemUI 源码,知道 SystemUI APK 的最终存放路径,以及在导入前预先分析下需要依赖哪些模块。

2、源码路径

大部分的系统 App 源码,都在 packages 目录中,比如 packages/apps/Settings/。

但是 SystemUI 比较特殊,源码路径在:frameworks/base/packages/SystemUI,而 Android 8.1 的 SystemUI 最终的 APK 路径在 /system/priv-app/SystemUI 目录中。

不同版本的系统可能会有些差异,Android 10 的 SystemUI APK 路径就在 /system/product/priv-app/SystemUI 中,这些变化到底是为了啥,我也不是很清楚。

拿到了源码,也知道目标路径了,可以开始了。

3、分析源码结构,分析 mk 文件

拿到了源码,在进行下一步之前,先大致了解下项目的结构和依赖。

分析源码结构

可使用 VS Code 打开 SystemUI 目录,Ctrl + P,输入 AndroidManifest,即可查看源码中有几个 Manifest 文件,通常来说,有几个 Manifest 文件就意味着项目中有几个 Module。或者查看有多少 res 目录,有多少个 res 也意味着有多少个 Module。为什么呢?

因为 Manifest 文件会根据 package 属性生成 R.java 文件,而源码中的 java 文件引用资源时都是以“package.R.string.xxxx”来引用的,所以必须通过 Library Module 的形式去引用这些 res,才能生成正确的 R 文件。

SystemUI的源码结构如下:

docs

plugin

ExamplePlugin

src

Android.mk

AndroidManifest.xml

res

res-keyguard

scripts

src

tests

Android.mk

AndroidManifest.xml

lint.xml

MODULE_LICENSE_APACHE2

NOTICE

proguard.flags

README.md

先看文件:

mk 文件是在系统源码环境下编译 APK 时的规则,很重要,稍后看。

manifest 文件大家都知道。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值