Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将iOS应用迁移到Android机器架构_Android_Ios_Types_Migration - Fatal编程技术网

将iOS应用迁移到Android机器架构

将iOS应用迁移到Android机器架构,android,ios,types,migration,Android,Ios,Types,Migration,我正在将iOS 5.0应用程序迁移到Android 2.3.3 此iOS应用程序具有使用某些uint32\t变量的加密算法 我在stdin.h上找到了这个: #ifndef _UINT32_T #define _UINT32_T typedef unsigned int uint32_t; #endif /* _UINT32_T */ uint32\u t在Objective-C中是一个无符号int,因此它在Java中的等价物是long。这是正确的吗 我的问题是: int、ch

我正在将iOS 5.0应用程序迁移到Android 2.3.3

此iOS应用程序具有使用某些uint32\t变量的加密算法

我在stdin.h上找到了这个:

#ifndef _UINT32_T
#define _UINT32_T
typedef unsigned int         uint32_t;
#endif /* _UINT32_T */
uint32\u t
在Objective-C中是一个
无符号int
,因此它在
Java
中的等价物是
long
。这是正确的吗

我的问题是:

int、char、long等。Objective-C类型在Android上是否具有相同的内存表示形式?否。Android(Java)没有无符号变量类型

因此,如果您需要存储一个C无符号32位整数,那么您需要在Java中使用long,但这将是64位(这样您将能够存储uint32的完整精度)

相反,任何带符号的表示都将具有相同的内存布局(但我不确定endianness,您应该自己检查它)

这是正确的,除非您选择在Android中使用C/C++并跳过Java(这是可以做到的,但在任何情况下都需要使用JNI将API调用桥接到Java)


为了解决类似的问题,我发现了一个名为Javolution的库,它能够通过维护相同的布局为C结构提供良好的实现,请看一看。但是我使用的是结构,而不是简单的变量,所以这对您来说不适用。

谢谢您的回答。可能,我将把这个算法迁移到C并使用JNI。再次感谢!