问题描述
所以我有一个复杂的React Native项目-至少3个或4个屏幕,每个屏幕都有复杂的逻辑。
我使用以下命令创建了APK:
react-native bundle --platform android --dev false --entry-file index.js \
--bundle-output android/app/src/main/assets/index.android.bundle \
--assets-dest android/app/src/main/res/
请注意,APK也可以正常运行。
我的问题是,该逻辑的所有类文件在哪里?
任何帮助表示赞赏。谢谢。
解决方法
React Native 不会将您的组件编译为原生 Android 类。
这里有一个类似的问题:
Does React Native compile JavaScript into Java for Android?
,首先要安装APKTOOL
,然后解压apk
,然后反编译js代码如下
安装apktool
对于 Macbook
brew install apktool
对于 Linux
apt-get install -y apktool
对于窗口
您可以阅读窗口DOCS的安装步骤
用法
安装 apktool
后,通过在终端上运行此命令来解压缩 apk 文件,如下所示:
apktool d /pathOfApkFile.apk
之后您将在 index.android.bundle
处获得 pathOfApkFile/assets/index.android.bundle
文件
你可以使用 react-native-decompiler 反编译 index.android.bundle
文件
反编译index.android.bundle
文件
你可以通过运行这个命令反编译index.android.bundle
npx react-native-decompiler -i ./index.android.bundle -o ./output
之后会在./output
目录下得到JS反编译文件