在 Android 软件开发中,使用 c 语言编程的 JNI(Java Native Interface)技术,无疑是提高软件性能和功能的一个很好选择。如何安装和使用 JNI 在网络上有很多介绍,但如何运行独立的纯 c/c++ 语言程序,却鲜有提及。然而,一个独立的纯 c/c++ 语言程序,在按模块编程、调试的过程中,又要求它能够在 Android 系统中独立运行。
文本的目的有两个:一是演示如何在一个 Android 系统中,编译、连接和运行一个支持 c 语言程序,而不是 JNI;第二是演示一个简单的 udp 客户程序,是如何完成与 Windows 端服务器程序的 udp 通信的。
Android 系统支持 JNI,当然也支持 c 语言程序。下面就是一个运行在Android系统中的纯 c 语言 udp 客户程序:
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
InitSock(int thePort, char *addr, char *buf)
{
int m_socket = socket(AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in toHost;
memset(&toHost, 0, sizeof(struct sockaddr_in));
inet_aton(addr,&toH