繁体   English   中英

如何导航 Android C++ 源代码

[英]How to navigate Android C++ sources

我对 Android 如何启动 Activity 以及在启动 Activity 时如何实现淡入动画很感兴趣。

我可以轻松地浏览 Java 源代码,例如在 GrepCode 上,并发现有一种方法可以覆盖活动转换,这使我进入了IActivityManager.java ,它定义了:

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

并且:

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

这两个都使用 RPC 常量调用本机代码,例如:

int START_ACTIVITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+120;

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

Google 什么也没有返回,看起来 AOSP 代码库分布在多个 Git 存储库 (?) 中,并且不知道要查看哪一个。

通常,您如何从 Java 接口导航到该接口的 C++ 实现?

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

这种不寻常的位置解释如下。 对于 ActivityManagerService,Binder 接口是手动实现的,不使用 .aidl 描述。 接口IActivityManager.java由抽象类实现ActivityManagerNativeActivityManagerNative.java ,实际执行这在实际上是提供ActivityManagerService.java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM