Android Studio 项目中的 C++ 代码是否最终出现在 apk 文件中(除了 .so 文件)?
Does the c++ code in an Android Studio project ends up in the apk file (apart from the .so file)?
当我在 Android Studio 项目中包含一个 c++ 文件时,代码被编译成一个 .so 文件并包含在发布 apk 文件的 'lib' 下。除此之外,c++ 中的函数是否看起来像 java 方法出现在 classes.dex
文件中的其他任何地方?
我的objective是确保c++文件中的每个函数只出现在.so文件中
它没有以apk文件结尾。它只提供 .so 和 .a 文件。其中 .so 文件是共享库,.a 文件是 android 应用程序无法使用的静态库。
是的,您所有的 c++ 类 编译为 .so 文件,您的函数都隐藏在其中。这些编译后的文件通过将它们放在 libs 文件夹中导入到您的项目中。
另一方面,您需要 JNI 调用来桥接要由 Java 调用的 C++ 函数。这些方法写在Java端,编译成dex(dalvikexecutable)文件。
所有这些文件都打包为.APK 文件。它可能看起来像一个安装文件,但实际上是一个压缩文件。更有可能.zip
您的问题得到解答;您的代码仅在隐藏的 .so 和 .dex 文件中。
当我在 Android Studio 项目中包含一个 c++ 文件时,代码被编译成一个 .so 文件并包含在发布 apk 文件的 'lib' 下。除此之外,c++ 中的函数是否看起来像 java 方法出现在 classes.dex
文件中的其他任何地方?
我的objective是确保c++文件中的每个函数只出现在.so文件中
它没有以apk文件结尾。它只提供 .so 和 .a 文件。其中 .so 文件是共享库,.a 文件是 android 应用程序无法使用的静态库。
是的,您所有的 c++ 类 编译为 .so 文件,您的函数都隐藏在其中。这些编译后的文件通过将它们放在 libs 文件夹中导入到您的项目中。
另一方面,您需要 JNI 调用来桥接要由 Java 调用的 C++ 函数。这些方法写在Java端,编译成dex(dalvikexecutable)文件。
所有这些文件都打包为.APK 文件。它可能看起来像一个安装文件,但实际上是一个压缩文件。更有可能.zip
您的问题得到解答;您的代码仅在隐藏的 .so 和 .dex 文件中。