如何从Android中的NDK访问可绘制文件

时间:2017-07-31 08:35:14

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

在我的Android项目中,我想使用android-ndk中的c / c ++访问一个可绘制文件,如R.drawable.some_drawable.xml。

我如何实现这样的功能?

1 个答案:

答案 0 :(得分:1)

AFAIK,使用JNI,您只能使用一些原始数据类型:

  

Java数据类型与本机代码中使用的数据类型之间的映射非常简单。命名方案保持不变:本机数据类型名称前面是字符' j',后跟所有与Java相当的小写数据类型名称。 JNI还包括另一个名为jsize的数据类型,它存储长度或数组或字符串。

void -> void : None
byte -> jbyte : 8-bit signed. Range is -27 to 27 - 1
int -> jint : 32-bit signed. Range is -231 to 231 - 1
float -> jfloat : 32 bits. Represent a real number as small as 1.4 x 10-45 and as big as 3.4 x 1038 (approx.), positive or negative
double -> jdouble : 64 bits. Represent a real number as small as 4.9 x 10-324 and as big as 1.7 x 10308 (approx.), positive or negative
char -> jchar : 16-bit unsigned. Range is 0 to 65535
long -> jlong : 64-bit signed. Range -263 to 263 - 1
short -> jshort : 16-bit signed. Range is -215 to 215 - 1
boolean -> jboolean : Unsigned 8 bits. true and false

您的解决方案是将Drawable保存在缓存文件夹中,并将文件地址传递给NDK代码并在C / C ++中读取。

How can I write a Drawable resource to a File?