如何在android

时间:2015-11-09 13:35:55

标签: android android-ndk java-native-interface

我从apk中提取了.so文件,我没有写,并在我的android工作室项目中将其添加为库。
我声明类名与.so文件相同,但是studio无法解析本机方法的名称。我怎样才能用.so文件找出原生方法的原型?

1 个答案:

答案 0 :(得分:0)

您可以列出JNI_Onload文件中的所有符号,并查找导出的JNI调用。如果JNI方法未在Java_com_xxx中注册,则它们通常以$ arm-linux-androideabi-readelf -s libtest.so |arm-linux-androideabi-c++filt |grep Java 为前缀。因此,您可以通过以下命令获取所有符号名称。假设您已在开发环境中安装了NDK。

import pandas as pd

d = {'x': {'b': 10, 'c': 20}, 'y': {'b': '33', 'c': 44}}

df = pd.DataFrame([(k,k1,v1) for k,v in d.items() for k1,v1 in v.items()], columns = ['Col1','Col2','Val'])
print df.sort(['Col1','Col2','Val'], ascending=[1,1,1])

  Col1 Col2 Val
3    x    b  10
2    x    c  20
1    y    b  33
0    y    c  44