# MsgHandlerForC **Repository Path**: gotonba123456/MsgHandlerForC ## Basic Information - **Project Name**: MsgHandlerForC - **Description**: Message-Handler机制是Android Framework中使用较为普遍的异步处理机制,MsgHandlerForC项目实行了一套C语言版本的Message-Handler,可以移植到各种嵌入性操作系统上面,以便那些不支持Java或者C++语言的系统。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2023-07-25 - **Last Updated**: 2023-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MsgHandlerForC #### 介绍 Message-Handler机制是Android Framework中使用较为普遍的异步处理机制,MsgHandlerForC项目实行了一套C语言版本的Message-Handler,可以移植到各种嵌入性操作系统上面,以便那些不支持Java或者C++语言的系统。 ### 编译 需要在linux环境环境下编译,下载源代码,切换到源代码根目录,执行make命令,编译出的静态库libs/libmsghandler.a,你可以写一个可执行程序,link这个库。 ### 使用说明 一个简单的案例 ``` main.c #include #include #include #include #define EVENT_TEST_MSG 1 Handler* handler; void testHandlerMessage(Message* msg) { switch(msg->what) { case EVENT_TEST_MSG: printf("Fine, thank you\n"); break; default: break; } } static void *thread_func(void *arg) { Message* msg; int i=0; for (;;) { if (i++>10) { quit(handler->mQueue); return NULL; } sleep(1); printf("hello Alex, how are you\n"); msg = handlerObtainMessage(handler, EVENT_TEST_MSG, NULL); messageSendToTarget(msg); } } int main(int argc, char **argv) { pthread_t tid; Looper* looper; looper = prepare(TRUE); handler = newHandler(testHandlerMessage); pthread_create(&tid, NULL, thread_func, NULL); //show never quit loop(); deleteHandler(handler); } ``` 编译测试程序命令:gcc main.c -Bstatic -L. -l:../libs/libmsghandler.a -o test -g -I../src/core/inc -I../src/platforms/posix/inc -pthread,路径大家可以根据自己的环境调整