1. 准备工作

1.1 原材料

libevent-2.0.22-stable

1.2 编译环境

ubuntu-12.04

ndk-r9d

2. 编译步骤

下载解压缩libevent文件

wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
tar -zxf libevent-2.0.22-stable.tar.gz

创建一个event-config.h文件

cd libevent-2.0.22-stable/
mkdir -p ARM-Code/event2/
vim ARM-Code/event2/event-config.h

编辑event-config.h

#ifndef _EVENT2_EVENT_CONFIG_H_
#define _EVENT2_EVENT_CONFIG_H_
#define _EVENT_HAVE_SA_FAMILY_T 1
#define _EVENT_HAVE_SYS_SOCKET_H 1
#define _EVENT_HAVE_NETINET_IN_H 1
#define _EVENT_HAVE_SYS_TIME_H 1
#define _EVENT_HAVE_STDARG_H 1
#define _EVENT_HAVE_UNISTD_H 1
#define _EVENT_HAVE_NETINET_IN6_H 1
#define ARC4RANDOM_NOADDRANDOM 1
#define _EVENT_HAVE_STRLCPY 1
#define _EVENT_HAVE_STRSEP 1
#define _EVENT_HAVE_NETDB_H 1
#define _EVENT_HAVE_STRTOK_R 1
#define _EVENT_HAVE_FCNTL_H 1
#define _EVENT_HAVE_GETTIMEOFDAY 1
#define _EVENT_HAVE_INTTYPES_H 1
#define _EVENT_HAVE_MEMORY_H 1
#define _EVENT_HAVE_PUTENV 1
#define _EVENT_HAVE_SIGNAL 1
#define _EVENT_HAVE_STDARG_H 1
#define _EVENT_HAVE_STDDEF_H 1
#define _EVENT_HAVE_STDINT_H 1
#define _EVENT_HAVE_STDLIB_H 1
#define _EVENT_HAVE_STRINGS_H 1
#define _EVENT_HAVE_STRING_H 1
#define _EVENT_HAVE_STRTOLL 1
#define _EVENT_HAVE_STRUCT_IN6_ADDR 1
#define _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16 1
#define _EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32 1
#define _EVENT_HAVE_STRUCT_SOCKADDR_IN6 1
#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE 1
#define _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
#define _EVENT_HAVE_SYS_PARAM_H 1
#define _EVENT_HAVE_SYS_STAT_H 1
#define _EVENT_HAVE_SYS_TIME_H 1
#define _EVENT_HAVE_SYS_TYPES_H 1
#define _EVENT_HAVE_TIMERCLEAR 1
#define _EVENT_HAVE_TIMERCMP 1
#define _EVENT_HAVE_TIMERISSET 1
#define _EVENT_HAVE_UINT16_T 1
#define _EVENT_HAVE_UINT32_T 1
#define _EVENT_HAVE_UINT64_T 1
#define _EVENT_HAVE_UINT8_T 1
#define _EVENT_HAVE_UINTPTR_T 1
#define _EVENT_HAVE_UMASK 1
#define _EVENT_HAVE_UNISTD_H 1
#define _EVENT_LT_OBJDIR ".libs/"
#define _EVENT_NUMERIC_VERSION 0x02001500
#define _EVENT_PACKAGE "libevent"
#define _EVENT_PACKAGE_BUGREPORT ""
#define _EVENT_PACKAGE_NAME ""
#define _EVENT_PACKAGE_STRING ""
#define _EVENT_PACKAGE_TARNAME ""
#define _EVENT_PACKAGE_URL ""
#define _EVENT_PACKAGE_VERSION ""
#define _EVENT_SIZEOF_INT 4
#define _EVENT_SIZEOF_LONG 4
#define _EVENT_SIZEOF_LONG_LONG 8
#define _EVENT_SIZEOF_SHORT 2
#define _EVENT_SIZEOF_SIZE_T 4
#define _EVENT_SIZEOF_VOID_P 4
#define _EVENT_STDC_HEADERS 1
#define _EVENT_TIME_WITH_SYS_TIME 1
#define _EVENT_VERSION "2.0.21-stable"
#ifndef _EVENT___cplusplus
#endif
#define _EVENT_socklen_t unsigned int #endif /* event2/event-config.h */

创建Android.mk文件

vim Android.mk

编写Android.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := eventcore
LIB_SRC := \
event.c \
evthread.c \
buffer.c \
bufferevent.c \
bufferevent_filter.c \
bufferevent_pair.c \
listener.c \
bufferevent_ratelim.c \
evmap.c \
log.c \
evutil.c \
evutil_rand.c \
select.c \
poll.c \
epoll.c \
signal.c \
event_tagging.c \
http.c \
evdns.c \
evrpc.c \
bufferevent_sock.c

