gpt4 book ai didi

android - 如何浏览 Android C++ 源代码

转载 作者:行者123 更新时间:2023-11-30 05:18:18 27 4
gpt4 key购买 nike

我感兴趣的是 Android 如何启动 Activity,以及启动 Activity 时淡入动画是如何实现的。

我可以轻松浏览 Java 源代码,例如在 GrepCode 上,发现有一种方法可以覆盖 Activity 转换,这让我想到了 IActivityManager.java其中定义:

public int startActivities(
IApplicationThread caller, String callingPackage, ...);

还有:

public void overridePendingTransition(
IBinder token, String packageName, int enterAnim, int exitAnim);

这两者都使用 RPC 常量调用 native 代码,例如:

int START_ACTIVITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+120;

我的问题是:在哪里可以找到实现 startActivitiesoverridePendingTransition 的实际 C++ 代码?

Google 没有返回任何内容,看起来 AOSP 代码库分布在多个 Git 存储库(?)中,不知道要查看哪个。

一般来说,您如何从 Java 接口(interface)导航到该接口(interface)的 C++ 实现?

最佳答案

相应的方法在frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java中实现。转到此文件,您将找到您的方法的实现。

这种不寻常的位置由以下解释。在 ActivityManagerService 的情况下,Binder 接口(interface)是手动实现的,没有使用 .aidl 描述。接口(interface)IActivityManager.java是由ActivityManagerNative.java中的抽象类ActivityManagerNative实现的,具体实现在中提供>ActivityManagerService.java

关于android - 如何浏览 Android C++ 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41775844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com