libevent for android
1. 准备工作
1.1 原材料
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的更多相关文章
- 基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET
基于libevent, libuv和android Looper不断演进socket编程 - 走向架构师之路 - 博客频道 - CSDN.NET 基于libevent, libuv和android L ...
- Chromium多线程模型设计和实现分析
Chromium除了远近闻名的多进程架构之外,它的多线程模型也相当引人注目的.Chromium的多进程架构是为了解决网页的稳定性问题,而多线程模型则是为了解决网页的卡顿问题.为了达到这个目的,Chro ...
- android ndk 编译 libevent
1. 下载 libevent 2.1.8 版本 https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/ ...
- 【Android】源码external/目录中在编译过程中生成的文件列表
=> external/eyes-free: accessibilityvalidator.jar (host,share) => external/mesa3d: libMesa ...
- 浅谈独立使用NDK编译库文件(Android)
阅读前准备 这是一篇相对入门的文章.文中会涉及到少许NDK的知识,但个人认为对初学者来说都相对比较实用,因为都是在平时项目中遇到的(目前自己也是初学者).一些其他高深的技术不再本文探讨范围之内(因为我 ...
- 〖Android〗Android源代码所有目录生成的Target(编译生成文件反查)
=> build/tools/zipalign: out/host/linux-x86/bin/zipalign (host) => build/tools/atree: out/host ...
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- libevent2笔记(linux、windows、android的编译)
0. 前言 我使用的版本是libevent-2.0.21-stable.高级的应用还是得看官网文档http://www.wangafu.net/~nickm/libevent-2.0/doxygen/ ...
- 反汇编调试Android
https://code.google.com/p/android/issues/detail?id=73076 http://my.unix-center.net/~Simon_fu/?p=527 ...
随机推荐
- 说说VS 2015 RC最新开发工具的体验
有两个我感觉是提高效率的地方: 1.智能提示的改进,鼠标只要移动到代码上面的类型.字段,就会显示相应的提示,这大大提高我们开发时候需要按F12才能看到定义的内容.下面上图,给大家形象化: 2.管理Nu ...
- 微信sdk (1)
<?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); ...
- [Script]EBS里查看模块的版本、文件的版本信息【Z】
系统版本信息 装了哪些模块,以及版本信息 select 'Current Application Release: '||ver||' ('||bug||')' "Description&q ...
- Block使用要点
Block简介 Block其实包含两个部分内容 Block执行的代码,这是在编译的时候已经生成好的: 一个包含Block执行时需要的所有外部变量值的数据结构. Block将使用到的.作用域附近到的变量 ...
- Java Tomcat Glassfish Weblogic远程debug(remote debug)
tomcat ./catalina.sh jpda start 这条命令启动tomcat,它就会监听8000端口,等待调试器的连接. 默认监听8000端口,通过设置环境变量JPDA_ADDRESS指定 ...
- 初识JavaScript,感觉整个人都不好了。。。
学习web前端的开发已经将近一个月了,开发中的三个大兄弟——“html”.“css”.“JavaScript”,小哥我已经深入接触了前两位,并与他俩建立的深厚的友谊.在编写过程中,不能说达到各位大神的 ...
- 谈谈文件增量同步算法:RSYNC和CDC
谈谈文件增量同步算法:RSYNC和CDC 分类: 数据同步 增量备份 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在研究文件的增量同步问题,着重研究了文件差异编码部分,因为这个其实是文件 ...
- Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)
这是一个在窗体标题栏添加自定义按钮的组件(TTitleBarButton)开发实例,标题栏按钮组件TTitleBarButton以TComponent为直接继承对象,它是一个可以在窗体标题栏上显示按钮 ...
- 关于javascript跨域及JSONP的原理与应用
同源策略,它是由Netscape提出的一个著名的安全策略,现在所有的可支持javascript的浏览器都会使用这个策略. 为什么需要同源策略,这里举个例子: 假 设现在没有同源策略,会发生什么事情呢? ...
- 自定义UITextField(UITextField重写)
// CustomField.h #import <UIKit/UIKit.h> @interface CustomField : UITextField @end // CustomFi ...