Android 编译问题,求个大佬进来看看。

2020-07-13 15:10:24 +08:00
 kpppp

最近编译源码 Android9.0
在 mk 里面遇到一个奇怪的注释:

IoStats are parcelable types (vs. interface types), but the build system uses an initial I as a magic marker to mean "interface", and due to this ends up refusing to compile these files as part of the build process.
A clean solution to this is actively being worked on by the build team, but is not yet available, so for now we just filter the files out by hand.
*

car_lib_sources := $(filter-out src/android/car/storagemonitoring/IoStats.aidl,$(car_lib_sources)) car_lib_sources := $(filter-out src/android/car/storagemonitoring/IoStatsEntry.aidl,$(car_lib_sources))

public final class IoStatsEntry implements Parcelable {
...省略代码
}
public class IoStats implements Parcelable {
...省略代码
}

为什么在编译的时候,把这两个I开头的 aidl 文件过滤掉?这个是系统的规则嘛?

8348 次点击
所在节点    Android
3 条回复
Madcrow
2020-07-13 19:42:29 +08:00
"I"开头的 AIDL 代表接口吧,这个 IoStats 又不是个接口,就过滤掉了
kpppp
2020-07-14 09:49:24 +08:00
@Madcrow 应该是,我后面写了 demo 验证,就是不知道是哪个 mk 文件 或者 脚本来做的这个判断。
Madcrow
2020-07-14 10:39:08 +08:00
AIDL 解析工具在 system/tools/aidl 目录下,没看到如何解析首字母的地方,你可以找找😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689588

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX