android - Android Studio 项目中的 C++ 代码是否最终出现在 apk 文件中(除了 .so 文件)?

标签 android c++ android-ndk cmake .so

当我在 Android Studio 项目中包含一个 c++ 文件时,代码被编译成一个 .so 文件并包含在发布 apk 文件的“lib”下。除此之外,c++ 中的函数是否看起来像 java 方法出现在 classes.dex 文件中的其他任何地方?

我的目标是确保 c++ 文件中的每个函数只出现在 .so 文件中。

最佳答案

是的,所有编译为 .so 文件的 C++ 类和函数都隐藏在其中。这些编译后的文件通过将它们放在 libs 文件夹中导入到您的项目中。

另一方面,您需要有 JNI 调用来桥接要由 Java 调用的 C++ 函数。这些方法是用 Java 端编写的,并编译为 dex(dalvik ex可执行)文件。

所有这些文件都打包为.APK 文件。它可能看起来像一个安装文件,但实际上是一个压缩文件。更有可能.zip

你的问题回答;您的代码仅在隐藏的 .so 和 .dex 文件中。

关于android - Android Studio 项目中的 C++ 代码是否最终出现在 apk 文件中(除了 .so 文件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997426/

相关文章:

android - 透明 toast 框

c++ - 在 struct[] 中分配 char* 指针值(结构成员)的最优化方法

gcc - 如何知道ndk-build的gcc优化级别

c++ - 使用 ANDROID NDK 在 Cplusplus 中调用 ffmpeg1.2.1 时出现 "undefined reference to "

android - 有什么方法可以在 ANativeWindow 上渲染原始视频并同时将其写入文件吗?

android - SpannableStringBuilder : indexOutOfBoundsException setSpan ends beyond length 0

java - 在 Serialized 类的构造函数中定义对象

java - 将 Android 模块从库切换到应用程序会导致 "Unable to resolve dependency for :app@debug/compileClasspath"/

python嵌入: passing list from C to python function

c++ - 无效的对象访问 C++