├── .gitignore ├── .gitmodules ├── Application.mk ├── Android.mk ├── Makefile ├── .travis.yml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | libs 3 | include 4 | obj 5 | *.o 6 | *.a 7 | *.d 8 | *.lo 9 | *.so 10 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "libevent"] 2 | path = libevent 3 | url = https://github.com/jusonqiu/libevent.git 4 | -------------------------------------------------------------------------------- /Application.mk: -------------------------------------------------------------------------------- 1 | APP_ABI := armeabi armeabi-v7a x86 mips 2 | APP_PLATFORM := android-16 3 | APP_STL := stlport_static 4 | NDK_TOOLCHAIN_VERSION := clang 5 | 6 | -------------------------------------------------------------------------------- /Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LIBEVNET_SOURCES := \ 5 | buffer.c \ 6 | bufferevent.c \ 7 | bufferevent_filter.c \ 8 | bufferevent_pair.c \ 9 | bufferevent_ratelim.c \ 10 | bufferevent_sock.c\ 11 | epoll.c \ 12 | epoll_sub.c \ 13 | evdns.c \ 14 | event.c \ 15 | event_tagging.c \ 16 | evmap.c \ 17 | evrpc.c \ 18 | evthread.c \ 19 | evthread_pthread.c \ 20 | evutil.c \ 21 | evutil_rand.c\ 22 | http.c \ 23 | listener.c \ 24 | log.c \ 25 | poll.c \ 26 | select.c \ 27 | signal.c \ 28 | strlcpy.c 29 | 30 | LOCAL_MODULE := event 31 | LOCAL_SRC_FILES := $(addprefix libevent/, $(LIBEVNET_SOURCES)) 32 | LOCAL_CFLAGS := -O2 -I$(LOCAL_PATH)/libevent \ 33 | -I$(LOCAL_PATH)/libevent/include 34 | 35 | include $(BUILD_STATIC_LIBRARY) 36 | 37 | 38 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | .phony: all install 3 | 4 | all: 5 | @ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk 6 | 7 | 8 | clean: 9 | @rm -rf obj libs include 10 | 11 | install: 12 | @test -d libs || mkdir libs 13 | @test -d libs/armeabi-v7a || mkdir libs/armeabi-v7a 14 | @test -d libs/armeabi || mkdir libs/armeabi 15 | @test -d libs/x86 || mkdir libs/x86 16 | @test -d libs/mips || mkdir libs/mips 17 | @test -d include || mkdir include 18 | @test -d include/event2 || mkdir include/event2 19 | @cp -v obj/local/armeabi-v7a/libevent.a libs/armeabi-v7a/ 20 | @cp -v obj/local/armeabi/libevent.a libs/armeabi/ 21 | @cp -v obj/local/x86/libevent.a libs/x86/ 22 | @cp -v obj/local/mips/libevent.a libs/mips/ 23 | @cp -v libevent/event.h include/ 24 | @cp -v libevent/include/event2/*.h include/event2/ 25 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | sudo: true 3 | android: 4 | components: 5 | - tools 6 | - platform-tools 7 | - build-tools-23.0.2 8 | - android-23 9 | - extra-google-m2repository 10 | - extra-android-m2repository 11 | before_install: 12 | - git clone https://github.com/urho3d/android-ndk.git $HOME/android-ndk-root 13 | - export ANDROID_NDK_HOME=$HOME/android-ndk-root 14 | - export PATH=$PATH:$ANDROID_NDK_HOME 15 | script: 16 | - make 17 | - make install 18 | - tar -czvf libevent-android.tar.gz libs include 19 | deploy: 20 | provider: releases 21 | api_key: 22 | secure: OWHpTvgXsG/hY9llyKB2FVr/ugE55A7ZYp5jzAz3pDVdzqQxbu8HNE5C7NxmHxeI7Db8MdXPZkE/yMOyI+X1EoBb9BydMEiqz3cqopOtB7hYF/lETmlvqneNadI6udB0xyU9fuRIk90OWSJlNr8mQEm9JUiJOgh8cbNb19hb9MnQ6qGhOvKr1tgh5GhNBqggLRa+CwzOTk1dF08EWj6qyHXurXDtTC29E1aKk3BsCc6NKYb2XcjL0ppUMa11sdxOR26m2sFeCtaaKKugrbdOhbwykhcBfK7/19bw6TpvbjHNeYiDJpLoOITnw42JACrmG7evrJm5bVCFaXz4ZUdIrQ1IS/A2+UrUkwLpaVoLqLSsATgR4M6fRdt5VqN4C2E333AocF6a+X8OOI0frFYrYUKtIFQAaCFJDeBBL8636x2cZ0n8C0u4klv8Wf5MLUwxwGrtXLWktSEVrYuT3Ej0X8kyhxBPJTZwXnLs60sOqtmaDBLnVnNHcBxX35i5SY2qI/n2tawtvaI+WjiawXhpO4mKkZ1df7p16jI7Qiin0ftbtaoQcTGOOJ4xi5L6Of5uc3oJ0vSJfsXAU8RZ3znnEH9hgqpXTrUhrIr4FG60kv6rjNJOyKWnqHGGjdksuOjoDwenWFmvshCEwzGP9ZHRSGN7tH+s23hsyxGRQlV2Bvc= 23 | file: libevent-android.tar.gz 24 | skip_cleanup: true 25 | on: 26 | tags: true 27 | 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # libevent-for-android [![Build Status](https://travis-ci.org/jusonqiu/libevent-for-android.svg?branch=master)](https://travis-ci.org/jusonqiu/libevent-for-android) 2 | 3 | 编译 Android 各个平台的 libevent 静态库. 4 | 5 | # libevent 6 | 7 | - [官网](http://libevent.org/) 8 | - [shadowsocks](https://github.com/shadowsocks/libevent) 9 | - [示例](https://github.com/jasonish/libevent-examples) 10 | 11 | # build 12 | ``` 13 | git clone --recursive https://github.com/jusonqiu/libevent-for-android.git 14 | make clean && make && make install 15 | ``` 16 | 17 | # 文件 18 | 19 | ``` 20 | libs 21 | ├── armeabi 22 | │   └── libevent.a 23 | ├── armeabi-v7a 24 | │   └── libevent.a 25 | ├── mips 26 | │   └── libevent.a 27 | └── x86 28 | └── libevent.a 29 | include 30 | ├── event2 31 | │   ├── buffer_compat.h 32 | │   ├── bufferevent_compat.h 33 | │   ├── bufferevent.h 34 | │   ├── bufferevent_ssl.h 35 | │   ├── bufferevent_struct.h 36 | │   ├── buffer.h 37 | │   ├── dns_compat.h 38 | │   ├── dns.h 39 | │   ├── dns_struct.h 40 | │   ├── event_compat.h 41 | │   ├── event-config.h 42 | │   ├── event.h 43 | │   ├── event_struct.h 44 | │   ├── http_compat.h 45 | │   ├── http.h 46 | │   ├── http_struct.h 47 | │   ├── keyvalq_struct.h 48 | │   ├── listener.h 49 | │   ├── rpc_compat.h 50 | │   ├── rpc.h 51 | │   ├── rpc_struct.h 52 | │   ├── tag_compat.h 53 | │   ├── tag.h 54 | │   ├── thread.h 55 | │   └── util.h 56 | └── event.h 57 | ``` 58 | 59 | --------------------------------------------------------------------------------