LOCAL_SRC_FILES := $(LIB_SRC)
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/compat \
$(LOCAL_PATH)/ARM-Code
include $(BUILD_SHARED_LIBRARY)

创建ndk项目文件

mkdir jni
vim jni/Android.mk
vim jni/Application.mk

编辑jni/Android.mk文件

include $(CLEAR_VARS)
include $(APP_PROJECT_PATH)/Android.mk

编辑jni/Application.mk

APP_PROJECT_PATH := $(call my-dir)/../

APP_STL:=gnustl_static   # 根据自己的需要修改

APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-

最后ndk-build就可以了

ndk-build

博客不在线,有问题直接联系QQ: 783713515

libevent for android的更多相关文章

  1. 基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET

    基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET 基于libevent, libuv和android L ...

  2. Chromium多线程模型设计和实现分析

    Chromium除了远近闻名的多进程架构之外,它的多线程模型也相当引人注目的.Chromium的多进程架构是为了解决网页的稳定性问题,而多线程模型则是为了解决网页的卡顿问题.为了达到这个目的,Chro ...

  3. android ndk 编译 libevent

    1. 下载 libevent 2.1.8 版本 https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/ ...

  4. 【Android】源码external/目录中在编译过程中生成的文件列表

    => external/eyes-free:   accessibilityvalidator.jar (host,share) => external/mesa3d:   libMesa ...

  5. 浅谈独立使用NDK编译库文件(Android)

    阅读前准备 这是一篇相对入门的文章.文中会涉及到少许NDK的知识,但个人认为对初学者来说都相对比较实用,因为都是在平时项目中遇到的(目前自己也是初学者).一些其他高深的技术不再本文探讨范围之内(因为我 ...

  6. 〖Android〗Android源代码所有目录生成的Target(编译生成文件反查)

    => build/tools/zipalign: out/host/linux-x86/bin/zipalign (host) => build/tools/atree: out/host ...

  7. 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库

    工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...

  8. libevent2笔记(linux、windows、android的编译)

    0. 前言 我使用的版本是libevent-2.0.21-stable.高级的应用还是得看官网文档http://www.wangafu.net/~nickm/libevent-2.0/doxygen/ ...

  9. 反汇编调试Android

    https://code.google.com/p/android/issues/detail?id=73076 http://my.unix-center.net/~Simon_fu/?p=527 ...

随机推荐

  1. wamp 虚拟目录的设置(转载)

    现在先来配置虚拟主机:1.先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#!!2.打开apache的apach ...

  2. 网页平面设计 HTML

    网页平面设计HTML基础 1.网页的基本元素:文字.图像.超链接 2.HTML的基本机构head.title.body三部分 <html> <head> <title&g ...

  3. C#中的Attributes的用法

    今天研究了一下C#中的Attributes的用法,感觉很有用,现总结以下: 在前台用JS写的脚本方法,除了可以直接用在前台控件的属性中,还可以在后台运用. 即在后台页面加载时,调用JS方法.语法格式有 ...

  4. 解读机器学习基础概念:VC维的来龙去脉 | 数盟

    http://dataunion.org/14581.html

  5. MySQL函数笔记

    MySQL函数笔记 日期函数 SELECT t1.xcjyrq, t1.* FROM view_sbxx t1 WHERE t1.syzt ; SELECT t1.xcjyrq, t1.* FROM ...

  6. 监听enter事件

    document.onkeydown=keyDownSearch; function keyDownSearch(e) { // 兼容FF和IE和Opera var theEvent = e || w ...

  7. MSI文件静默安装

    以.net4为例,以下命令为静默安装: dotNetFx40_Full_x86_x64.exe /q /norestart /ChainingPackage FullX64Bootstrapper / ...

  8. [原创]浅谈NT下Ring3无驱进入Ring0的方法

    原文链接:浅谈NT下Ring3无驱进入Ring0的方法 (测试环境:Windows 2000 SP4,Windows XP SP2.Windows 2003 未测试) 在NT下无驱进入Ring0是一个 ...

  9. UDP聊天实现(简单版)

    两者代码基本一致 关于套接字: 甲方: #include <stdio.h> #include <string.h> #include <netinet/in.h> ...

  10. C语言入门(14)——结构体

    整数.字符.布尔值.浮点数这些数据类型都具有单一的值,这些可称为基本数据类型.但字符串是一个例外,它由很多字符组成,像这种由基本类型组成的数据类型称为复合数据类型,正如表达式和语句有组合规则一样,由基 ...